The access type for a prefetch abort should not include PROT_READ,
authorkettenis <kettenis@openbsd.org>
Thu, 5 Jan 2023 20:35:44 +0000 (20:35 +0000)
committerkettenis <kettenis@openbsd.org>
Thu, 5 Jan 2023 20:35:44 +0000 (20:35 +0000)
otherwise faults on executable pages mapped only as PROT_EXEC will
not work.

ok deraadt@

sys/arch/arm/arm/fault.c

index d020c26..62afab6 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: fault.c,v 1.46 2022/01/02 05:59:53 jsg Exp $  */
+/*     $OpenBSD: fault.c,v 1.47 2023/01/05 20:35:44 kettenis Exp $     */
 /*     $NetBSD: fault.c,v 1.46 2004/01/21 15:39:21 skrll Exp $ */
 
 /*
@@ -578,7 +578,7 @@ prefetch_abort_handler(trapframe_t *tf)
 #endif
 
        KERNEL_LOCK();
-       error = uvm_fault(map, va, 0, PROT_READ | PROT_EXEC);
+       error = uvm_fault(map, va, 0, PROT_EXEC);
        KERNEL_UNLOCK();
 
        if (error == 0) {