Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[cascardo/linux.git] / include / asm-powerpc / hw_irq.h
index 9e4dd98..a7b60bf 100644 (file)
@@ -48,8 +48,15 @@ extern void iseries_handle_interrupts(void);
 
 #define irqs_disabled()                (local_get_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)
+
+#define  hard_irq_disable()                    \
+       do {                                    \
+               __hard_irq_disable();           \
+               get_paca()->soft_enabled = 0;   \
+               get_paca()->hard_enabled = 0;   \
+       } while(0)
 
 #else