linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI
       [not found] <20180618080608.851973560@linuxfoundation.org>
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  2018-07-03 11:36   ` Vlastimil Babka
  2018-06-18  8:13 ` [PATCH 4.16 235/279] x86/mpx/selftests: Adjust the self-test to fresh distros that export the MPX ABI Greg Kroah-Hartman
                   ` (11 subsequent siblings)
  12 siblings, 1 reply; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Linus Torvalds,
	Peter Zijlstra, Thomas Gleixner, akpm, dave.hansen, linux-mm,
	linuxram, mpe, shakeelb, shuah, Ingo Molnar, Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Ingo Molnar <mingo@kernel.org>

[ Upstream commit 0fb96620dce351608aa82eed5942e2f58b07beda ]

Ubuntu 18.04 started exporting pkeys details in header files, resulting
in build failures and warnings in the pkeys self-tests:

  protection_keys.c:232:0: warning: "SEGV_BNDERR" redefined
  protection_keys.c:387:5: error: conflicting types for a??pkey_geta??
  protection_keys.c:409:5: error: conflicting types for a??pkey_seta??
  ...

Fix these namespace conflicts and double definitions, plus also
clean up the ABI definitions to make it all a bit more readable ...

Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: akpm@linux-foundation.org
Cc: dave.hansen@intel.com
Cc: linux-mm@kvack.org
Cc: linuxram@us.ibm.com
Cc: mpe@ellerman.id.au
Cc: shakeelb@google.com
Cc: shuah@kernel.org
Link: http://lkml.kernel.org/r/20180514085623.GB7094@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/protection_keys.c |   67 +++++++++++++++-----------
 1 file changed, 41 insertions(+), 26 deletions(-)

--- a/tools/testing/selftests/x86/protection_keys.c
+++ b/tools/testing/selftests/x86/protection_keys.c
@@ -191,26 +191,30 @@ void lots_o_noops_around_write(int *writ
 #ifdef __i386__
 
 #ifndef SYS_mprotect_key
-# define SYS_mprotect_key 380
+# define SYS_mprotect_key	380
 #endif
+
 #ifndef SYS_pkey_alloc
-# define SYS_pkey_alloc	 381
-# define SYS_pkey_free	 382
+# define SYS_pkey_alloc		381
+# define SYS_pkey_free		382
 #endif
-#define REG_IP_IDX REG_EIP
-#define si_pkey_offset 0x14
+
+#define REG_IP_IDX		REG_EIP
+#define si_pkey_offset		0x14
 
 #else
 
 #ifndef SYS_mprotect_key
-# define SYS_mprotect_key 329
+# define SYS_mprotect_key	329
 #endif
+
 #ifndef SYS_pkey_alloc
-# define SYS_pkey_alloc	 330
-# define SYS_pkey_free	 331
+# define SYS_pkey_alloc		330
+# define SYS_pkey_free		331
 #endif
-#define REG_IP_IDX REG_RIP
-#define si_pkey_offset 0x20
+
+#define REG_IP_IDX		REG_RIP
+#define si_pkey_offset		0x20
 
 #endif
 
@@ -225,8 +229,14 @@ void dump_mem(void *dumpme, int len_byte
 	}
 }
 
-#define SEGV_BNDERR     3  /* failed address bound checks */
-#define SEGV_PKUERR     4
+/* Failed address bound checks: */
+#ifndef SEGV_BNDERR
+# define SEGV_BNDERR		3
+#endif
+
+#ifndef SEGV_PKUERR
+# define SEGV_PKUERR		4
+#endif
 
 static char *si_code_str(int si_code)
 {
@@ -393,10 +403,15 @@ pid_t fork_lazy_child(void)
 	return forkret;
 }
 
-#define PKEY_DISABLE_ACCESS    0x1
-#define PKEY_DISABLE_WRITE     0x2
+#ifndef PKEY_DISABLE_ACCESS
+# define PKEY_DISABLE_ACCESS	0x1
+#endif
+
+#ifndef PKEY_DISABLE_WRITE
+# define PKEY_DISABLE_WRITE	0x2
+#endif
 
-u32 pkey_get(int pkey, unsigned long flags)
+static u32 hw_pkey_get(int pkey, unsigned long flags)
 {
 	u32 mask = (PKEY_DISABLE_ACCESS|PKEY_DISABLE_WRITE);
 	u32 pkru = __rdpkru();
@@ -418,7 +433,7 @@ u32 pkey_get(int pkey, unsigned long fla
 	return masked_pkru;
 }
 
-int pkey_set(int pkey, unsigned long rights, unsigned long flags)
+static int hw_pkey_set(int pkey, unsigned long rights, unsigned long flags)
 {
 	u32 mask = (PKEY_DISABLE_ACCESS|PKEY_DISABLE_WRITE);
 	u32 old_pkru = __rdpkru();
@@ -452,15 +467,15 @@ void pkey_disable_set(int pkey, int flag
 		pkey, flags);
 	pkey_assert(flags & (PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE));
 
-	pkey_rights = pkey_get(pkey, syscall_flags);
+	pkey_rights = hw_pkey_get(pkey, syscall_flags);
 
-	dprintf1("%s(%d) pkey_get(%d): %x\n", __func__,
+	dprintf1("%s(%d) hw_pkey_get(%d): %x\n", __func__,
 			pkey, pkey, pkey_rights);
 	pkey_assert(pkey_rights >= 0);
 
 	pkey_rights |= flags;
 
-	ret = pkey_set(pkey, pkey_rights, syscall_flags);
+	ret = hw_pkey_set(pkey, pkey_rights, syscall_flags);
 	assert(!ret);
 	/*pkru and flags have the same format */
 	shadow_pkru |= flags << (pkey * 2);
@@ -468,8 +483,8 @@ void pkey_disable_set(int pkey, int flag
 
 	pkey_assert(ret >= 0);
 
-	pkey_rights = pkey_get(pkey, syscall_flags);
-	dprintf1("%s(%d) pkey_get(%d): %x\n", __func__,
+	pkey_rights = hw_pkey_get(pkey, syscall_flags);
+	dprintf1("%s(%d) hw_pkey_get(%d): %x\n", __func__,
 			pkey, pkey, pkey_rights);
 
 	dprintf1("%s(%d) pkru: 0x%x\n", __func__, pkey, rdpkru());
@@ -483,24 +498,24 @@ void pkey_disable_clear(int pkey, int fl
 {
 	unsigned long syscall_flags = 0;
 	int ret;
-	int pkey_rights = pkey_get(pkey, syscall_flags);
+	int pkey_rights = hw_pkey_get(pkey, syscall_flags);
 	u32 orig_pkru = rdpkru();
 
 	pkey_assert(flags & (PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE));
 
-	dprintf1("%s(%d) pkey_get(%d): %x\n", __func__,
+	dprintf1("%s(%d) hw_pkey_get(%d): %x\n", __func__,
 			pkey, pkey, pkey_rights);
 	pkey_assert(pkey_rights >= 0);
 
 	pkey_rights |= flags;
 
-	ret = pkey_set(pkey, pkey_rights, 0);
+	ret = hw_pkey_set(pkey, pkey_rights, 0);
 	/* pkru and flags have the same format */
 	shadow_pkru &= ~(flags << (pkey * 2));
 	pkey_assert(ret >= 0);
 
-	pkey_rights = pkey_get(pkey, syscall_flags);
-	dprintf1("%s(%d) pkey_get(%d): %x\n", __func__,
+	pkey_rights = hw_pkey_get(pkey, syscall_flags);
+	dprintf1("%s(%d) hw_pkey_get(%d): %x\n", __func__,
 			pkey, pkey, pkey_rights);
 
 	dprintf1("%s(%d) pkru: 0x%x\n", __func__, pkey, rdpkru());

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 4.16 235/279] x86/mpx/selftests: Adjust the self-test to fresh distros that export the MPX ABI
       [not found] <20180618080608.851973560@linuxfoundation.org>
  2018-06-18  8:13 ` [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI Greg Kroah-Hartman
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 237/279] x86/pkeys/selftests: Give better unexpected fault error messages Greg Kroah-Hartman
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Linus Torvalds,
	Peter Zijlstra, Thomas Gleixner, akpm, dave.hansen, linux-mm,
	linuxram, mpe, shakeelb, shuah, Ingo Molnar, Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Ingo Molnar <mingo@kernel.org>

[ Upstream commit 73bb4d6cd192b8629c5125aaada9892d9fc986b6 ]

Fix this warning:

  mpx-mini-test.c:422:0: warning: "SEGV_BNDERR" redefined

Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: akpm@linux-foundation.org
Cc: dave.hansen@intel.com
Cc: linux-mm@kvack.org
Cc: linuxram@us.ibm.com
Cc: mpe@ellerman.id.au
Cc: shakeelb@google.com
Cc: shuah@kernel.org
Link: http://lkml.kernel.org/r/20180514085908.GA12798@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/mpx-mini-test.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

--- a/tools/testing/selftests/x86/mpx-mini-test.c
+++ b/tools/testing/selftests/x86/mpx-mini-test.c
@@ -368,6 +368,11 @@ static int expected_bnd_index = -1;
 uint64_t shadow_plb[NR_MPX_BOUNDS_REGISTERS][2]; /* shadow MPX bound registers */
 unsigned long shadow_map[NR_MPX_BOUNDS_REGISTERS];
 
+/* Failed address bound checks: */
+#ifndef SEGV_BNDERR
+# define SEGV_BNDERR	3
+#endif
+
 /*
  * The kernel is supposed to provide some information about the bounds
  * exception in the siginfo.  It should match what we have in the bounds
@@ -419,8 +424,6 @@ void handler(int signum, siginfo_t *si,
 		br_count++;
 		dprintf1("#BR 0x%jx (total seen: %d)\n", status, br_count);
 
-#define SEGV_BNDERR     3  /* failed address bound checks */
-
 		dprintf2("Saw a #BR! status 0x%jx at %016lx br_reason: %jx\n",
 				status, ip, br_reason);
 		dprintf2("si_signo: %d\n", si->si_signo);

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 4.16 237/279] x86/pkeys/selftests: Give better unexpected fault error messages
       [not found] <20180618080608.851973560@linuxfoundation.org>
  2018-06-18  8:13 ` [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 235/279] x86/mpx/selftests: Adjust the self-test to fresh distros that export the MPX ABI Greg Kroah-Hartman
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 238/279] x86/pkeys/selftests: Stop using assert() Greg Kroah-Hartman
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Andrew Morton,
	Dave Hansen, Linus Torvalds, Michael Ellermen, Peter Zijlstra,
	Ram Pai, Shuah Khan, Thomas Gleixner, linux-mm, Ingo Molnar,
	Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Hansen <dave.hansen@linux.intel.com>

[ Upstream commit 55556b0b2016806b2e16a20b62d143383983a34a ]

do_not_expect_pk_fault() is a helper that we call when we do not expect
a PK fault to have occurred.  But, it is a function, which means that
it obscures the line numbers from pkey_assert().  It also gives no
details.

Replace it with an implementation that gives nice line numbers and
also lets callers pass in a more descriptive message about what
happened that caused the unexpected fault.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellermen <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20180509171338.55D13B64@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/protection_keys.c |   13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

--- a/tools/testing/selftests/x86/protection_keys.c
+++ b/tools/testing/selftests/x86/protection_keys.c
@@ -954,10 +954,11 @@ void expected_pk_fault(int pkey)
 	last_si_pkey = -1;
 }
 
-void do_not_expect_pk_fault(void)
-{
-	pkey_assert(last_pkru_faults == pkru_faults);
-}
+#define do_not_expect_pk_fault(msg)	do {			\
+	if (last_pkru_faults != pkru_faults)			\
+		dprintf0("unexpected PK fault: %s\n", msg);	\
+	pkey_assert(last_pkru_faults == pkru_faults);		\
+} while (0)
 
 int test_fds[10] = { -1 };
 int nr_test_fds;
@@ -1243,7 +1244,7 @@ void test_ptrace_of_child(int *ptr, u16
 	pkey_assert(ret != -1);
 	/* Now access from the current task, and expect NO exception: */
 	peek_result = read_ptr(plain_ptr);
-	do_not_expect_pk_fault();
+	do_not_expect_pk_fault("read plain pointer after ptrace");
 
 	ret = ptrace(PTRACE_DETACH, child_pid, ignored, 0);
 	pkey_assert(ret != -1);
@@ -1287,7 +1288,7 @@ void test_executing_on_unreadable_memory
 	 */
 	madvise(p1, PAGE_SIZE, MADV_DONTNEED);
 	lots_o_noops_around_write(&scratch);
-	do_not_expect_pk_fault();
+	do_not_expect_pk_fault("executing on PROT_EXEC memory");
 	ptr_contents = read_ptr(p1);
 	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
 	expected_pk_fault(pkey);

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 4.16 238/279] x86/pkeys/selftests: Stop using assert()
       [not found] <20180618080608.851973560@linuxfoundation.org>
                   ` (2 preceding siblings ...)
  2018-06-18  8:13 ` [PATCH 4.16 237/279] x86/pkeys/selftests: Give better unexpected fault error messages Greg Kroah-Hartman
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 239/279] x86/pkeys/selftests: Remove dead debugging code, fix dprint_in_signal Greg Kroah-Hartman
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Andrew Morton,
	Dave Hansen, Linus Torvalds, Michael Ellermen, Peter Zijlstra,
	Ram Pai, Shuah Khan, Thomas Gleixner, linux-mm, Ingo Molnar,
	Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Hansen <dave.hansen@linux.intel.com>

[ Upstream commit 86b9eea230edf4c67d4d4a70fba9b74505867a25 ]

If we use assert(), the program "crashes".  That can be scary to users,
so stop doing it.  Just exit with a >0 exit code instead.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellermen <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20180509171340.E63EF7DA@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/protection_keys.c |   12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

--- a/tools/testing/selftests/x86/protection_keys.c
+++ b/tools/testing/selftests/x86/protection_keys.c
@@ -72,10 +72,9 @@ extern void abort_hooks(void);
 				test_nr, iteration_nr);	\
 		dprintf0("errno at assert: %d", errno);	\
 		abort_hooks();			\
-		assert(condition);		\
+		exit(__LINE__);			\
 	}					\
 } while (0)
-#define raw_assert(cond) assert(cond)
 
 void cat_into_file(char *str, char *file)
 {
@@ -87,12 +86,17 @@ void cat_into_file(char *str, char *file
 	 * these need to be raw because they are called under
 	 * pkey_assert()
 	 */
-	raw_assert(fd >= 0);
+	if (fd < 0) {
+		fprintf(stderr, "error opening '%s'\n", str);
+		perror("error: ");
+		exit(__LINE__);
+	}
+
 	ret = write(fd, str, strlen(str));
 	if (ret != strlen(str)) {
 		perror("write to file failed");
 		fprintf(stderr, "filename: '%s' str: '%s'\n", file, str);
-		raw_assert(0);
+		exit(__LINE__);
 	}
 	close(fd);
 }

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 4.16 239/279] x86/pkeys/selftests: Remove dead debugging code, fix dprint_in_signal
       [not found] <20180618080608.851973560@linuxfoundation.org>
                   ` (3 preceding siblings ...)
  2018-06-18  8:13 ` [PATCH 4.16 238/279] x86/pkeys/selftests: Stop using assert() Greg Kroah-Hartman
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 240/279] x86/pkeys/selftests: Avoid printf-in-signal deadlocks Greg Kroah-Hartman
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Andrew Morton,
	Dave Hansen, Linus Torvalds, Michael Ellermen, Peter Zijlstra,
	Ram Pai, Shuah Khan, Thomas Gleixner, linux-mm, Ingo Molnar,
	Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Hansen <dave.hansen@linux.intel.com>

[ Upstream commit a50093d60464dd51d1ae0c2267b0abe9e1de77f3 ]

There is some noisy debug code at the end of the signal handler.  It was
disabled by an early, unconditional "return".  However, that return also
hid a dprint_in_signal=0, which kept dprint_in_signal=1 and effectively
locked us into permanent dprint_in_signal=1 behavior.

Remove the return and the dead code, fixing dprint_in_signal.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellermen <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20180509171342.846B9B2E@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/protection_keys.c |   16 ----------------
 1 file changed, 16 deletions(-)

--- a/tools/testing/selftests/x86/protection_keys.c
+++ b/tools/testing/selftests/x86/protection_keys.c
@@ -325,22 +325,6 @@ void signal_handler(int signum, siginfo_
 	dprintf1("WARNING: set PRKU=0 to allow faulting instruction to continue\n");
 	pkru_faults++;
 	dprintf1("<<<<==================================================\n");
-	return;
-	if (trapno == 14) {
-		fprintf(stderr,
-			"ERROR: In signal handler, page fault, trapno = %d, ip = %016lx\n",
-			trapno, ip);
-		fprintf(stderr, "si_addr %p\n", si->si_addr);
-		fprintf(stderr, "REG_ERR: %lx\n",
-				(unsigned long)uctxt->uc_mcontext.gregs[REG_ERR]);
-		exit(1);
-	} else {
-		fprintf(stderr, "unexpected trap %d! at 0x%lx\n", trapno, ip);
-		fprintf(stderr, "si_addr %p\n", si->si_addr);
-		fprintf(stderr, "REG_ERR: %lx\n",
-				(unsigned long)uctxt->uc_mcontext.gregs[REG_ERR]);
-		exit(2);
-	}
 	dprint_in_signal = 0;
 }
 

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 4.16 240/279] x86/pkeys/selftests: Avoid printf-in-signal deadlocks
       [not found] <20180618080608.851973560@linuxfoundation.org>
                   ` (4 preceding siblings ...)
  2018-06-18  8:13 ` [PATCH 4.16 239/279] x86/pkeys/selftests: Remove dead debugging code, fix dprint_in_signal Greg Kroah-Hartman
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 241/279] x86/pkeys/selftests: Allow faults on unknown keys Greg Kroah-Hartman
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Andrew Morton,
	Dave Hansen, Linus Torvalds, Michael Ellermen, Peter Zijlstra,
	Ram Pai, Shuah Khan, Thomas Gleixner, linux-mm, Ingo Molnar,
	Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Hansen <dave.hansen@linux.intel.com>

[ Upstream commit caf9eb6b4c82fc6cbd03697052ff22d97b0c377b ]

printf() and friends are unusable in signal handlers.  They deadlock.
The pkey selftest does not do any normal printing in signal handlers,
only extra debugging.  So, just print the format string so we get
*some* output when debugging.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellermen <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20180509171344.C53FD2F3@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/pkey-helpers.h |   20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

--- a/tools/testing/selftests/x86/pkey-helpers.h
+++ b/tools/testing/selftests/x86/pkey-helpers.h
@@ -26,30 +26,26 @@ static inline void sigsafe_printf(const
 {
 	va_list ap;
 
-	va_start(ap, format);
 	if (!dprint_in_signal) {
+		va_start(ap, format);
 		vprintf(format, ap);
+		va_end(ap);
 	} else {
 		int ret;
-		int len = vsnprintf(dprint_in_signal_buffer,
-				    DPRINT_IN_SIGNAL_BUF_SIZE,
-				    format, ap);
 		/*
-		 * len is amount that would have been printed,
-		 * but actual write is truncated at BUF_SIZE.
+		 * No printf() functions are signal-safe.
+		 * They deadlock easily. Write the format
+		 * string to get some output, even if
+		 * incomplete.
 		 */
-		if (len > DPRINT_IN_SIGNAL_BUF_SIZE)
-			len = DPRINT_IN_SIGNAL_BUF_SIZE;
-		ret = write(1, dprint_in_signal_buffer, len);
+		ret = write(1, format, strlen(format));
 		if (ret < 0)
-			abort();
+			exit(1);
 	}
-	va_end(ap);
 }
 #define dprintf_level(level, args...) do {	\
 	if (level <= DEBUG_LEVEL)		\
 		sigsafe_printf(args);		\
-	fflush(NULL);				\
 } while (0)
 #define dprintf0(args...) dprintf_level(0, args)
 #define dprintf1(args...) dprintf_level(1, args)

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 4.16 241/279] x86/pkeys/selftests: Allow faults on unknown keys
       [not found] <20180618080608.851973560@linuxfoundation.org>
                   ` (5 preceding siblings ...)
  2018-06-18  8:13 ` [PATCH 4.16 240/279] x86/pkeys/selftests: Avoid printf-in-signal deadlocks Greg Kroah-Hartman
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 242/279] x86/pkeys/selftests: Factor out "instruction page" Greg Kroah-Hartman
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Andrew Morton,
	Dave Hansen, Linus Torvalds, Michael Ellermen, Peter Zijlstra,
	Ram Pai, Shuah Khan, Thomas Gleixner, linux-mm, Ingo Molnar,
	Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Hansen <dave.hansen@linux.intel.com>

[ Upstream commit 7e7fd67ca39335a49619729821efb7cbdd674eb0 ]

The exec-only pkey is allocated inside the kernel and userspace
is not told what it is.  So, allow PK faults to occur that have
an unknown key.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellermen <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20180509171345.7FC7DA00@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/protection_keys.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

--- a/tools/testing/selftests/x86/protection_keys.c
+++ b/tools/testing/selftests/x86/protection_keys.c
@@ -921,13 +921,21 @@ void *malloc_pkey(long size, int prot, u
 }
 
 int last_pkru_faults;
+#define UNKNOWN_PKEY -2
 void expected_pk_fault(int pkey)
 {
 	dprintf2("%s(): last_pkru_faults: %d pkru_faults: %d\n",
 			__func__, last_pkru_faults, pkru_faults);
 	dprintf2("%s(%d): last_si_pkey: %d\n", __func__, pkey, last_si_pkey);
 	pkey_assert(last_pkru_faults + 1 == pkru_faults);
-	pkey_assert(last_si_pkey == pkey);
+
+       /*
+	* For exec-only memory, we do not know the pkey in
+	* advance, so skip this check.
+	*/
+	if (pkey != UNKNOWN_PKEY)
+		pkey_assert(last_si_pkey == pkey);
+
 	/*
 	 * The signal handler shold have cleared out PKRU to let the
 	 * test program continue.  We now have to restore it.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 4.16 242/279] x86/pkeys/selftests: Factor out "instruction page"
       [not found] <20180618080608.851973560@linuxfoundation.org>
                   ` (6 preceding siblings ...)
  2018-06-18  8:13 ` [PATCH 4.16 241/279] x86/pkeys/selftests: Allow faults on unknown keys Greg Kroah-Hartman
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 243/279] x86/pkeys/selftests: Add PROT_EXEC test Greg Kroah-Hartman
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Andrew Morton,
	Dave Hansen, Linus Torvalds, Michael Ellermen, Peter Zijlstra,
	Ram Pai, Shuah Khan, Thomas Gleixner, linux-mm, Ingo Molnar,
	Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Hansen <dave.hansen@linux.intel.com>

[ Upstream commit 3fcd2b2d928904cbf30b01e2c5e4f1dd2f9ab262 ]

We currently have an execute-only test, but it is for
the explicit mprotect_pkey() interface.  We will soon
add a test for the implicit mprotect(PROT_EXEC)
enterface.  We need this code in both tests.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellermen <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20180509171347.C64AB733@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/protection_keys.c |   21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

--- a/tools/testing/selftests/x86/protection_keys.c
+++ b/tools/testing/selftests/x86/protection_keys.c
@@ -1253,12 +1253,9 @@ void test_ptrace_of_child(int *ptr, u16
 	free(plain_ptr_unaligned);
 }
 
-void test_executing_on_unreadable_memory(int *ptr, u16 pkey)
+void *get_pointer_to_instructions(void)
 {
 	void *p1;
-	int scratch;
-	int ptr_contents;
-	int ret;
 
 	p1 = ALIGN_PTR_UP(&lots_o_noops_around_write, PAGE_SIZE);
 	dprintf3("&lots_o_noops: %p\n", &lots_o_noops_around_write);
@@ -1268,7 +1265,23 @@ void test_executing_on_unreadable_memory
 	/* Point 'p1' at the *second* page of the function: */
 	p1 += PAGE_SIZE;
 
+	/*
+	 * Try to ensure we fault this in on next touch to ensure
+	 * we get an instruction fault as opposed to a data one
+	 */
 	madvise(p1, PAGE_SIZE, MADV_DONTNEED);
+
+	return p1;
+}
+
+void test_executing_on_unreadable_memory(int *ptr, u16 pkey)
+{
+	void *p1;
+	int scratch;
+	int ptr_contents;
+	int ret;
+
+	p1 = get_pointer_to_instructions();
 	lots_o_noops_around_write(&scratch);
 	ptr_contents = read_ptr(p1);
 	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 4.16 243/279] x86/pkeys/selftests: Add PROT_EXEC test
       [not found] <20180618080608.851973560@linuxfoundation.org>
                   ` (7 preceding siblings ...)
  2018-06-18  8:13 ` [PATCH 4.16 242/279] x86/pkeys/selftests: Factor out "instruction page" Greg Kroah-Hartman
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 244/279] x86/pkeys/selftests: Fix pkey exhaustion test off-by-one Greg Kroah-Hartman
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Andrew Morton,
	Dave Hansen, Linus Torvalds, Michael Ellermen, Peter Zijlstra,
	Ram Pai, Shuah Khan, Thomas Gleixner, linux-mm, Ingo Molnar,
	Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Hansen <dave.hansen@linux.intel.com>

[ Upstream commit 6af17cf89e99b64cf1f660bf848755442ab2f047 ]

Under the covers, implement executable-only memory with
protection keys when userspace calls mprotect(PROT_EXEC).

But, we did not have a selftest for that.  Now we do.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellermen <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20180509171348.9EEE4BEF@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/protection_keys.c |   44 ++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

--- a/tools/testing/selftests/x86/protection_keys.c
+++ b/tools/testing/selftests/x86/protection_keys.c
@@ -1303,6 +1303,49 @@ void test_executing_on_unreadable_memory
 	expected_pk_fault(pkey);
 }
 
+void test_implicit_mprotect_exec_only_memory(int *ptr, u16 pkey)
+{
+	void *p1;
+	int scratch;
+	int ptr_contents;
+	int ret;
+
+	dprintf1("%s() start\n", __func__);
+
+	p1 = get_pointer_to_instructions();
+	lots_o_noops_around_write(&scratch);
+	ptr_contents = read_ptr(p1);
+	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
+
+	/* Use a *normal* mprotect(), not mprotect_pkey(): */
+	ret = mprotect(p1, PAGE_SIZE, PROT_EXEC);
+	pkey_assert(!ret);
+
+	dprintf2("pkru: %x\n", rdpkru());
+
+	/* Make sure this is an *instruction* fault */
+	madvise(p1, PAGE_SIZE, MADV_DONTNEED);
+	lots_o_noops_around_write(&scratch);
+	do_not_expect_pk_fault("executing on PROT_EXEC memory");
+	ptr_contents = read_ptr(p1);
+	dprintf2("ptr (%p) contents@%d: %x\n", p1, __LINE__, ptr_contents);
+	expected_pk_fault(UNKNOWN_PKEY);
+
+	/*
+	 * Put the memory back to non-PROT_EXEC.  Should clear the
+	 * exec-only pkey off the VMA and allow it to be readable
+	 * again.  Go to PROT_NONE first to check for a kernel bug
+	 * that did not clear the pkey when doing PROT_NONE.
+	 */
+	ret = mprotect(p1, PAGE_SIZE, PROT_NONE);
+	pkey_assert(!ret);
+
+	ret = mprotect(p1, PAGE_SIZE, PROT_READ|PROT_EXEC);
+	pkey_assert(!ret);
+	ptr_contents = read_ptr(p1);
+	do_not_expect_pk_fault("plain read on recently PROT_EXEC area");
+}
+
 void test_mprotect_pkey_on_unsupported_cpu(int *ptr, u16 pkey)
 {
 	int size = PAGE_SIZE;
@@ -1327,6 +1370,7 @@ void (*pkey_tests[])(int *ptr, u16 pkey)
 	test_kernel_gup_of_access_disabled_region,
 	test_kernel_gup_write_to_write_disabled_region,
 	test_executing_on_unreadable_memory,
+	test_implicit_mprotect_exec_only_memory,
 	test_ptrace_of_child,
 	test_pkey_syscalls_on_non_allocated_pkey,
 	test_pkey_syscalls_bad_args,

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 4.16 244/279] x86/pkeys/selftests: Fix pkey exhaustion test off-by-one
       [not found] <20180618080608.851973560@linuxfoundation.org>
                   ` (8 preceding siblings ...)
  2018-06-18  8:13 ` [PATCH 4.16 243/279] x86/pkeys/selftests: Add PROT_EXEC test Greg Kroah-Hartman
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 245/279] x86/pkeys/selftests: Fix pointer math Greg Kroah-Hartman
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Andrew Morton,
	Dave Hansen, Linus Torvalds, Michael Ellermen, Peter Zijlstra,
	Ram Pai, Shuah Khan, Thomas Gleixner, linux-mm, Ingo Molnar,
	Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Hansen <dave.hansen@linux.intel.com>

[ Upstream commit f50b4878329ab61d8e05796f655adeb6f5fb57c6 ]

In our "exhaust all pkeys" test, we make sure that there
is the expected number available.  Turns out that the
test did not cover the execute-only key, but discussed
it anyway.  It did *not* discuss the test-allocated
key.

Now that we have a test for the mprotect(PROT_EXEC) case,
this off-by-one issue showed itself.  Correct the off-by-
one and add the explanation for the case we missed.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellermen <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20180509171350.E1656B95@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/protection_keys.c |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

--- a/tools/testing/selftests/x86/protection_keys.c
+++ b/tools/testing/selftests/x86/protection_keys.c
@@ -1163,12 +1163,15 @@ void test_pkey_alloc_exhaust(int *ptr, u
 	pkey_assert(i < NR_PKEYS*2);
 
 	/*
-	 * There are 16 pkeys supported in hardware.  One is taken
-	 * up for the default (0) and another can be taken up by
-	 * an execute-only mapping.  Ensure that we can allocate
-	 * at least 14 (16-2).
+	 * There are 16 pkeys supported in hardware.  Three are
+	 * allocated by the time we get here:
+	 *   1. The default key (0)
+	 *   2. One possibly consumed by an execute-only mapping.
+	 *   3. One allocated by the test code and passed in via
+	 *      'pkey' to this function.
+	 * Ensure that we can allocate at least another 13 (16-3).
 	 */
-	pkey_assert(i >= NR_PKEYS-2);
+	pkey_assert(i >= NR_PKEYS-3);
 
 	for (i = 0; i < nr_allocated_pkeys; i++) {
 		err = sys_pkey_free(allocated_pkeys[i]);

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 4.16 245/279] x86/pkeys/selftests: Fix pointer math
       [not found] <20180618080608.851973560@linuxfoundation.org>
                   ` (9 preceding siblings ...)
  2018-06-18  8:13 ` [PATCH 4.16 244/279] x86/pkeys/selftests: Fix pkey exhaustion test off-by-one Greg Kroah-Hartman
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 246/279] x86/pkeys/selftests: Save off prot for allocations Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 247/279] x86/pkeys/selftests: Add a test for pkey 0 Greg Kroah-Hartman
  12 siblings, 0 replies; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Andrew Morton,
	Dave Hansen, Linus Torvalds, Michael Ellermen, Peter Zijlstra,
	Ram Pai, Shuah Khan, Thomas Gleixner, linux-mm, Ingo Molnar,
	Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Hansen <dave.hansen@linux.intel.com>

[ Upstream commit 3d64f4ed15c3c53dba4c514bf59c334464dee373 ]

We dump out the entire area of the siginfo where the si_pkey_ptr is
supposed to be.  But, we do some math on the poitner, which is a u32.
We intended to do byte math, not u32 math on the pointer.

Cast it over to a u8* so it works.

Also, move this block of code to below th si_code check.  It doesn't
hurt anything, but the si_pkey field is gibberish for other signal
types.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellermen <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20180509171352.9BE09819@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/protection_keys.c |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

--- a/tools/testing/selftests/x86/protection_keys.c
+++ b/tools/testing/selftests/x86/protection_keys.c
@@ -303,13 +303,6 @@ void signal_handler(int signum, siginfo_
 		dump_mem(pkru_ptr - 128, 256);
 	pkey_assert(*pkru_ptr);
 
-	si_pkey_ptr = (u32 *)(((u8 *)si) + si_pkey_offset);
-	dprintf1("si_pkey_ptr: %p\n", si_pkey_ptr);
-	dump_mem(si_pkey_ptr - 8, 24);
-	siginfo_pkey = *si_pkey_ptr;
-	pkey_assert(siginfo_pkey < NR_PKEYS);
-	last_si_pkey = siginfo_pkey;
-
 	if ((si->si_code == SEGV_MAPERR) ||
 	    (si->si_code == SEGV_ACCERR) ||
 	    (si->si_code == SEGV_BNDERR)) {
@@ -317,6 +310,13 @@ void signal_handler(int signum, siginfo_
 		exit(4);
 	}
 
+	si_pkey_ptr = (u32 *)(((u8 *)si) + si_pkey_offset);
+	dprintf1("si_pkey_ptr: %p\n", si_pkey_ptr);
+	dump_mem((u8 *)si_pkey_ptr - 8, 24);
+	siginfo_pkey = *si_pkey_ptr;
+	pkey_assert(siginfo_pkey < NR_PKEYS);
+	last_si_pkey = siginfo_pkey;
+
 	dprintf1("signal pkru from xsave: %08x\n", *pkru_ptr);
 	/* need __rdpkru() version so we do not do shadow_pkru checking */
 	dprintf1("signal pkru from  pkru: %08x\n", __rdpkru());

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 4.16 246/279] x86/pkeys/selftests: Save off prot for allocations
       [not found] <20180618080608.851973560@linuxfoundation.org>
                   ` (10 preceding siblings ...)
  2018-06-18  8:13 ` [PATCH 4.16 245/279] x86/pkeys/selftests: Fix pointer math Greg Kroah-Hartman
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  2018-06-18  8:13 ` [PATCH 4.16 247/279] x86/pkeys/selftests: Add a test for pkey 0 Greg Kroah-Hartman
  12 siblings, 0 replies; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Andrew Morton,
	Dave Hansen, Linus Torvalds, Michael Ellermen, Peter Zijlstra,
	Ram Pai, Shuah Khan, Thomas Gleixner, linux-mm, Ingo Molnar,
	Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Hansen <dave.hansen@linux.intel.com>

[ Upstream commit acb25d761d6f2f64e785ccefc71e54f244f1eda4 ]

This makes it possible to to tell what 'prot' a given allocation
is supposed to have.  That way, if we want to change just the
pkey, we know what 'prot' to pass to mprotect_pkey().

Also, keep a record of the most recent allocation so the tests
can easily find it.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellermen <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20180509171354.AA23E228@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/protection_keys.c |   14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

--- a/tools/testing/selftests/x86/protection_keys.c
+++ b/tools/testing/selftests/x86/protection_keys.c
@@ -677,10 +677,12 @@ int mprotect_pkey(void *ptr, size_t size
 struct pkey_malloc_record {
 	void *ptr;
 	long size;
+	int prot;
 };
 struct pkey_malloc_record *pkey_malloc_records;
+struct pkey_malloc_record *pkey_last_malloc_record;
 long nr_pkey_malloc_records;
-void record_pkey_malloc(void *ptr, long size)
+void record_pkey_malloc(void *ptr, long size, int prot)
 {
 	long i;
 	struct pkey_malloc_record *rec = NULL;
@@ -712,6 +714,8 @@ void record_pkey_malloc(void *ptr, long
 		(int)(rec - pkey_malloc_records), rec, ptr, size);
 	rec->ptr = ptr;
 	rec->size = size;
+	rec->prot = prot;
+	pkey_last_malloc_record = rec;
 	nr_pkey_malloc_records++;
 }
 
@@ -756,7 +760,7 @@ void *malloc_pkey_with_mprotect(long siz
 	pkey_assert(ptr != (void *)-1);
 	ret = mprotect_pkey((void *)ptr, PAGE_SIZE, prot, pkey);
 	pkey_assert(!ret);
-	record_pkey_malloc(ptr, size);
+	record_pkey_malloc(ptr, size, prot);
 	rdpkru();
 
 	dprintf1("%s() for pkey %d @ %p\n", __func__, pkey, ptr);
@@ -777,7 +781,7 @@ void *malloc_pkey_anon_huge(long size, i
 	size = ALIGN_UP(size, HPAGE_SIZE * 2);
 	ptr = mmap(NULL, size, PROT_NONE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
 	pkey_assert(ptr != (void *)-1);
-	record_pkey_malloc(ptr, size);
+	record_pkey_malloc(ptr, size, prot);
 	mprotect_pkey(ptr, size, prot, pkey);
 
 	dprintf1("unaligned ptr: %p\n", ptr);
@@ -850,7 +854,7 @@ void *malloc_pkey_hugetlb(long size, int
 	pkey_assert(ptr != (void *)-1);
 	mprotect_pkey(ptr, size, prot, pkey);
 
-	record_pkey_malloc(ptr, size);
+	record_pkey_malloc(ptr, size, prot);
 
 	dprintf1("mmap()'d hugetlbfs for pkey %d @ %p\n", pkey, ptr);
 	return ptr;
@@ -872,7 +876,7 @@ void *malloc_pkey_mmap_dax(long size, in
 
 	mprotect_pkey(ptr, size, prot, pkey);
 
-	record_pkey_malloc(ptr, size);
+	record_pkey_malloc(ptr, size, prot);
 
 	dprintf1("mmap()'d for pkey %d @ %p\n", pkey, ptr);
 	close(fd);

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 4.16 247/279] x86/pkeys/selftests: Add a test for pkey 0
       [not found] <20180618080608.851973560@linuxfoundation.org>
                   ` (11 preceding siblings ...)
  2018-06-18  8:13 ` [PATCH 4.16 246/279] x86/pkeys/selftests: Save off prot for allocations Greg Kroah-Hartman
@ 2018-06-18  8:13 ` Greg Kroah-Hartman
  12 siblings, 0 replies; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-06-18  8:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Greg Kroah-Hartman, stable, Dave Hansen, Andrew Morton,
	Dave Hansen, Linus Torvalds, Michael Ellermen, Peter Zijlstra,
	Ram Pai, Shuah Khan, Thomas Gleixner, linux-mm, Ingo Molnar,
	Sasha Levin

4.16-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Hansen <dave.hansen@linux.intel.com>

[ Upstream commit 3488a600d90bcaf061b104dbcfbdc8d99b398312 ]

Protection key 0 is the default key for all memory and will
not normally come back from pkey_alloc().  But, you might
still want pass it to mprotect_pkey().

This check ensures that you can use pkey 0.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellermen <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20180509171356.9E40B254@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 tools/testing/selftests/x86/protection_keys.c |   30 ++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

--- a/tools/testing/selftests/x86/protection_keys.c
+++ b/tools/testing/selftests/x86/protection_keys.c
@@ -1184,6 +1184,35 @@ void test_pkey_alloc_exhaust(int *ptr, u
 	}
 }
 
+/*
+ * pkey 0 is special.  It is allocated by default, so you do not
+ * have to call pkey_alloc() to use it first.  Make sure that it
+ * is usable.
+ */
+void test_mprotect_with_pkey_0(int *ptr, u16 pkey)
+{
+	long size;
+	int prot;
+
+	assert(pkey_last_malloc_record);
+	size = pkey_last_malloc_record->size;
+	/*
+	 * This is a bit of a hack.  But mprotect() requires
+	 * huge-page-aligned sizes when operating on hugetlbfs.
+	 * So, make sure that we use something that's a multiple
+	 * of a huge page when we can.
+	 */
+	if (size >= HPAGE_SIZE)
+		size = HPAGE_SIZE;
+	prot = pkey_last_malloc_record->prot;
+
+	/* Use pkey 0 */
+	mprotect_pkey(ptr, size, prot, 0);
+
+	/* Make sure that we can set it back to the original pkey. */
+	mprotect_pkey(ptr, size, prot, pkey);
+}
+
 void test_ptrace_of_child(int *ptr, u16 pkey)
 {
 	__attribute__((__unused__)) int peek_result;
@@ -1378,6 +1407,7 @@ void (*pkey_tests[])(int *ptr, u16 pkey)
 	test_kernel_gup_write_to_write_disabled_region,
 	test_executing_on_unreadable_memory,
 	test_implicit_mprotect_exec_only_memory,
+	test_mprotect_with_pkey_0,
 	test_ptrace_of_child,
 	test_pkey_syscalls_on_non_allocated_pkey,
 	test_pkey_syscalls_bad_args,

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI
  2018-06-18  8:13 ` [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI Greg Kroah-Hartman
@ 2018-07-03 11:36   ` Vlastimil Babka
  2018-07-03 11:42     ` Greg Kroah-Hartman
  0 siblings, 1 reply; 20+ messages in thread
From: Vlastimil Babka @ 2018-07-03 11:36 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel
  Cc: stable, Dave Hansen, Linus Torvalds, Peter Zijlstra,
	Thomas Gleixner, akpm, dave.hansen, linux-mm, linuxram, mpe,
	shakeelb, shuah, Ingo Molnar, Sasha Levin

On 06/18/2018 10:13 AM, Greg Kroah-Hartman wrote:
> 4.16-stable review patch.  If anyone has any objections, please let me know.

So I was wondering, why backport such a considerable number of
*selftests* to stable, given the stable policy? Surely selftests don't
affect the kernel itself breaking for users?

Thanks, Vlastimil

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI
  2018-07-03 11:36   ` Vlastimil Babka
@ 2018-07-03 11:42     ` Greg Kroah-Hartman
  2018-07-05  6:03       ` Michael Ellerman
  0 siblings, 1 reply; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-07-03 11:42 UTC (permalink / raw)
  To: Vlastimil Babka
  Cc: linux-kernel, stable, Dave Hansen, Linus Torvalds, Peter Zijlstra,
	Thomas Gleixner, akpm, dave.hansen, linux-mm, linuxram, mpe,
	shakeelb, shuah, Ingo Molnar, Sasha Levin

On Tue, Jul 03, 2018 at 01:36:43PM +0200, Vlastimil Babka wrote:
> On 06/18/2018 10:13 AM, Greg Kroah-Hartman wrote:
> > 4.16-stable review patch.  If anyone has any objections, please let me know.
> 
> So I was wondering, why backport such a considerable number of
> *selftests* to stable, given the stable policy? Surely selftests don't
> affect the kernel itself breaking for users?

These came in as part of Sasha's "backport fixes" tool.  It can't hurt
to add selftest fixes/updates to stable kernels, as for some people,
they only run the selftests for the specific kernel they are building.
While others run selftests for the latest kernel on older kernels, both
of which are valid ways of testing.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI
  2018-07-03 11:42     ` Greg Kroah-Hartman
@ 2018-07-05  6:03       ` Michael Ellerman
  2018-07-05  7:19         ` Ingo Molnar
  0 siblings, 1 reply; 20+ messages in thread
From: Michael Ellerman @ 2018-07-05  6:03 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Vlastimil Babka
  Cc: linux-kernel, stable, Dave Hansen, Linus Torvalds, Peter Zijlstra,
	Thomas Gleixner, akpm, dave.hansen, linux-mm, linuxram, shakeelb,
	shuah, Ingo Molnar, Sasha Levin

Greg Kroah-Hartman <gregkh@linuxfoundation.org> writes:

> On Tue, Jul 03, 2018 at 01:36:43PM +0200, Vlastimil Babka wrote:
>> On 06/18/2018 10:13 AM, Greg Kroah-Hartman wrote:
>> > 4.16-stable review patch.  If anyone has any objections, please let me know.
>> 
>> So I was wondering, why backport such a considerable number of
>> *selftests* to stable, given the stable policy? Surely selftests don't
>> affect the kernel itself breaking for users?
>
> These came in as part of Sasha's "backport fixes" tool.  It can't hurt
> to add selftest fixes/updates to stable kernels, as for some people,
> they only run the selftests for the specific kernel they are building.
> While others run selftests for the latest kernel on older kernels, both
> of which are valid ways of testing.

I don't have a problem with these sort of patches being backported, but
it seems like Documentation/process/stable-kernel-rules.txt could use an
update?

I honestly don't know what the rules are anymore.

cheers

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI
  2018-07-05  6:03       ` Michael Ellerman
@ 2018-07-05  7:19         ` Ingo Molnar
  2018-07-08 10:33           ` Michael Ellerman
  0 siblings, 1 reply; 20+ messages in thread
From: Ingo Molnar @ 2018-07-05  7:19 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Greg Kroah-Hartman, Vlastimil Babka, linux-kernel, stable,
	Dave Hansen, Linus Torvalds, Peter Zijlstra, Thomas Gleixner,
	akpm, dave.hansen, linux-mm, linuxram, shakeelb, shuah,
	Sasha Levin


* Michael Ellerman <mpe@ellerman.id.au> wrote:

> Greg Kroah-Hartman <gregkh@linuxfoundation.org> writes:
> 
> > On Tue, Jul 03, 2018 at 01:36:43PM +0200, Vlastimil Babka wrote:
> >> On 06/18/2018 10:13 AM, Greg Kroah-Hartman wrote:
> >> > 4.16-stable review patch.  If anyone has any objections, please let me know.
> >> 
> >> So I was wondering, why backport such a considerable number of
> >> *selftests* to stable, given the stable policy? Surely selftests don't
> >> affect the kernel itself breaking for users?
> >
> > These came in as part of Sasha's "backport fixes" tool.  It can't hurt
> > to add selftest fixes/updates to stable kernels, as for some people,
> > they only run the selftests for the specific kernel they are building.
> > While others run selftests for the latest kernel on older kernels, both
> > of which are valid ways of testing.
> 
> I don't have a problem with these sort of patches being backported, but
> it seems like Documentation/process/stable-kernel-rules.txt could use an
> update?
> 
> I honestly don't know what the rules are anymore.

Self-tests are standalone tooling which help the testing of the kernel, and it 
makes sense to either update all of them, or none of them.

Here it makes sense to update all of them, because if a self-test on a stable 
kernel shows a failure then a fix is probably missing from -stable, right?

Also note that self-test tooling *cannot possibly break the kernel*, because they 
are not used in the kernel build process, so the normally conservative backporting 
rules do not apply.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI
  2018-07-05  7:19         ` Ingo Molnar
@ 2018-07-08 10:33           ` Michael Ellerman
  2018-07-08 13:25             ` Greg Kroah-Hartman
  0 siblings, 1 reply; 20+ messages in thread
From: Michael Ellerman @ 2018-07-08 10:33 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Greg Kroah-Hartman, Vlastimil Babka, linux-kernel, stable,
	Dave Hansen, Linus Torvalds, Peter Zijlstra, Thomas Gleixner,
	akpm, dave.hansen, linux-mm, linuxram, shakeelb, shuah,
	Sasha Levin

Ingo Molnar <mingo@kernel.org> writes:
> * Michael Ellerman <mpe@ellerman.id.au> wrote:
>> Greg Kroah-Hartman <gregkh@linuxfoundation.org> writes:
>> > On Tue, Jul 03, 2018 at 01:36:43PM +0200, Vlastimil Babka wrote:
>> >> On 06/18/2018 10:13 AM, Greg Kroah-Hartman wrote:
>> >> > 4.16-stable review patch.  If anyone has any objections, please let me know.
>> >> 
>> >> So I was wondering, why backport such a considerable number of
>> >> *selftests* to stable, given the stable policy? Surely selftests don't
>> >> affect the kernel itself breaking for users?
>> >
>> > These came in as part of Sasha's "backport fixes" tool.  It can't hurt
>> > to add selftest fixes/updates to stable kernels, as for some people,
>> > they only run the selftests for the specific kernel they are building.
>> > While others run selftests for the latest kernel on older kernels, both
>> > of which are valid ways of testing.
>> 
>> I don't have a problem with these sort of patches being backported, but
>> it seems like Documentation/process/stable-kernel-rules.txt could use an
>> update?
>> 
>> I honestly don't know what the rules are anymore.
>
> Self-tests are standalone tooling which help the testing of the kernel, and it 
> makes sense to either update all of them, or none of them.

Yes I know what selftests are.

> Here it makes sense to update all of them, because if a self-test on a stable 
> kernel shows a failure then a fix is probably missing from -stable, right?

Usually, though it's not always that simple IME.

But sure, I don't have a problem with updating selftests, I said that before.

> Also note that self-test tooling *cannot possibly break the kernel*, because they 
> are not used in the kernel build process, so the normally conservative backporting 
> rules do not apply.

Right. So stable-kernel-rules.txt could use an update to mention that.


My comment was less about this actual patch and more about the new
reality of patches being backported to stable based on Sasha's tooling,
which seems to be much more liberal than anything we've done previously.

I don't generally have any objection to that process, though it possibly
could have been more widely announced. But, it would be good if
stable-kernel-rules.txt was updated to mention it.

I've had several people ask me "hey my patch got backported to stable
but I didn't ask for it - is that OK, what's going on?" etc.

I guess I should just send a patch to update it, but I don't really know
what it should say.

cheers

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI
  2018-07-08 10:33           ` Michael Ellerman
@ 2018-07-08 13:25             ` Greg Kroah-Hartman
  2018-07-09  3:28               ` Michael Ellerman
  0 siblings, 1 reply; 20+ messages in thread
From: Greg Kroah-Hartman @ 2018-07-08 13:25 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Ingo Molnar, Vlastimil Babka, linux-kernel, stable, Dave Hansen,
	Linus Torvalds, Peter Zijlstra, Thomas Gleixner, akpm,
	dave.hansen, linux-mm, linuxram, shakeelb, shuah, Sasha Levin

On Sun, Jul 08, 2018 at 08:33:37PM +1000, Michael Ellerman wrote:
> Ingo Molnar <mingo@kernel.org> writes:
> > * Michael Ellerman <mpe@ellerman.id.au> wrote:
> >> Greg Kroah-Hartman <gregkh@linuxfoundation.org> writes:
> >> > On Tue, Jul 03, 2018 at 01:36:43PM +0200, Vlastimil Babka wrote:
> >> >> On 06/18/2018 10:13 AM, Greg Kroah-Hartman wrote:
> >> >> > 4.16-stable review patch.  If anyone has any objections, please let me know.
> >> >> 
> >> >> So I was wondering, why backport such a considerable number of
> >> >> *selftests* to stable, given the stable policy? Surely selftests don't
> >> >> affect the kernel itself breaking for users?
> >> >
> >> > These came in as part of Sasha's "backport fixes" tool.  It can't hurt
> >> > to add selftest fixes/updates to stable kernels, as for some people,
> >> > they only run the selftests for the specific kernel they are building.
> >> > While others run selftests for the latest kernel on older kernels, both
> >> > of which are valid ways of testing.
> >> 
> >> I don't have a problem with these sort of patches being backported, but
> >> it seems like Documentation/process/stable-kernel-rules.txt could use an
> >> update?
> >> 
> >> I honestly don't know what the rules are anymore.
> >
> > Self-tests are standalone tooling which help the testing of the kernel, and it 
> > makes sense to either update all of them, or none of them.
> 
> Yes I know what selftests are.
> 
> > Here it makes sense to update all of them, because if a self-test on a stable 
> > kernel shows a failure then a fix is probably missing from -stable, right?
> 
> Usually, though it's not always that simple IME.
> 
> But sure, I don't have a problem with updating selftests, I said that before.
> 
> > Also note that self-test tooling *cannot possibly break the kernel*, because they 
> > are not used in the kernel build process, so the normally conservative backporting 
> > rules do not apply.
> 
> Right. So stable-kernel-rules.txt could use an update to mention that.
> 
> 
> My comment was less about this actual patch and more about the new
> reality of patches being backported to stable based on Sasha's tooling,
> which seems to be much more liberal than anything we've done previously.
> 
> I don't generally have any objection to that process, though it possibly
> could have been more widely announced. But, it would be good if
> stable-kernel-rules.txt was updated to mention it.
> 
> I've had several people ask me "hey my patch got backported to stable
> but I didn't ask for it - is that OK, what's going on?" etc.

Why didn't those people just ask us?  To not do so is very strange, it's
not like we are hard to find :)

> I guess I should just send a patch to update it, but I don't really know
> what it should say.

I don't think it really needs any changes, as the selftests is just a
corner case that is easily explained if anyone cares enough to actually
ask :)

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI
  2018-07-08 13:25             ` Greg Kroah-Hartman
@ 2018-07-09  3:28               ` Michael Ellerman
  0 siblings, 0 replies; 20+ messages in thread
From: Michael Ellerman @ 2018-07-09  3:28 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Ingo Molnar, Vlastimil Babka, linux-kernel, stable, Dave Hansen,
	Linus Torvalds, Peter Zijlstra, Thomas Gleixner, akpm,
	dave.hansen, linux-mm, linuxram, shakeelb, shuah, Sasha Levin

Greg Kroah-Hartman <gregkh@linuxfoundation.org> writes:
> On Sun, Jul 08, 2018 at 08:33:37PM +1000, Michael Ellerman wrote:
...
>> 
>> My comment was less about this actual patch and more about the new
>> reality of patches being backported to stable based on Sasha's tooling,
>> which seems to be much more liberal than anything we've done previously.
>> 
>> I don't generally have any objection to that process, though it possibly
>> could have been more widely announced. But, it would be good if
>> stable-kernel-rules.txt was updated to mention it.
>> 
>> I've had several people ask me "hey my patch got backported to stable
>> but I didn't ask for it - is that OK, what's going on?" etc.
>
> Why didn't those people just ask us?  To not do so is very strange, it's
> not like we are hard to find :)

It's not very strange, it's completely normal behaviour. People are
afraid of asking dumb questions in public, so they ask someone
privately.

And the general sentiment has been "I didn't think that patch met the
stable rules, but I'm happy for it to be backported".

>> I guess I should just send a patch to update it, but I don't really know
>> what it should say.
>
> I don't think it really needs any changes, as the selftests is just a
> corner case that is easily explained if anyone cares enough to actually
> ask :)

Yeah again I'm not really concerned about selftests, I should have
replied to a different patch to start this discussion. My bad.

cheers

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2018-07-09  3:28 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20180618080608.851973560@linuxfoundation.org>
2018-06-18  8:13 ` [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI Greg Kroah-Hartman
2018-07-03 11:36   ` Vlastimil Babka
2018-07-03 11:42     ` Greg Kroah-Hartman
2018-07-05  6:03       ` Michael Ellerman
2018-07-05  7:19         ` Ingo Molnar
2018-07-08 10:33           ` Michael Ellerman
2018-07-08 13:25             ` Greg Kroah-Hartman
2018-07-09  3:28               ` Michael Ellerman
2018-06-18  8:13 ` [PATCH 4.16 235/279] x86/mpx/selftests: Adjust the self-test to fresh distros that export the MPX ABI Greg Kroah-Hartman
2018-06-18  8:13 ` [PATCH 4.16 237/279] x86/pkeys/selftests: Give better unexpected fault error messages Greg Kroah-Hartman
2018-06-18  8:13 ` [PATCH 4.16 238/279] x86/pkeys/selftests: Stop using assert() Greg Kroah-Hartman
2018-06-18  8:13 ` [PATCH 4.16 239/279] x86/pkeys/selftests: Remove dead debugging code, fix dprint_in_signal Greg Kroah-Hartman
2018-06-18  8:13 ` [PATCH 4.16 240/279] x86/pkeys/selftests: Avoid printf-in-signal deadlocks Greg Kroah-Hartman
2018-06-18  8:13 ` [PATCH 4.16 241/279] x86/pkeys/selftests: Allow faults on unknown keys Greg Kroah-Hartman
2018-06-18  8:13 ` [PATCH 4.16 242/279] x86/pkeys/selftests: Factor out "instruction page" Greg Kroah-Hartman
2018-06-18  8:13 ` [PATCH 4.16 243/279] x86/pkeys/selftests: Add PROT_EXEC test Greg Kroah-Hartman
2018-06-18  8:13 ` [PATCH 4.16 244/279] x86/pkeys/selftests: Fix pkey exhaustion test off-by-one Greg Kroah-Hartman
2018-06-18  8:13 ` [PATCH 4.16 245/279] x86/pkeys/selftests: Fix pointer math Greg Kroah-Hartman
2018-06-18  8:13 ` [PATCH 4.16 246/279] x86/pkeys/selftests: Save off prot for allocations Greg Kroah-Hartman
2018-06-18  8:13 ` [PATCH 4.16 247/279] x86/pkeys/selftests: Add a test for pkey 0 Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).