aboutsummaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/Perf-Trace-Util/lib/Perf/Trace/Util.py
diff options
context:
space:
mode:
authorDave Hansen <[email protected]>2018-05-09 10:13:58 -0700
committerIngo Molnar <[email protected]>2018-05-14 11:14:45 +0200
commit2fa9d1cfaf0e02f8abef0757002bff12dfcfa4e6 (patch)
tree122e36cfb88811ee0a7641d05c5ca366d3390a83 /tools/perf/scripts/python/Perf-Trace-Util/lib/Perf/Trace/Util.py
parent3488a600d90bcaf061b104dbcfbdc8d99b398312 (diff)
x86/pkeys: Do not special case protection key 0
mm_pkey_is_allocated() treats pkey 0 as unallocated. That is inconsistent with the manpages, and also inconsistent with mm->context.pkey_allocation_map. Stop special casing it and only disallow values that are actually bad (< 0). The end-user visible effect of this is that you can now use mprotect_pkey() to set pkey=0. This is a bit nicer than what Ram proposed[1] because it is simpler and removes special-casing for pkey 0. On the other hand, it does allow applications to pkey_free() pkey-0, but that's just a silly thing to do, so we are not going to protect against it. The scenario that could happen is similar to what happens if you free any other pkey that is in use: it might get reallocated later and used to protect some other data. The most likely scenario is that pkey-0 comes back from pkey_alloc(), an access-disable or write-disable bit is set in PKRU for it, and the next stack access will SIGSEGV. It's not horribly different from if you mprotect()'d your stack or heap to be unreadable or unwritable, which is generally very foolish, but also not explicitly prevented by the kernel. 1. http://lkml.kernel.org/r/[email protected] Signed-off-by: Dave Hansen <[email protected]> Cc: Andrew Morton <[email protected]>p Cc: Dave Hansen <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Michael Ellermen <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Ram Pai <[email protected]> Cc: Shuah Khan <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] Cc: [email protected] Fixes: 58ab9a088dda ("x86/pkeys: Check against max pkey to avoid overflows") Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/Perf-Trace-Util/lib/Perf/Trace/Util.py')
0 files changed, 0 insertions, 0 deletions