From: Ian Molton New irq exit handler (part of the softirq changes) Signed-off-by: Andrew Morton --- 25-akpm/include/asm-arm26/hardirq.h | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-) diff -puN include/asm-arm26/hardirq.h~arm26-softirq-update include/asm-arm26/hardirq.h --- 25/include/asm-arm26/hardirq.h~arm26-softirq-update Thu Dec 23 14:22:12 2004 +++ 25-akpm/include/asm-arm26/hardirq.h Thu Dec 23 14:22:12 2004 @@ -29,14 +29,17 @@ typedef struct { #define irq_enter() (preempt_count() += HARDIRQ_OFFSET) #ifndef CONFIG_SMP -#define irq_exit() \ - do { \ - preempt_count() -= HARDIRQ_OFFSET; \ - if (!in_interrupt() && softirq_pending(smp_processor_id())) \ - __asm__("bl%? __do_softirq": : : "lr");/* out of line */\ - preempt_enable_no_resched(); \ - } while (0) +extern asmlinkage void __do_softirq(void); + +#define irq_exit() \ + do { \ + preempt_count() -= IRQ_EXIT_OFFSET; \ + if (!in_interrupt() && local_softirq_pending()) \ + __do_softirq(); \ + preempt_enable_no_resched(); \ + } while (0) #endif + #endif /* __ASM_HARDIRQ_H */ _