[PATCH 0/9] [v3] x86, pkeys: two protection keys bug fixes

From: Dave Hansen
Date: Fri Apr 27 2018 - 13:52:17 EST

Hi x86 maintainers,

This set is basically unchanged from the last post. There was
some previous discussion about other ways to fix this with the ppc
folks (Ram Pai), but we've concluded that this x86-specific fix is
fine. I think Ram had a different fix for ppc.

Changes from v2:
* Clarified commit message in patch 1/9 taking some feedback from

Changes from v1:
* Added Fixes: and cc'd stable. No code changes.


This fixes two bugs, and adds selftests to make sure they stay fixed:

1. pkey 0 was not usable via mprotect_pkey() because it had never
been explicitly allocated.
2. mprotect(PROT_EXEC) memory could sometimes be left with the
implicit exec-only protection key assigned.

I already posted #1 previously. I'm including them both here because
I don't think it's been picked up in case folks want to pull these
all in a single bundle.

Cc: Ram Pai <linuxram@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
Cc: Michael Ellermen <mpe@xxxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>p
Cc: Shuah Khan <shuah@xxxxxxxxxx>
Cc: Shakeel Butt <shakeelb@xxxxxxxxxx>