From 9c519f619730107043130722c66a1579d8c8ba32 Mon Sep 17 00:00:00 2001
From: Ram Pai <linuxram@us.ibm.com>
Date: Mon, 22 Jan 2018 10:52:07 -0800
Subject: [PATCH 20/30] selftests/vm: clear the bits in shadow reg when a pkey
is freed.
References: FATE#322447, bsc#1078248
Patch-mainline: submitted https://lists.ozlabs.org/pipermail/linuxppc-dev/2018-January/168234.html
When a key is freed, the key is no more effective.
Clear the bits corresponding to the pkey in the shadow
register. Otherwise it will carry some spurious bits
which can trigger false-positive asserts.
Signed-off-by: Ram Pai <linuxram@us.ibm.com>
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
Acked-by: Michal Suchanek <msuchanek@suse.de>
---
tools/testing/selftests/vm/protection_keys.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/vm/protection_keys.c b/tools/testing/selftests/vm/protection_keys.c
index 55a25e1273df..d1cbdfe86c51 100644
--- a/tools/testing/selftests/vm/protection_keys.c
+++ b/tools/testing/selftests/vm/protection_keys.c
@@ -586,7 +586,8 @@ int sys_pkey_free(unsigned long pkey)
int ret = syscall(SYS_pkey_free, pkey);
if (!ret)
- shadow_pkey_reg &= reset_bits(pkey, PKEY_DISABLE_ACCESS);
+ shadow_pkey_reg &= reset_bits(pkey,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE);
dprintf1("%s(pkey=%ld) syscall ret: %d\n", __func__, pkey, ret);
return ret;
}
--
2.13.6