mutable mapping is not working right, so temporarily bring back the
RW -> R *only* for ramdisk kernels
-/* $OpenBSD: uvm_map.c,v 1.321 2024/01/20 13:19:39 deraadt Exp $ */
+/* $OpenBSD: uvm_map.c,v 1.322 2024/01/21 00:23:29 deraadt Exp $ */
/* $NetBSD: uvm_map.c,v 1.86 2000/11/27 08:40:03 chs Exp $ */
/*
continue;
if (checkimmutable && (iter->etype & UVM_ET_IMMUTABLE)) {
- error = EPERM;
- goto out;
+#ifdef SMALL_KERNEL
+ if (iter->protection == (PROT_READ | PROT_WRITE) &&
+ new_prot == PROT_READ) {
+ /* Permit RW to R as a data-locking mechanism */
+ goto ok;
+ } else
+#endif
+ {
+ error = EPERM;
+ goto out;
+ }
}
old_prot = iter->protection;
if (old_prot == PROT_NONE && new_prot != old_prot) {