2008-01-12 18:09:54

by Sripathi Kodi

[permalink] [raw]
Subject: [PATCH PREEMPT_RT] Compilation fix for PPC

Hi,

2.6.24-rc5-rt1 won't compile on PPC if CONFIG_SMP is turned off.

CC arch/powerpc/kernel/pmc.o
In file included from include/asm/tlb.h:62,
from arch/powerpc/mm/mem.c:44:
include/asm-generic/tlb.h: In function ‘tlb_gather_mmu’:
include/asm-generic/tlb.h:58: error: implicit declaration of function ‘__get_cpu_lock’
include/asm-generic/tlb.h:58: error: ‘mmu_gathers’ undeclared (first use in this function)
include/asm-generic/tlb.h:58: error: (Each undeclared identifier is reported only once
include/asm-generic/tlb.h:58: error: for each function it appears in.)
include/asm-generic/tlb.h:58: error: invalid lvalue in unary ‘&’
include/asm-generic/tlb.h:58: warning: type defaults to ‘int’ in declaration of ‘type name’
include/asm-generic/tlb.h:58: error: invalid lvalue in unary ‘&’
include/asm-generic/tlb.h:58: error: invalid lvalue in unary ‘&’
include/asm-generic/tlb.h:58: warning: type defaults to ‘int’ in declaration of ‘type name’
include/asm-generic/tlb.h:58: error: invalid lvalue in unary ‘&’
include/asm-generic/tlb.h:58: error: implicit declaration of function ‘__get_cpu_var_locked’
include/asm-generic/tlb.h:58: error: invalid lvalue in unary ‘&’
include/asm-generic/tlb.h: In function ‘tlb_finish_mmu’:
include/asm-generic/tlb.h:96: error: ‘mmu_gathers’ undeclared (first use in this function)
include/asm-generic/tlb.h:96: error: invalid lvalue in unary ‘&’
include/asm-generic/tlb.h:96: warning: type defaults to ‘int’ in declaration of ‘type name’
include/asm-generic/tlb.h:96: error: invalid lvalue in unary ‘&’
include/asm-generic/tlb.h:96: error: invalid lvalue in unary ‘&’
include/asm-generic/tlb.h:96: warning: type defaults to ‘int’ in declaration of ‘type name’
include/asm-generic/tlb.h:96: error: invalid lvalue in unary ‘&’

The patch below fixes it.

Thanks,
Sripathi.

Signed-off-by: Sripathi Kodi <[email protected]>

diff -uprN linux-2.6.24-rc5-rt1_org/include/asm-powerpc/percpu.h linux-2.6.24-rc5-rt1/include/asm-powerpc/percpu.h
--- linux-2.6.24-rc5-rt1_org/include/asm-powerpc/percpu.h 2008-01-12 17:43:03.000000000 +0530
+++ linux-2.6.24-rc5-rt1/include/asm-powerpc/percpu.h 2008-01-12 17:43:58.000000000 +0530
@@ -68,6 +68,8 @@ extern void setup_per_cpu_areas(void);

#define __get_cpu_var(var) per_cpu__##var
#define __raw_get_cpu_var(var) per_cpu__##var
+#define __get_cpu_lock(var, cpu) per_cpu_lock__##var##_locked
+#define __get_cpu_var_locked(var, cpu) per_cpu__##var##_locked

#endif /* SMP */