diff --git a/sys/arch/hpcarm/hpcarm/stubs.c b/sys/arch/hpcarm/hpcarm/stubs.c index 7bf7b46b512c..8609b88a0d81 100644 --- a/sys/arch/hpcarm/hpcarm/stubs.c +++ b/sys/arch/hpcarm/hpcarm/stubs.c @@ -1,4 +1,4 @@ -/* $NetBSD: stubs.c,v 1.2 2001/03/31 12:22:38 toshii Exp $ */ +/* $NetBSD: stubs.c,v 1.3 2001/05/22 17:01:16 toshii Exp $ */ /* * Copyright (c) 1994-1998 Mark Brinicombe. @@ -253,12 +253,12 @@ set_spl_masks() { int loop; - for (loop = 0; loop < _SPL_LEVELS; ++loop) { - spl_masks[loop] = 0xffffffff; + for (loop = 0; loop < _SPL_LEVELS; ++loop) spl_smasks[loop] = 0; - } - spl_masks[_SPL_BIO] = imask[IPL_BIO]; + for (loop = 0; loop <= _SPL_BIO; loop++) + spl_masks[loop] = imask[IPL_BIO]; + spl_masks[_SPL_NET] = imask[IPL_NET]; spl_masks[_SPL_SOFTSERIAL] = imask[IPL_TTY]; spl_masks[_SPL_TTY] = imask[IPL_TTY]; diff --git a/sys/arch/hpcarm/sa11x0/sa11x0_irq.S b/sys/arch/hpcarm/sa11x0/sa11x0_irq.S index ace7ce36fee4..1393ae9c4716 100644 --- a/sys/arch/hpcarm/sa11x0/sa11x0_irq.S +++ b/sys/arch/hpcarm/sa11x0/sa11x0_irq.S @@ -1,4 +1,4 @@ -/* $NetBSD: sa11x0_irq.S,v 1.5 2001/05/14 16:19:31 toshii Exp $ */ +/* $NetBSD: sa11x0_irq.S,v 1.6 2001/05/22 17:01:17 toshii Exp $ */ /* * Copyright (c) 1998 Mark Brinicombe. @@ -299,9 +299,6 @@ irqast: b . - 8 -Lcurrent_mask: - .word _C_LABEL(current_mask) /* irq's that are usable */ - ENTRY(irq_setmasks) /* Disable interrupts */ mrs r3, cpsr_all @@ -309,16 +306,13 @@ ENTRY(irq_setmasks) msr cpsr_all, r1 /* Calculate interrupt mask */ - ldr r1, Lcurrent_mask /* All the enabled interrupts */ - ldr r1, [r1] ldr r0, Lspl_masks ldr r2, Lcurrent_spl_level ldr r2, [r2] ldr r2, [r0, r2, lsl #2] - and r1, r1, r2 ldr r0, [pc, #_C_LABEL(saipic_base) - . - 8] - str r1, [r0, #(SAIPIC_MR)] /* Set mask register */ + str r2, [r0, #(SAIPIC_MR)] /* Set mask register */ /* Restore old cpsr and exit */ msr cpsr_all, r3 diff --git a/sys/arch/hpcarm/sa11x0/sa11x0_irqhandler.c b/sys/arch/hpcarm/sa11x0/sa11x0_irqhandler.c index 20f50a49e1f1..9b92437ec440 100644 --- a/sys/arch/hpcarm/sa11x0/sa11x0_irqhandler.c +++ b/sys/arch/hpcarm/sa11x0/sa11x0_irqhandler.c @@ -1,4 +1,4 @@ -/* $NetBSD: sa11x0_irqhandler.c,v 1.5 2001/05/18 14:51:40 toshii Exp $ */ +/* $NetBSD: sa11x0_irqhandler.c,v 1.6 2001/05/22 17:01:17 toshii Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 2001 The NetBSD Foundation, Inc. @@ -98,7 +98,6 @@ irqhandler_t *irqhandlers[NIRQS]; int current_intr_depth; -u_int current_mask; u_int actual_mask; u_int imask[NIPL]; u_int irqblock[NIRQS]; @@ -231,7 +230,6 @@ sa11x0_intr_establish(sa11x0_chipset_tag_t ic, int irq, int type, int level, saved_cpsr = SetCPSR(I32_bit, I32_bit); set_spl_masks(); - current_mask |= (1 << irq); irq_setmasks(); @@ -275,7 +273,6 @@ sa11x0_intr_disestablish(sa11x0_chipset_tag_t ic, void *arg) saved_cpsr = SetCPSR(I32_bit, I32_bit); set_spl_masks(); - current_mask &= ~(1 << irq); irq_setmasks(); SetCPSR(I32_bit, saved_cpsr & I32_bit);