summaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/vm/pkey-x86.h
diff options
context:
space:
mode:
authorRam Pai <linuxram@us.ibm.com>2020-06-04 16:52:12 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2020-06-04 19:06:27 -0700
commit604c496b227d300aac330aecd88ae5ffa28fbfc0 (patch)
treeffb343fa5a6074033007b27621eb1d57ee901bf4 /tools/testing/selftests/vm/pkey-x86.h
parent57bcb57da241a186e8174c58850cb0e8e21f77a9 (diff)
downloadlinux-stable-604c496b227d300aac330aecd88ae5ffa28fbfc0.tar.gz
linux-stable-604c496b227d300aac330aecd88ae5ffa28fbfc0.tar.bz2
linux-stable-604c496b227d300aac330aecd88ae5ffa28fbfc0.zip
selftests/vm/pkeys: introduce generic pkey abstractions
This introduces some generic abstractions and provides the corresponding architecture-specfic implementations for these abstractions. Signed-off-by: Ram Pai <linuxram@us.ibm.com> Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com> Signed-off-by: Sandipan Das <sandipan@linux.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: Dave Hansen <dave.hansen@intel.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Florian Weimer <fweimer@redhat.com> Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Michal Hocko <mhocko@kernel.org> Cc: Michal Suchanek <msuchanek@suse.de> Cc: Shuah Khan <shuah@kernel.org> Link: http://lkml.kernel.org/r/1c977915e69fb7767fb0dbd55ac7656554b15b93.1585646528.git.sandipan@linux.ibm.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'tools/testing/selftests/vm/pkey-x86.h')
-rw-r--r--tools/testing/selftests/vm/pkey-x86.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/tools/testing/selftests/vm/pkey-x86.h b/tools/testing/selftests/vm/pkey-x86.h
index def2a1bcf6a5..a0c59d4f7af2 100644
--- a/tools/testing/selftests/vm/pkey-x86.h
+++ b/tools/testing/selftests/vm/pkey-x86.h
@@ -42,6 +42,7 @@
#endif
#define NR_PKEYS 16
+#define NR_RESERVED_PKEYS 2 /* pkey-0 and exec-only-pkey */
#define PKEY_BITS_PER_PKEY 2
#define HPAGE_SIZE (1UL<<21)
#define PAGE_SIZE 4096
@@ -158,4 +159,18 @@ int pkey_reg_xstate_offset(void)
return xstate_offset;
}
+static inline int get_arch_reserved_keys(void)
+{
+ return NR_RESERVED_PKEYS;
+}
+
+void expect_fault_on_read_execonly_key(void *p1, int pkey)
+{
+ int ptr_contents;
+
+ ptr_contents = read_ptr(p1);
+ dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
+ expected_pkey_fault(pkey);
+}
+
#endif /* _PKEYS_X86_H */