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>