diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-07-23 19:15:59 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-08-19 20:25:11 -0400 |
commit | 2d27cfd3286966c04d4192a9db5a6c7ea60eebf1 (patch) | |
tree | a9e3feb764da5a2be1a6ef9b3a0bf694e874a424 /arch/powerpc/include | |
parent | 32a74949b7337726e76d69f51c48715431126c6c (diff) |
powerpc: Remaining 64-bit Book3E support
This contains all the bits that didn't fit in previous patches :-) This
includes the actual exception handlers assembly, the changes to the
kernel entry, other misc bits and wiring it all up in Kconfig.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include')
-rw-r--r-- | arch/powerpc/include/asm/hw_irq.h | 5 | ||||
-rw-r--r-- | arch/powerpc/include/asm/smp.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h index 8b505eaaa38a..e73d554538dd 100644 --- a/arch/powerpc/include/asm/hw_irq.h +++ b/arch/powerpc/include/asm/hw_irq.h | |||
@@ -49,8 +49,13 @@ extern void iseries_handle_interrupts(void); | |||
49 | #define raw_irqs_disabled() (local_get_flags() == 0) | 49 | #define raw_irqs_disabled() (local_get_flags() == 0) |
50 | #define raw_irqs_disabled_flags(flags) ((flags) == 0) | 50 | #define raw_irqs_disabled_flags(flags) ((flags) == 0) |
51 | 51 | ||
52 | #ifdef CONFIG_PPC_BOOK3E | ||
53 | #define __hard_irq_enable() __asm__ __volatile__("wrteei 1": : :"memory"); | ||
54 | #define __hard_irq_disable() __asm__ __volatile__("wrteei 0": : :"memory"); | ||
55 | #else | ||
52 | #define __hard_irq_enable() __mtmsrd(mfmsr() | MSR_EE, 1) | 56 | #define __hard_irq_enable() __mtmsrd(mfmsr() | MSR_EE, 1) |
53 | #define __hard_irq_disable() __mtmsrd(mfmsr() & ~MSR_EE, 1) | 57 | #define __hard_irq_disable() __mtmsrd(mfmsr() & ~MSR_EE, 1) |
58 | #endif | ||
54 | 59 | ||
55 | #define hard_irq_disable() \ | 60 | #define hard_irq_disable() \ |
56 | do { \ | 61 | do { \ |
diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h index e782f43ee669..c0d3b8af9319 100644 --- a/arch/powerpc/include/asm/smp.h +++ b/arch/powerpc/include/asm/smp.h | |||
@@ -153,6 +153,7 @@ extern void arch_send_call_function_ipi(cpumask_t mask); | |||
153 | * 64-bit but defining them all here doesn't harm | 153 | * 64-bit but defining them all here doesn't harm |
154 | */ | 154 | */ |
155 | extern void generic_secondary_smp_init(void); | 155 | extern void generic_secondary_smp_init(void); |
156 | extern void generic_secondary_thread_init(void); | ||
156 | extern unsigned long __secondary_hold_spinloop; | 157 | extern unsigned long __secondary_hold_spinloop; |
157 | extern unsigned long __secondary_hold_acknowledge; | 158 | extern unsigned long __secondary_hold_acknowledge; |
158 | extern char __secondary_hold; | 159 | extern char __secondary_hold; |