From: Joshua Kinard <kumba@xxxxxxxxxx> Prevent IP22/IP32's Platform directives from mixing into builds of other MIPS platforms. During a recent IP27 build, erroneous R10K cache barrier instructions were being emitted before every load or store instruction. This was caused by IP27 accidentally picking up the -mr10k-cache-barrier option from arch/mips/sgi-ip32/Platform. By wrapping the directives in both IP22 and IP32's Platform file inside an 'ifdef' block, as is already done in IP27's Platform file, this prevents the R10K cache barriers from being emitted on platforms where they are not needed. Signed-off-by: Joshua Kinard <kumba@xxxxxxxxxx> --- arch/mips/sgi-ip22/Platform | 8 +++++--- arch/mips/sgi-ip32/Platform | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) linux-mips-4.10-add-platform-ifdefs.patch diff --git a/arch/mips/sgi-ip22/Platform b/arch/mips/sgi-ip22/Platform index b7a4b7e04c38..5fa3c7a107bd 100644 --- a/arch/mips/sgi-ip22/Platform +++ b/arch/mips/sgi-ip22/Platform @@ -7,7 +7,8 @@ # current variable will break so for 64-bit kernels we have to raise the start # address by 8kb. # -platform-$(CONFIG_SGI_IP22) += sgi-ip22/ +ifdef CONFIG_SGI_IP22 +platform-$(CONFIG_SGI_IP22) += sgi-ip22/ cflags-$(CONFIG_SGI_IP22) += -I$(srctree)/arch/mips/include/asm/mach-ip22 ifdef CONFIG_32BIT load-$(CONFIG_SGI_IP22) += 0xffffffff88002000 @@ -15,6 +16,7 @@ endif ifdef CONFIG_64BIT load-$(CONFIG_SGI_IP22) += 0xffffffff88004000 endif +endif # # SGI IP28 (Indigo2 R10k) @@ -28,7 +30,7 @@ ifdef CONFIG_SGI_IP28 ifeq ($(call cc-option-yn,-mr10k-cache-barrier=store), n) $(error gcc doesn't support needed option -mr10k-cache-barrier=store) endif -endif -platform-$(CONFIG_SGI_IP28) += sgi-ip22/ +platform-$(CONFIG_SGI_IP28) += sgi-ip22/ cflags-$(CONFIG_SGI_IP28) += -mr10k-cache-barrier=store -I$(srctree)/arch/mips/include/asm/mach-ip28 load-$(CONFIG_SGI_IP28) += 0xa800000020004000 +endif diff --git a/arch/mips/sgi-ip32/Platform b/arch/mips/sgi-ip32/Platform index 589930560088..7db2c1f05d89 100644 --- a/arch/mips/sgi-ip32/Platform +++ b/arch/mips/sgi-ip32/Platform @@ -6,8 +6,10 @@ # a multiple of the kernel stack size or the handling of the current variable # will break. # +ifdef CONFIG_SGI_IP32 platform-$(CONFIG_SGI_IP32) += sgi-ip32/ cflags-$(CONFIG_SGI_IP32) += -I$(srctree)/arch/mips/include/asm/mach-ip32 cflags-$(CONFIG_CPU_R10000) += -mr10k-cache-barrier=load-store cflags-$(CONFIG_CPU_R12K_R14K_R16K) += -mno-fix-r10000 -mr10k-cache-barrier=load-store load-$(CONFIG_SGI_IP32) += 0xffffffff80004000 +endif