diff options
Diffstat (limited to 'arch/powerpc/include/asm/hw_irq.h')
| -rw-r--r-- | arch/powerpc/include/asm/hw_irq.h | 13 | 
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h index 32b394f3b854..e45c4947a772 100644 --- a/arch/powerpc/include/asm/hw_irq.h +++ b/arch/powerpc/include/asm/hw_irq.h @@ -34,6 +34,8 @@ extern void __replay_interrupt(unsigned int vector);  extern void timer_interrupt(struct pt_regs *);  extern void performance_monitor_exception(struct pt_regs *regs); +extern void WatchdogException(struct pt_regs *regs); +extern void unknown_exception(struct pt_regs *regs);  #ifdef CONFIG_PPC64  #include <asm/paca.h> @@ -86,8 +88,8 @@ static inline bool arch_irqs_disabled(void)  }  #ifdef CONFIG_PPC_BOOK3E -#define __hard_irq_enable()	asm volatile("wrteei 1" : : : "memory"); -#define __hard_irq_disable()	asm volatile("wrteei 0" : : : "memory"); +#define __hard_irq_enable()	asm volatile("wrteei 1" : : : "memory") +#define __hard_irq_disable()	asm volatile("wrteei 0" : : : "memory")  #else  #define __hard_irq_enable()	__mtmsrd(local_paca->kernel_msr | MSR_EE, 1)  #define __hard_irq_disable()	__mtmsrd(local_paca->kernel_msr, 1) @@ -103,6 +105,11 @@ static inline void hard_irq_disable(void)  /* include/linux/interrupt.h needs hard_irq_disable to be a macro */  #define hard_irq_disable	hard_irq_disable +static inline bool lazy_irq_pending(void) +{ +	return !!(get_paca()->irq_happened & ~PACA_IRQ_HARD_DIS); +} +  /*   * This is called by asynchronous interrupts to conditionally   * re-enable hard interrupts when soft-disabled after having @@ -120,6 +127,8 @@ static inline bool arch_irq_disabled_regs(struct pt_regs *regs)  	return !regs->softe;  } +extern bool prep_irq_for_idle(void); +  #else /* CONFIG_PPC64 */  #define SET_MSR_EE(x)	mtmsr(x)  | 
