From 6365711de73b0e67cf2c8e496300dbfe491d2a8c Mon Sep 17 00:00:00 2001 From: Matthew Wilcox Date: Tue, 8 Mar 2005 16:13:13 -0800 Subject: [PATCH] PA-RISC irq handling improvements - Move the bits_wide parameter from txn_alloc_data to txn_alloc_irq. It's too late by the time it hits txn_alloc_data(), we can only panic. In txn_alloc_irq, we can fail the allocation and continue. - Also fix a bug where we'd only allow up to half the interrupts to be allocated. Not a problem for iosapic machines, but might have sucked on a really big GSC-based machine. - Add missing irq_enter() / irq_exit() - Allow interrupt processing to be interrupted by the timer tick so we actually account hard interrupts. Also speed up the handling of CPU interrupts by not masking with cpu_eiem again. - Remove sufficiently obsolete DEBUG_IRQ code - Remove limit on times around the loop. If we exit the loop while interrupts are still pending, we'll only be re-interrupted as soon as we exit the function. - Remove unnecessary includes Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds --- include/asm-parisc/irq.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/asm-parisc/irq.h b/include/asm-parisc/irq.h index 4e5fad213c39..75654ba93353 100644 --- a/include/asm-parisc/irq.h +++ b/include/asm-parisc/irq.h @@ -40,10 +40,12 @@ struct hw_interrupt_type; void no_ack_irq(unsigned int irq); void no_end_irq(unsigned int irq); -extern int txn_alloc_irq(void); +extern int txn_alloc_irq(unsigned int nbits); extern int txn_claim_irq(int); -extern unsigned int txn_alloc_data(int, unsigned int); -extern unsigned long txn_alloc_addr(int); +extern unsigned int txn_alloc_data(unsigned int); +extern unsigned long txn_alloc_addr(unsigned int); + +extern int cpu_claim_irq(unsigned int irq, struct hw_interrupt_type *, void *); extern int cpu_claim_irq(unsigned int irq, struct hw_interrupt_type *, void *); -- cgit v1.2.3