All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sandipan Das <sandipan@linux.ibm.com>
To: shuahkh@osg.samsung.com, linux-kselftest@vger.kernel.org
Cc: linux-arch@vger.kernel.org, fweimer@redhat.com,
	dave.hansen@intel.com, x86@kernel.org, linuxram@us.ibm.com,
	mhocko@kernel.org, linux-mm@kvack.org, mingo@redhat.com,
	aneesh.kumar@linux.ibm.com, bauerman@linux.ibm.com,
	msuchanek@suse.de, linuxppc-dev@lists.ozlabs.org
Subject: [PATCH v15 16/23] selftests/vm/pkeys: Associate key on a mapped page and detect access violation
Date: Wed, 18 Dec 2019 13:21:49 +0530	[thread overview]
Message-ID: <99193025589f1ad9f88cfd73672aa99804778ebb.1576645161.git.sandipan@linux.ibm.com> (raw)
In-Reply-To: <cover.1576645161.git.sandipan@linux.ibm.com>
In-Reply-To: <cover.1576645161.git.sandipan@linux.ibm.com>

From: Ram Pai <linuxram@us.ibm.com>

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

cc: Dave Hansen <dave.hansen@intel.com>
cc: Florian Weimer <fweimer@redhat.com>
Signed-off-by: Ram Pai <linuxram@us.ibm.com>
Acked-by: Dave Hansen <dave.hansen@intel.com>
Signed-off: Sandipan Das <sandipan@linux.ibm.com>
---
 tools/testing/selftests/vm/protection_keys.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/tools/testing/selftests/vm/protection_keys.c b/tools/testing/selftests/vm/protection_keys.c
index 7bceb98662c1..f63b9f55b3a7 100644
--- a/tools/testing/selftests/vm/protection_keys.c
+++ b/tools/testing/selftests/vm/protection_keys.c
@@ -983,6 +983,24 @@ void test_read_of_access_disabled_region(int *ptr, u16 pkey)
 	dprintf1("*ptr: %d\n", ptr_contents);
 	expected_pkey_fault(pkey);
 }
+
+void test_read_of_access_disabled_region_with_page_already_mapped(int *ptr,
+		u16 pkey)
+{
+	int ptr_contents;
+
+	dprintf1("disabling access to PKEY[%02d], doing read @ %p\n",
+				pkey, ptr);
+	ptr_contents = read_ptr(ptr);
+	dprintf1("reading ptr before disabling the read : %d\n",
+			ptr_contents);
+	read_pkey_reg();
+	pkey_access_deny(pkey);
+	ptr_contents = read_ptr(ptr);
+	dprintf1("*ptr: %d\n", ptr_contents);
+	expected_pkey_fault(pkey);
+}
+
 void test_write_of_write_disabled_region(int *ptr, u16 pkey)
 {
 	dprintf1("disabling write access to PKEY[%02d], doing write\n", pkey);
@@ -1389,6 +1407,7 @@ void test_mprotect_pkey_on_unsupported_cpu(int *ptr, u16 pkey)
 void (*pkey_tests[])(int *ptr, u16 pkey) = {
 	test_read_of_write_disabled_region,
 	test_read_of_access_disabled_region,
+	test_read_of_access_disabled_region_with_page_already_mapped,
 	test_write_of_write_disabled_region,
 	test_write_of_access_disabled_region,
 	test_kernel_write_of_access_disabled_region,
-- 
2.17.1


WARNING: multiple messages have this Message-ID (diff)
From: Sandipan Das <sandipan@linux.ibm.com>
To: shuahkh@osg.samsung.com, linux-kselftest@vger.kernel.org
Cc: linux-arch@vger.kernel.org, fweimer@redhat.com,
	linux-mm@kvack.org, aneesh.kumar@linux.ibm.com, x86@kernel.org,
	linuxram@us.ibm.com, mhocko@kernel.org, dave.hansen@intel.com,
	mingo@redhat.com, msuchanek@suse.de,
	linuxppc-dev@lists.ozlabs.org, bauerman@linux.ibm.com
Subject: [PATCH v15 16/23] selftests/vm/pkeys: Associate key on a mapped page and detect access violation
Date: Wed, 18 Dec 2019 13:21:49 +0530	[thread overview]
Message-ID: <99193025589f1ad9f88cfd73672aa99804778ebb.1576645161.git.sandipan@linux.ibm.com> (raw)
In-Reply-To: <cover.1576645161.git.sandipan@linux.ibm.com>
In-Reply-To: <cover.1576645161.git.sandipan@linux.ibm.com>

From: Ram Pai <linuxram@us.ibm.com>

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

cc: Dave Hansen <dave.hansen@intel.com>
cc: Florian Weimer <fweimer@redhat.com>
Signed-off-by: Ram Pai <linuxram@us.ibm.com>
Acked-by: Dave Hansen <dave.hansen@intel.com>
Signed-off: Sandipan Das <sandipan@linux.ibm.com>
---
 tools/testing/selftests/vm/protection_keys.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/tools/testing/selftests/vm/protection_keys.c b/tools/testing/selftests/vm/protection_keys.c
index 7bceb98662c1..f63b9f55b3a7 100644
--- a/tools/testing/selftests/vm/protection_keys.c
+++ b/tools/testing/selftests/vm/protection_keys.c
@@ -983,6 +983,24 @@ void test_read_of_access_disabled_region(int *ptr, u16 pkey)
 	dprintf1("*ptr: %d\n", ptr_contents);
 	expected_pkey_fault(pkey);
 }
+
+void test_read_of_access_disabled_region_with_page_already_mapped(int *ptr,
+		u16 pkey)
+{
+	int ptr_contents;
+
+	dprintf1("disabling access to PKEY[%02d], doing read @ %p\n",
+				pkey, ptr);
+	ptr_contents = read_ptr(ptr);
+	dprintf1("reading ptr before disabling the read : %d\n",
+			ptr_contents);
+	read_pkey_reg();
+	pkey_access_deny(pkey);
+	ptr_contents = read_ptr(ptr);
+	dprintf1("*ptr: %d\n", ptr_contents);
+	expected_pkey_fault(pkey);
+}
+
 void test_write_of_write_disabled_region(int *ptr, u16 pkey)
 {
 	dprintf1("disabling write access to PKEY[%02d], doing write\n", pkey);
@@ -1389,6 +1407,7 @@ void test_mprotect_pkey_on_unsupported_cpu(int *ptr, u16 pkey)
 void (*pkey_tests[])(int *ptr, u16 pkey) = {
 	test_read_of_write_disabled_region,
 	test_read_of_access_disabled_region,
+	test_read_of_access_disabled_region_with_page_already_mapped,
 	test_write_of_write_disabled_region,
 	test_write_of_access_disabled_region,
 	test_kernel_write_of_access_disabled_region,
-- 
2.17.1

  parent reply	other threads:[~2019-12-18  7:52 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-18  7:51 [PATCH v15 00/24] selftests, powerpc, x86: Memory Protection Keys Sandipan Das
2019-12-18  7:51 ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 01/23] selftests/x86/pkeys: Move selftests to arch-neutral directory Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 02/23] selftests/vm/pkeys: Rename all references to pkru to a generic name Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 03/23] selftests/vm/pkeys: Move generic definitions to header file Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 04/23] selftests/vm/pkeys: Move some definitions to arch-specific header Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 05/23] selftests/vm/pkeys: Make gcc check arguments of sigsafe_printf() Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 06/23] selftests/vm/pkeys: Typecast the pkey register Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18 20:46   ` Dave Hansen
2019-12-18 20:46     ` Dave Hansen
2019-12-18 20:59     ` Michal Suchánek
2019-12-18 20:59       ` Michal Suchánek
2019-12-18 21:01       ` Dave Hansen
2019-12-18 21:01         ` Dave Hansen
2019-12-18 21:45         ` Michal Suchánek
2019-12-18 21:45           ` Michal Suchánek
2019-12-19 11:39         ` Michael Ellerman
2019-12-18  7:51 ` [PATCH v15 07/23] selftests: vm: pkeys: Add helpers for pkey bits Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 08/23] selftests/vm/pkeys: Fix pkey_disable_clear() Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 09/23] selftests/vm/pkeys: Fix assertion in pkey_disable_set/clear() Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 10/23] selftests/vm/pkeys: Fix alloc_random_pkey() to make it really random Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 11/23] selftests: vm: pkeys: Use the correct huge page size Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 12/23] selftests/vm/pkeys: Introduce generic pkey abstractions Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 13/23] selftests/vm/pkeys: Introduce powerpc support Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 14/23] selftests/vm/pkeys: Fix assertion in test_pkey_alloc_exhaust() Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2020-01-15  7:30   ` Michael Ellerman
2020-01-15  7:30     ` Michael Ellerman
2019-12-18  7:51 ` [PATCH v15 15/23] selftests/vm/pkeys: Improve checks to determine pkey support Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` Sandipan Das [this message]
2019-12-18  7:51   ` [PATCH v15 16/23] selftests/vm/pkeys: Associate key on a mapped page and detect access violation Sandipan Das
2019-12-18  7:51 ` [PATCH v15 17/23] selftests/vm/pkeys: Associate key on a mapped page and detect write violation Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 18/23] selftests/vm/pkeys: Detect write violation on a mapped access-denied-key page Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 19/23] selftests/vm/pkeys: Introduce a sub-page allocator Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 20/23] selftests/vm/pkeys: Test correct behaviour of pkey-0 Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 21/23] selftests/vm/pkeys: Fix number of reserved powerpc pkeys Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 22/23] selftests/vm/pkeys: Override access right definitions on powerpc Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2019-12-18  7:51 ` [PATCH v15 23/23] selftests: vm: pkeys: Use the correct page size " Sandipan Das
2019-12-18  7:51   ` Sandipan Das
2020-01-15  7:07   ` Michael Ellerman
2020-01-15  7:07     ` Michael Ellerman
2020-01-16  8:33     ` Sandipan Das
2020-01-16  8:33       ` Sandipan Das
2019-12-18 20:48 ` [PATCH v15 00/24] selftests, powerpc, x86: Memory Protection Keys Dave Hansen
2019-12-18 20:48   ` Dave Hansen
2020-01-10 17:38 ` Aneesh Kumar K.V
2020-01-10 17:38   ` Aneesh Kumar K.V
2020-01-10 17:57   ` Dave Hansen
2020-01-10 17:57     ` Dave Hansen
2020-01-11 16:50     ` Sandipan Das
2020-01-11 16:50       ` Sandipan Das

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=99193025589f1ad9f88cfd73672aa99804778ebb.1576645161.git.sandipan@linux.ibm.com \
    --to=sandipan@linux.ibm.com \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=bauerman@linux.ibm.com \
    --cc=dave.hansen@intel.com \
    --cc=fweimer@redhat.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=linuxram@us.ibm.com \
    --cc=mhocko@kernel.org \
    --cc=mingo@redhat.com \
    --cc=msuchanek@suse.de \
    --cc=shuahkh@osg.samsung.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.