Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/vm/pkeys: detect write violation on a mapped access-denied-key page

Detect write-violation on a page to which access-disabled key is
associated much after the page is mapped.

Signed-off-by: Ram Pai <linuxram@us.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: Thiago Jung Bauermann <bauerman@linux.ibm.com>
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/6a7dd4069ee18a2a51b207a55aa197f3f3c59753.1585646528.git.sandipan@linux.ibm.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Ram Pai and committed by
Linus Torvalds
4e06e718 39351c13

+13
+13
tools/testing/selftests/vm/protection_keys.c
··· 1027 1027 *ptr = __LINE__; 1028 1028 expected_pkey_fault(pkey); 1029 1029 } 1030 + 1031 + void test_write_of_access_disabled_region_with_page_already_mapped(int *ptr, 1032 + u16 pkey) 1033 + { 1034 + *ptr = __LINE__; 1035 + dprintf1("disabling access; after accessing the page, " 1036 + " to PKEY[%02d], doing write\n", pkey); 1037 + pkey_access_deny(pkey); 1038 + *ptr = __LINE__; 1039 + expected_pkey_fault(pkey); 1040 + } 1041 + 1030 1042 void test_kernel_write_of_access_disabled_region(int *ptr, u16 pkey) 1031 1043 { 1032 1044 int ret; ··· 1435 1423 test_write_of_write_disabled_region, 1436 1424 test_write_of_write_disabled_region_with_page_already_mapped, 1437 1425 test_write_of_access_disabled_region, 1426 + test_write_of_access_disabled_region_with_page_already_mapped, 1438 1427 test_kernel_write_of_access_disabled_region, 1439 1428 test_kernel_write_of_write_disabled_region, 1440 1429 test_kernel_gup_of_access_disabled_region,