summaryrefslogtreecommitdiff
path: root/sys/arch/arm
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2007-04-27 18:45:01 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2007-04-27 18:45:01 +0000
commit6e27c05c633ed899380a441aa7105b0e7ee5e390 (patch)
tree8a7a655b8c04d1e67f84c05b3bcf3004e5415166 /sys/arch/arm
parent95f9e80cc362acc476f68125b00602e70ad0760e (diff)
Enable interrupts during syscall processing. Need to verify if the
test actually has any value. ok miod@
Diffstat (limited to 'sys/arch/arm')
-rw-r--r--sys/arch/arm/arm/syscall.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/arch/arm/arm/syscall.c b/sys/arch/arm/arm/syscall.c
index f3a497f2abe..ec8c3ad7e35 100644
--- a/sys/arch/arm/arm/syscall.c
+++ b/sys/arch/arm/arm/syscall.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: syscall.c,v 1.8 2006/12/27 17:49:26 drahn Exp $ */
+/* $OpenBSD: syscall.c,v 1.9 2007/04/27 18:45:00 drahn Exp $ */
/* $NetBSD: syscall.c,v 1.24 2003/11/14 19:03:17 scw Exp $ */
/*-
@@ -118,6 +118,10 @@ swi_handler(trapframe_t *frame)
uvmexp.syscalls++;
+ /* Re-enable interrupts if they were enabled previously */
+ if (__predict_true((frame->tf_spsr & I32_bit) == 0))
+ enable_interrupts(I32_bit);
+
p->p_addr->u_pcb.pcb_tf = frame;
code = frame->tf_r12;