On 11/08/2016 03:24 AM, Heiko Carstens wrote:
quoted hunk ↗ jump to hunk
Something like this:
diff --git a/mm/mprotect.c b/mm/mprotect.c
index 11936526b08b..9fb86b107e49 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -484,6 +484,8 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
return do_mprotect_pkey(start, len, prot, -1);
}
+#ifdef CONFIG_ARCH_HAS_PKEYS
+
SYSCALL_DEFINE4(pkey_mprotect, unsigned long, start, size_t, len,
unsigned long, prot, int, pkey)
{@@ -534,3 +536,4 @@ SYSCALL_DEFINE1(pkey_free, int, pkey)
*/
return ret;
}
+#endif /* CONFIG_ARCH_HAS_PKEYS */
That's fine with me, fwiw. It ends up meaning that the config option
changes whether we get -ENOSPC vs. -ENOSYS, so the x86_32 behavior will
change, for instance. But, I _think_ that's OK.