[patch 7/7 -rt] powerpc 2.6.20-rt8: fix compile error (hw_irq.h)

From: Tsutomu OWA
Date: Tue Mar 06 2007 - 20:22:46 EST



To fix the following compile error by changing local_irq_restore()
to raw_local_irq_restore().

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
include/asm-powerpc/hw_irq.h
In file included from include/asm/system.h:9,
from include/linux/list.h:9,
from include/linux/signal.h:8,
from arch/powerpc/kernel/asm-offsets.c:16:
include/asm/hw_irq.h: In function 'local_get_flags':
include/asm/hw_irq.h:23: error: expected expression before '<<' token
include/asm/hw_irq.h:24: error: expected expression before '<<' token
include/asm/hw_irq.h:25: error: expected expression before ':' token
include/asm/hw_irq.h:25: error: expected statement before ')' token
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Signed-off-by: Tsutomu Owa <tsutomu.owa@xxxxxxxxxxxxx>
-- owa

diff -rup linux-rt8/include/asm-powerpc/hw_irq.h rt/include/asm-powerpc/hw_irq.h
--- linux-rt8/include/asm-powerpc/hw_irq.h 2007-02-20 14:30:40.000000000 +0900
+++ rt/include/asm-powerpc/hw_irq.h 2007-03-05 10:39:22.000000000 +0900
@@ -16,18 +16,18 @@ extern void timer_interrupt(struct pt_re
#ifdef CONFIG_PPC64
#include <asm/paca.h>

-static inline unsigned long local_get_flags(void)
+static inline unsigned long raw_local_get_flags(void)
{
unsigned long flags;

-<<<<<<< delete extern unsigned long local_get_flags(void);
-<<<<<<< delete extern unsigned long local_irq_disable(void);
+ __asm__ __volatile__("lbz %0,%1(13)"
+ : "=r" (flags)
: "i" (offsetof(struct paca_struct, soft_enabled)));

return flags;
}

-static inline unsigned long local_irq_disable(void)
+static inline unsigned long raw_local_irq_disable(void)
{
unsigned long flags, zero;

@@ -39,32 +39,28 @@ static inline unsigned long local_irq_di
return flags;
}

-extern void iseries_handle_interrupts(void);
-extern unsigned long raw_local_get_flags(void);
-extern unsigned long raw_local_irq_disable(void);
extern void raw_local_irq_restore(unsigned long);
+extern void iseries_handle_interrupts(void);

-#define raw_local_irq_enable() raw_local_irq_restore(1)
+#define raw_local_irq_enable() raw_local_irq_restore(1)
#define raw_local_save_flags(flags) ((flags) = raw_local_get_flags())
#define raw_local_irq_save(flags) ((flags) = raw_local_irq_disable())

-#define raw_irqs_disabled() (raw_local_get_flags() == 0)
+#define raw_irqs_disabled() (raw_local_get_flags() == 0)
#define raw_irqs_disabled_flags(flags) ((flags) == 0)

-#define hard_irq_enable() __mtmsrd(mfmsr() | MSR_EE, 1)
-#define hard_irq_disable() __mtmsrd(mfmsr() & ~MSR_EE, 1)
+#define hard_irq_enable() __mtmsrd(mfmsr() | MSR_EE, 1)
+#define hard_irq_disable() __mtmsrd(mfmsr() & ~MSR_EE, 1)

-#else
+#else /* CONFIG_PPC64 */

#if defined(CONFIG_BOOKE)
#define SET_MSR_EE(x) mtmsr(x)
#define raw_local_irq_restore(flags) __asm__ __volatile__("wrtee %0" : : "r" (flags) : "memory")
-<<<<<<< delete #define local_irq_restore(flags) do { \
-#define raw_local_irq_restore(flags) do { \
#else
#define SET_MSR_EE(x) mtmsr(x)
#define raw_local_irq_restore(flags) mtmsr(flags)
-#endif
+#endif /* CONFIG_BOOKE */

static inline void raw_local_irq_disable(void)
{
diff -rup linux-rt8/arch/powerpc/kernel/irq.c rt/arch/powerpc/kernel/irq.c
--- linux-rt8/arch/powerpc/kernel/irq.c 2007-02-20 14:30:38.000000000 +0900
+++ rt/arch/powerpc/kernel/irq.c 2007-02-20 15:44:11.000000000 +0900
@@ -111,7 +111,7 @@ static inline void set_soft_enabled(unsi
: : "r" (enable), "i" (offsetof(struct paca_struct, soft_enabled)));
}

-void local_irq_restore(unsigned long en)
+void raw_local_irq_restore(unsigned long en)
{
/*
* get_paca()->soft_enabled = en;
diff -rup linux-rt8/arch/powerpc/kernel/head_64.S rt/arch/powerpc/kernel/head_64.S
--- linux-rt8/arch/powerpc/kernel/head_64.S 2007-02-20 09:38:52.000000000 +0900
+++ rt/arch/powerpc/kernel/head_64.S 2007-02-20 15:42:25.000000000 +0900
@@ -1385,7 +1385,7 @@ END_FW_FTR_SECTION_IFCLR(FW_FEATURE_ISER
* handles any interrupts pending at this point.
*/
ld r3,SOFTE(r1)
- bl .local_irq_restore
+ bl .raw_local_irq_restore
b 11f

/* Here we have a page fault that hash_page can't handle. */
diff -rup linux-rt8/arch/powerpc/kernel/ppc_ksyms.c rt/arch/powerpc/kernel/ppc_ksyms.c
--- linux-rt8/arch/powerpc/kernel/ppc_ksyms.c 2007-02-20 14:30:38.000000000 +0900
+++ rt/arch/powerpc/kernel/ppc_ksyms.c 2007-02-20 15:44:34.000000000 +0900
@@ -49,7 +49,7 @@
#endif

#ifdef CONFIG_PPC64
-EXPORT_SYMBOL(local_irq_restore);
+EXPORT_SYMBOL(raw_local_irq_restore);
#endif

#ifdef CONFIG_PPC32

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/