diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2019-09-25 09:21:50 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2019-09-25 09:21:50 +0000 |
commit | 95a2391ec92607fa8730813fa944618b00306ab5 (patch) | |
tree | aa80207e8f678914c6d02d1f20cd673216621f11 /sys/arch/arm/cortex | |
parent | 01e5cfb2fad855b48b2828ba43cd6c8daaed2643 (diff) |
Enable interrupts while running interrupt handlers like we do on arm64.
ok patrick@, jsg@
Diffstat (limited to 'sys/arch/arm/cortex')
-rw-r--r-- | sys/arch/arm/cortex/ampintc.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/arch/arm/cortex/ampintc.c b/sys/arch/arm/cortex/ampintc.c index 99579049abd..c3a99c85cbc 100644 --- a/sys/arch/arm/cortex/ampintc.c +++ b/sys/arch/arm/cortex/ampintc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ampintc.c,v 1.25 2019/09/22 19:13:45 kettenis Exp $ */ +/* $OpenBSD: ampintc.c,v 1.26 2019/09/25 09:21:49 kettenis Exp $ */ /* * Copyright (c) 2007,2009,2011 Dale Rahn <drahn@openbsd.org> * @@ -511,7 +511,7 @@ ampintc_irq_handler(void *frame) struct intrhand *ih; void *arg; uint32_t iack_val; - int irq, pri, s; + int irq, pri, s, handled; iack_val = ampintc_iack(); #ifdef DEBUG_INTC @@ -559,7 +559,10 @@ ampintc_irq_handler(void *frame) else arg = frame; - if (ih->ih_func(arg)) + enable_interrupts(PSR_I); + handled = ih->ih_func(arg); + disable_interrupts(PSR_I); + if (handled) ih->ih_count.ec_count++; #ifdef MULTIPROCESSOR |