cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

bugs.h (989B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * This is included by init/main.c to check for architecture-dependent bugs.
      4 *
      5 * Copyright (C) 2007  Maciej W. Rozycki
      6 *
      7 * Needs:
      8 *	void check_bugs(void);
      9 */
     10#ifndef _ASM_BUGS_H
     11#define _ASM_BUGS_H
     12
     13#include <linux/bug.h>
     14#include <linux/delay.h>
     15#include <linux/smp.h>
     16
     17#include <asm/cpu.h>
     18#include <asm/cpu-info.h>
     19
     20extern int daddiu_bug;
     21
     22extern void check_bugs64_early(void);
     23
     24extern void check_bugs32(void);
     25extern void check_bugs64(void);
     26
     27static inline void check_bugs_early(void)
     28{
     29	if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
     30		check_bugs64_early();
     31}
     32
     33static inline void check_bugs(void)
     34{
     35	unsigned int cpu = smp_processor_id();
     36
     37	cpu_data[cpu].udelay_val = loops_per_jiffy;
     38	check_bugs32();
     39
     40	if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
     41		check_bugs64();
     42}
     43
     44static inline int r4k_daddiu_bug(void)
     45{
     46	if (!IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
     47		return 0;
     48
     49	WARN_ON(daddiu_bug < 0);
     50	return daddiu_bug != 0;
     51}
     52
     53#endif /* _ASM_BUGS_H */