diff options
| author | Olivier Houchard <cognet@FreeBSD.org> | 2008-09-11 20:43:38 +0000 |
|---|---|---|
| committer | Olivier Houchard <cognet@FreeBSD.org> | 2008-09-11 20:43:38 +0000 |
| commit | 34ba28d1826c8ee62efecb10274bcbfa7458d367 (patch) | |
| tree | 15327fe6aa531b575666e84dbf8df36436e3efca | |
| parent | 5ac74cc6e48055cd37f09f399f9f03440d3bafba (diff) | |
Notes
| -rw-r--r-- | sys/arm/xscale/ixp425/ixp425.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/arm/xscale/ixp425/ixp425.c b/sys/arm/xscale/ixp425/ixp425.c index b1a7a56099b13..af87503084591 100644 --- a/sys/arm/xscale/ixp425/ixp425.c +++ b/sys/arm/xscale/ixp425/ixp425.c @@ -143,22 +143,27 @@ ixp425_irq2gpio_bit(int irq) void arm_mask_irq(uintptr_t nb) { + int i; + + i = disable_interrupts(I32_bit); intr_enabled &= ~(1 << nb); ixp425_set_intrmask(); + restore_interrupts(i); /*XXX; If it's a GPIO interrupt, ACK it know. Can it be a problem ?*/ if ((1 << nb) & IXP425_INT_GPIOMASK) IXPREG(IXP425_GPIO_VBASE + IXP425_GPIO_GPISR) = ixp425_irq2gpio_bit(nb); - - } void arm_unmask_irq(uintptr_t nb) { - + int i; + + i = disable_interrupts(I32_bit); intr_enabled |= (1 << nb); ixp425_set_intrmask(); + restore_interrupts(i); } static __inline uint32_t |
