summaryrefslogtreecommitdiff
path: root/sys/arch/arm
diff options
context:
space:
mode:
authorPatrick Wildt <patrick@cvs.openbsd.org>2013-05-10 10:18:47 +0000
committerPatrick Wildt <patrick@cvs.openbsd.org>2013-05-10 10:18:47 +0000
commit0ed143ed761e07a1408b0ade1dcce4e829d79036 (patch)
tree36dab8b857369a1357618a4afec4950190af9d2a /sys/arch/arm
parent10ede77d5f798d66ee1de98dfdc2fb6c338b0581 (diff)
Map vector page executable when installing the fiq handler.
ok miod@
Diffstat (limited to 'sys/arch/arm')
-rw-r--r--sys/arch/arm/arm/fiq.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/arch/arm/arm/fiq.c b/sys/arch/arm/arm/fiq.c
index 60bb686d35d..10c1a82f273 100644
--- a/sys/arch/arm/arm/fiq.c
+++ b/sys/arch/arm/arm/fiq.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fiq.c,v 1.3 2012/12/05 23:20:11 deraadt Exp $ */
+/* $OpenBSD: fiq.c,v 1.4 2013/05/10 10:18:46 patrick Exp $ */
/* $NetBSD: fiq.c,v 1.5 2002/04/03 23:33:27 thorpej Exp $ */
/*
@@ -67,13 +67,13 @@ static void
fiq_installhandler(void *func, size_t size)
{
#if !defined(__ARM_FIQ_INDIRECT)
- vector_page_setprot(VM_PROT_READ|VM_PROT_WRITE);
+ vector_page_setprot(VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE);
#endif
memcpy(fiqvector, func, size);
#if !defined(__ARM_FIQ_INDIRECT)
- vector_page_setprot(VM_PROT_READ);
+ vector_page_setprot(VM_PROT_READ|VM_PROT_EXECUTE);
#endif
cpu_icache_sync_range((vaddr_t) fiqvector, size);
}