diff options
author | 2019-09-25 09:21:49 +0000 | |
---|---|---|
committer | 2019-09-25 09:21:49 +0000 | |
commit | 7e841682145c3ccad2c7efac3a2ff6dc7be7dadf (patch) | |
tree | f6cfbab32134dc6121569df4a4fbb02a1c2ea6d2 | |
parent | adjust for U-Boot RK3288 changes (diff) | |
download | wireguard-openbsd-7e841682145c3ccad2c7efac3a2ff6dc7be7dadf.tar.xz wireguard-openbsd-7e841682145c3ccad2c7efac3a2ff6dc7be7dadf.zip |
Enable interrupts while running interrupt handlers like we do on arm64.
ok patrick@, jsg@
-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 |