From df986188e9cc833240ca7eb2dd62a649ea5dc33a Mon Sep 17 00:00:00 2001 From: raj Date: Thu, 11 Sep 2008 12:36:13 +0000 Subject: ARM interrupts improvements. - Fix nexus_setup_intr() abuse of setting up multiple IRQs in one go. Calling arm_setup_irqhandler() in loop is bogus, as there's just one cookie given from the caller and it is overwritten in each iteration so that only the last handler's cookie value prevails. - Proper intr masking/unmasking handling: the IRQ source is masked at PIC level only after the last handler has been removed from the list. Reviewed by: cognet, imp, sam, stass Obtained from: Grzegorz Bernacki gjb ! semihalf dot com --- sys/arm/include/intr.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sys/arm/include/intr.h') diff --git a/sys/arm/include/intr.h b/sys/arm/include/intr.h index a41b214..bf2bf6d 100644 --- a/sys/arm/include/intr.h +++ b/sys/arm/include/intr.h @@ -57,6 +57,6 @@ void arm_mask_irq(uintptr_t); void arm_unmask_irq(uintptr_t); void arm_setup_irqhandler(const char *, int (*)(void*), void (*)(void*), void *, int, int, void **); -int arm_remove_irqhandler(void *); +int arm_remove_irqhandler(int, void *); extern void (*arm_post_filter)(void *); #endif /* _MACHINE_INTR_H */ -- cgit v1.1