OSDN Git Service

powerpc/pkeys: Deny read/write/execute by default
authorRam Pai <linuxram@us.ibm.com>
Tue, 17 Jul 2018 13:51:03 +0000 (06:51 -0700)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 24 Jul 2018 11:33:41 +0000 (21:33 +1000)
Deny all permissions on all keys, with some exceptions. pkey-0 must
allow all permissions, or else everything comes to a screaching halt.
Execute-only key must allow execute permission.

Fixes: cf43d3b26452 ("powerpc: Enable pkey subsystem")
Cc: stable@vger.kernel.org # v4.16+
Signed-off-by: Ram Pai <linuxram@us.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/pkeys.c

index 6b55373..98180f4 100644 (file)
@@ -124,12 +124,10 @@ int pkey_initialize(void)
 
        /* register mask is in BE format */
        pkey_amr_mask = ~0x0ul;
-       pkey_iamr_mask = ~0x0ul;
+       pkey_amr_mask &= ~(0x3ul << pkeyshift(0));
 
-       for (i = 0; i < (pkeys_total - os_reserved); i++) {
-               pkey_amr_mask &= ~(0x3ul << pkeyshift(i));
-               pkey_iamr_mask &= ~(0x1ul << pkeyshift(i));
-       }
+       pkey_iamr_mask = ~0x0ul;
+       pkey_iamr_mask &= ~(0x3ul << pkeyshift(0));
 
        pkey_uamor_mask = ~0x0ul;
        pkey_uamor_mask &= ~(0x3ul << pkeyshift(0));