Commit 810839dd authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] get PPC64 iSeries closer to building

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).
parent 65b7ee8a
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
#ifndef __ISERIES_SETUP_H__ #ifndef __ISERIES_SETUP_H__
#define __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_early(void);
extern void iSeries_init(unsigned long r3, unsigned long ird_start, extern void iSeries_init(unsigned long r3, unsigned long ird_start,
unsigned long ird_end, unsigned long cline_start, unsigned long ird_end, unsigned long cline_start,
......
...@@ -21,18 +21,15 @@ extern void ppc_irq_dispatch_handler(struct pt_regs *regs, int irq); ...@@ -21,18 +21,15 @@ extern void ppc_irq_dispatch_handler(struct pt_regs *regs, int irq);
#ifdef CONFIG_PPC_ISERIES #ifdef CONFIG_PPC_ISERIES
extern void __no_use_sti(void); extern unsigned long local_get_flags(void);
extern void __no_use_cli(void); extern unsigned long local_irq_disable(void);
extern void __no_use_restore_flags(unsigned long); extern void local_irq_restore(unsigned long);
extern unsigned long __no_use_save_flags(void);
extern void __no_use_set_lost(unsigned long); #define local_irq_enable() local_irq_restore(1)
extern void __no_lpq_restore_flags(unsigned long); #define local_save_flags(flags) ((flags) = local_get_flags())
#define local_irq_save(flags) ((flags) = local_irq_disable())
#define local_irq_disable() __no_use_cli()
#define local_irq_enable() __no_use_sti() #define irqs_disabled() (local_get_flags() == 0)
#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();})
#else #else
...@@ -69,6 +66,13 @@ static inline void __do_save_and_cli(unsigned long *flags) ...@@ -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 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 */ #endif /* CONFIG_PPC_ISERIES */
#define mask_irq(irq) ({if (irq_desc[irq].handler && irq_desc[irq].handler->disable) irq_desc[irq].handler->disable(irq);}) #define mask_irq(irq) ({if (irq_desc[irq].handler && irq_desc[irq].handler->disable) irq_desc[irq].handler->disable(irq);})
......
...@@ -104,13 +104,6 @@ extern struct task_struct * _switch(struct thread_struct *prev, ...@@ -104,13 +104,6 @@ extern struct task_struct * _switch(struct thread_struct *prev,
struct pt_regs; struct pt_regs;
extern void dump_regs(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) static inline int __is_processor(unsigned long pv)
{ {
unsigned long pvr; unsigned long pvr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment