Merge commit 'v2.6.26-rc9' into sched/devel
[pandora-kernel.git] / include / asm-powerpc / hw_irq.h
index d604863..ad8c9f7 100644 (file)
@@ -27,7 +27,7 @@ static inline unsigned long local_get_flags(void)
        return flags;
 }
 
-static inline unsigned long local_irq_disable(void)
+static inline unsigned long raw_local_irq_disable(void)
 {
        unsigned long flags, zero;
 
@@ -39,17 +39,25 @@ static inline unsigned long local_irq_disable(void)
        return flags;
 }
 
-extern void local_irq_restore(unsigned long);
+extern void raw_local_irq_restore(unsigned long);
 extern void iseries_handle_interrupts(void);
 
-#define local_irq_enable()     local_irq_restore(1)
-#define local_save_flags(flags)        ((flags) = local_get_flags())
-#define local_irq_save(flags)  ((flags) = local_irq_disable())
+#define raw_local_irq_enable()         raw_local_irq_restore(1)
+#define raw_local_save_flags(flags)    ((flags) = local_get_flags())
+#define raw_local_irq_save(flags)      ((flags) = raw_local_irq_disable())
 
-#define irqs_disabled()                (local_get_flags() == 0)
+#define raw_irqs_disabled()            (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)
+
+#define  hard_irq_disable()                    \
+       do {                                    \
+               __hard_irq_disable();           \
+               get_paca()->soft_enabled = 0;   \
+               get_paca()->hard_enabled = 0;   \
+       } while(0)
 
 #else
 
@@ -107,25 +115,6 @@ static inline void local_irq_save_ptr(unsigned long *flags)
 
 #endif /* CONFIG_PPC64 */
 
-#define mask_irq(irq)                                          \
-       ({                                                      \
-               irq_desc_t *desc = get_irq_desc(irq);           \
-               if (desc->chip && desc->chip->disable)  \
-                       desc->chip->disable(irq);               \
-       })
-#define unmask_irq(irq)                                                \
-       ({                                                      \
-               irq_desc_t *desc = get_irq_desc(irq);           \
-               if (desc->chip && desc->chip->enable)   \
-                       desc->chip->enable(irq);                \
-       })
-#define ack_irq(irq)                                           \
-       ({                                                      \
-               irq_desc_t *desc = get_irq_desc(irq);           \
-               if (desc->chip && desc->chip->ack)      \
-                       desc->chip->ack(irq);           \
-       })
-
 /*
  * interrupt-retrigger: should we handle this via lost interrupts and IPIs
  * or should we not care like we do now ? --BenH.