]> git.hungrycats.org Git - linux/commitdiff
[PATCH] get PPC64 iSeries closer to building
authorAndrew Morton <akpm@osdl.org>
Tue, 20 Jan 2004 11:10:29 +0000 (03:10 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Tue, 20 Jan 2004 11:10:29 +0000 (03:10 -0800)
From: Stephen Rothwell <sfr@canb.auug.org.au>

This patch allows iSeries to come much closer to building.

This is a precurser to my trying to merge the virtual device drivers for
iSeries (console, disk and cdrom).

arch/ppc64/kernel/iSeries_setup.h
include/asm-ppc64/hw_irq.h
include/asm-ppc64/system.h

index 93470fcd8a161cc9e6e41324e6d6c7a77bc9015c..53776d4035084d6039fbaffd798e89f9fc0802f4 100644 (file)
@@ -19,6 +19,8 @@
 #ifndef        __ISERIES_SETUP_H__
 #define        __ISERIES_SETUP_H__
 
+#include <linux/irq.h>         /* for irq_desc_t */
+
 extern void iSeries_init_early(void);
 extern void iSeries_init(unsigned long r3, unsigned long ird_start,
                unsigned long ird_end, unsigned long cline_start,
index 9b4ad1f7993f0d82da36fc368fbf75b2f3585a2d..8db7a1a707564bcce9cdc78abb33be2551e75962 100644 (file)
@@ -21,18 +21,15 @@ extern void ppc_irq_dispatch_handler(struct pt_regs *regs, int irq);
 
 #ifdef CONFIG_PPC_ISERIES
 
-extern void __no_use_sti(void);
-extern void __no_use_cli(void);
-extern void __no_use_restore_flags(unsigned long);
-extern unsigned long __no_use_save_flags(void);
-extern void __no_use_set_lost(unsigned long);
-extern void __no_lpq_restore_flags(unsigned long);
-
-#define local_irq_disable()                    __no_use_cli()
-#define local_irq_enable()                     __no_use_sti()
-#define local_save_flags(flags)        ((flags) = __no_use_save_flags())
-#define local_irq_restore(flags)       __no_use_restore_flags((unsigned long)flags)
-#define local_irq_save(flags)  ({local_save_flags(flags);local_irq_disable();})
+extern unsigned long local_get_flags(void);
+extern unsigned long local_irq_disable(void);
+extern void local_irq_restore(unsigned long);
+
+#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 irqs_disabled()                (local_get_flags() == 0)
 
 #else
 
@@ -69,6 +66,13 @@ static inline void __do_save_and_cli(unsigned long *flags)
 
 #define local_irq_save(flags)          __do_save_and_cli(&flags)
 
+#define irqs_disabled()                                \
+({                                             \
+       unsigned long flags;                    \
+       local_save_flags(flags);                \
+       !(flags & MSR_EE);                      \
+})
+
 #endif /* CONFIG_PPC_ISERIES */
 
 #define mask_irq(irq) ({if (irq_desc[irq].handler && irq_desc[irq].handler->disable) irq_desc[irq].handler->disable(irq);})
index cdf80cf206f5e17306449536a55cfc92ac1d73d4..2a88765fd6003992476e5eac868333b5498f7660 100644 (file)
@@ -104,13 +104,6 @@ extern struct task_struct * _switch(struct thread_struct *prev,
 struct pt_regs;
 extern void dump_regs(struct pt_regs *);
 
-#define irqs_disabled()                                \
-({                                             \
-       unsigned long flags;                    \
-       local_save_flags(flags);                \
-       !(flags & MSR_EE);                      \
-})
-
 static inline int __is_processor(unsigned long pv)
 {
        unsigned long pvr;