diff mbox series

[1/2] MIPS: r4k-bugs64: Limit R4k bug checks to affected systems

Message ID 20191001230423.70119-1-paul.burton@mips.com (mailing list archive)
State Accepted
Headers show
Series [1/2] MIPS: r4k-bugs64: Limit R4k bug checks to affected systems | expand

Commit Message

Paul Burton Oct. 1, 2019, 11:04 p.m. UTC
Only build the checks for R4k errata workarounds if we expect that the
kernel might actually run on a system with an R4k CPU - ie.
CONFIG_SYS_HAS_CPU_R4X00=y & we're targeting a pre-MIPSr1 ISA revision.

Rename cpu-bugs64.c to r4k-bugs64.c to indicate the fact that the code
is specific to R4k CPUs.

Signed-off-by: Paul Burton <paul.burton@mips.com>
---

 arch/mips/Kconfig                              |  4 ++++
 arch/mips/include/asm/bugs.h                   | 18 ++++++++----------
 arch/mips/kernel/Makefile                      |  2 +-
 arch/mips/kernel/genex.S                       |  2 +-
 .../mips/kernel/{cpu-bugs64.c => r4k-bugs64.c} |  0
 5 files changed, 14 insertions(+), 12 deletions(-)
 rename arch/mips/kernel/{cpu-bugs64.c => r4k-bugs64.c} (100%)

Comments

Paul Burton Oct. 7, 2019, 5:53 p.m. UTC | #1
Hello,

Paul Burton wrote:
> Only build the checks for R4k errata workarounds if we expect that the
> kernel might actually run on a system with an R4k CPU - ie.
> CONFIG_SYS_HAS_CPU_R4X00=y & we're targeting a pre-MIPSr1 ISA revision.
> 
> Rename cpu-bugs64.c to r4k-bugs64.c to indicate the fact that the code
> is specific to R4k CPUs.

Series applied to mips-next.

> MIPS: r4k-bugs64: Limit R4k bug checks to affected systems
>   commit 071d2f0b5419
>   https://git.kernel.org/mips/c/071d2f0b5419
>   
>   Signed-off-by: Paul Burton <paul.burton@mips.com>
> 
> MIPS: r4k-bugs64: Drop CONFIG_CPU_MIPSR6 checks
>   commit 5045d06b3736
>   https://git.kernel.org/mips/c/5045d06b3736
>   
>   Signed-off-by: Paul Burton <paul.burton@mips.com>

Thanks,
    Paul

[ This message was auto-generated; if you believe anything is incorrect
  then please email paul.burton@mips.com to report it. ]
diff mbox series

Patch

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index a0bd9bdb5f83..8736bf4420bc 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -2554,6 +2554,10 @@  config CPU_R4000_WORKAROUNDS
 config CPU_R4400_WORKAROUNDS
 	bool
 
+config CPU_R4X00_BUGS64
+	bool
+	default y if SYS_HAS_CPU_R4X00 && 64BIT && (TARGET_ISA_REV < 1)
+
 config MIPS_ASID_SHIFT
 	int
 	default 6 if CPU_R3000 || CPU_TX39XX
diff --git a/arch/mips/include/asm/bugs.h b/arch/mips/include/asm/bugs.h
index d8ab8b7129b5..d72dc6e1cf3c 100644
--- a/arch/mips/include/asm/bugs.h
+++ b/arch/mips/include/asm/bugs.h
@@ -26,9 +26,8 @@  extern void check_bugs64(void);
 
 static inline void check_bugs_early(void)
 {
-#ifdef CONFIG_64BIT
-	check_bugs64_early();
-#endif
+	if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
+		check_bugs64_early();
 }
 
 static inline void check_bugs(void)
@@ -37,19 +36,18 @@  static inline void check_bugs(void)
 
 	cpu_data[cpu].udelay_val = loops_per_jiffy;
 	check_bugs32();
-#ifdef CONFIG_64BIT
-	check_bugs64();
-#endif
+
+	if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
+		check_bugs64();
 }
 
 static inline int r4k_daddiu_bug(void)
 {
-#ifdef CONFIG_64BIT
+	if (!IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
+		return 0;
+
 	WARN_ON(daddiu_bug < 0);
 	return daddiu_bug != 0;
-#else
-	return 0;
-#endif
 }
 
 #endif /* _ASM_BUGS_H */
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile
index 89b07ea8d249..d6e97df51cfb 100644
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
@@ -80,7 +80,7 @@  obj-$(CONFIG_KGDB)		+= kgdb.o
 obj-$(CONFIG_PROC_FS)		+= proc.o
 obj-$(CONFIG_MAGIC_SYSRQ)	+= sysrq.o
 
-obj-$(CONFIG_64BIT)		+= cpu-bugs64.o
+obj-$(CONFIG_CPU_R4X00_BUGS64)	+= r4k-bugs64.o
 
 obj-$(CONFIG_I8253)		+= i8253.o
 
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S
index efde27c99414..d586cdac9605 100644
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
@@ -657,7 +657,7 @@  isrdhwr:
 	.set	pop
 	END(handle_ri_rdhwr)
 
-#ifdef CONFIG_64BIT
+#ifdef CONFIG_CPU_R4X00_BUGS64
 /* A temporary overflow handler used by check_daddi(). */
 
 	__INIT
diff --git a/arch/mips/kernel/cpu-bugs64.c b/arch/mips/kernel/r4k-bugs64.c
similarity index 100%
rename from arch/mips/kernel/cpu-bugs64.c
rename to arch/mips/kernel/r4k-bugs64.c