From 1b6bcdace1e102b6acd3c88f5d7fd1c6dbbb6f09 Mon Sep 17 00:00:00 2001 From: Dale Rahn Date: Wed, 20 Dec 2006 14:27:59 +0000 Subject: Enable recursive interrupts on armish. nudge by deraadt@ --- sys/arch/arm/xscale/i80321_intr.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/arch/arm/xscale/i80321_intr.c b/sys/arch/arm/xscale/i80321_intr.c index f0a3e5f0fc8..31112e2e2b8 100644 --- a/sys/arch/arm/xscale/i80321_intr.c +++ b/sys/arch/arm/xscale/i80321_intr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: i80321_intr.c,v 1.8 2006/07/02 02:51:13 drahn Exp $ */ +/* $OpenBSD: i80321_intr.c,v 1.9 2006/12/20 14:27:58 drahn Exp $ */ /* * Copyright (c) 2006 Dale Rahn @@ -102,8 +102,12 @@ i80321intc_read_intsrc(void) static inline void i80321intc_setipl(int new) { + int psw; + + psw = disable_interrupts(I32_bit); current_ipl_level = new; i80321intc_write_intctl(i80321intc_imask[new]); + restore_interrupts(psw); } @@ -376,19 +380,15 @@ i80321_irq_handler(void *arg) if (saved_spl_level < i80321_handler[irq].iq_irq) i80321intc_setipl(i80321_handler[irq].iq_irq); -#ifdef notyet /* Enable interrupt */ - restore_interrupts(I32_bit); -#endif + enable_interrupts(I32_bit); TAILQ_FOREACH(ih, &i80321_handler[irq].iq_list, ih_list) { if ((ih->ih_func)( ih->ih_arg == 0 ? frame : ih->ih_arg)) ih->ih_count.ec_count++; } -#ifdef notyet /* Disable interrupt */ disable_interrupts(I32_bit); -#endif hwpend &= ~(1<