[POWERPC] irqtrace support for 64-bit powerpc
This adds the low level irq tracing hooks to the powerpc architecture needed to enable full lockdep functionality. This is partly based on Johannes Berg's initial version. I removed the asm trampoline that isn't needed (thus improving performance) and modified all sorts of bits and pieces, reworking most of the assembly, etc... Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:

committed by
Paul Mackerras

parent
fd3e0bbc60
commit
945feb174b
@@ -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,14 +39,15 @@ 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)
|
||||
|
Reference in New Issue
Block a user