All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] x86: do not skip PKRU register if debug registers are not used
@ 2016-09-10 18:30 Nicolas Iooss
  2016-09-12 16:49 ` Dave Hansen
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Nicolas Iooss @ 2016-09-10 18:30 UTC (permalink / raw)
  To: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86
  Cc: linux-kernel, Dave Hansen, Nicolas Iooss

When commit c0b17b5bd4b7 ("x86/mm/pkeys: Dump PKRU with other kernel
registers") made __show_regs() show PKRU, this register was only printed
if the debug registers were not in their default state (there is an
if(...) return; before).

Change the logic to report PKRU value even when debug registers are in
their default state.

Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
---
 arch/x86/kernel/process_64.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 63236d8f84bf..a21068e49dac 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -110,12 +110,13 @@ void __show_regs(struct pt_regs *regs, int all)
 	get_debugreg(d7, 7);
 
 	/* Only print out debug registers if they are in their non-default state. */
-	if ((d0 == 0) && (d1 == 0) && (d2 == 0) && (d3 == 0) &&
-	    (d6 == DR6_RESERVED) && (d7 == 0x400))
-		return;
-
-	printk(KERN_DEFAULT "DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2);
-	printk(KERN_DEFAULT "DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7);
+	if (!((d0 == 0) && (d1 == 0) && (d2 == 0) && (d3 == 0) &&
+	    (d6 == DR6_RESERVED) && (d7 == 0x400))) {
+		printk(KERN_DEFAULT "DR0: %016lx DR1: %016lx DR2: %016lx\n",
+		       d0, d1, d2);
+		printk(KERN_DEFAULT "DR3: %016lx DR6: %016lx DR7: %016lx\n",
+		       d3, d6, d7);
+	}
 
 	if (boot_cpu_has(X86_FEATURE_OSPKE))
 		printk(KERN_DEFAULT "PKRU: %08x\n", read_pkru());
-- 
2.9.3

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

* Re: [PATCH 1/1] x86: do not skip PKRU register if debug registers are not used
  2016-09-10 18:30 [PATCH 1/1] x86: do not skip PKRU register if debug registers are not used Nicolas Iooss
@ 2016-09-12 16:49 ` Dave Hansen
  2016-09-13 13:16 ` [tip:mm/pkeys] x86/mm/pkeys: Do " tip-bot for Nicolas Iooss
  2016-09-13 14:07 ` tip-bot for Nicolas Iooss
  2 siblings, 0 replies; 4+ messages in thread
From: Dave Hansen @ 2016-09-12 16:49 UTC (permalink / raw)
  To: Nicolas Iooss, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86
  Cc: linux-kernel

On 09/10/2016 11:30 AM, Nicolas Iooss wrote:
> When commit c0b17b5bd4b7 ("x86/mm/pkeys: Dump PKRU with other kernel
> registers") made __show_regs() show PKRU, this register was only printed
> if the debug registers were not in their default state (there is an
> if(...) return; before).
> 
> Change the logic to report PKRU value even when debug registers are in
> their default state.

Ahh, thanks for finding this.  This looks like the correct fix to me.

Acked-by: Dave Hansen <dave.hansen@linux.intel.com>

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

* [tip:mm/pkeys] x86/mm/pkeys: Do not skip PKRU register if debug registers are not used
  2016-09-10 18:30 [PATCH 1/1] x86: do not skip PKRU register if debug registers are not used Nicolas Iooss
  2016-09-12 16:49 ` Dave Hansen
@ 2016-09-13 13:16 ` tip-bot for Nicolas Iooss
  2016-09-13 14:07 ` tip-bot for Nicolas Iooss
  2 siblings, 0 replies; 4+ messages in thread
From: tip-bot for Nicolas Iooss @ 2016-09-13 13:16 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: dave.hansen, nicolas.iooss_linux, linux-kernel, hpa, tglx, mingo

Commit-ID:  19ab2b679c4af895ac0f3e79eea14952a6b2b2ce
Gitweb:     http://git.kernel.org/tip/19ab2b679c4af895ac0f3e79eea14952a6b2b2ce
Author:     Nicolas Iooss <nicolas.iooss_linux@m4x.org>
AuthorDate: Sat, 10 Sep 2016 20:30:45 +0200
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Tue, 13 Sep 2016 15:12:17 +0200

x86/mm/pkeys: Do not skip PKRU register if debug registers are not used

__show_regs() fails to dump the PKRU state when the debug registers are in
their default state because there is a return statement on the debug
register state.

Change the logic to report PKRU value even when debug registers are in
their default state.

[ tglx: Switch to pr_default() while at it ]

Fixes:c0b17b5bd4b7 ("x86/mm/pkeys: Dump PKRU with other kernel registers")
Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Link: http://lkml.kernel.org/r/20160910183045.4618-1-nicolas.iooss_linux@m4x.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 arch/x86/kernel/process_64.c | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 63236d8..130c4eb 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -95,12 +95,11 @@ void __show_regs(struct pt_regs *regs, int all)
 	cr3 = read_cr3();
 	cr4 = __read_cr4();
 
-	printk(KERN_DEFAULT "FS:  %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n",
-	       fs, fsindex, gs, gsindex, shadowgs);
-	printk(KERN_DEFAULT "CS:  %04x DS: %04x ES: %04x CR0: %016lx\n", cs, ds,
-			es, cr0);
-	printk(KERN_DEFAULT "CR2: %016lx CR3: %016lx CR4: %016lx\n", cr2, cr3,
-			cr4);
+	pr_default("FS:  %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n",
+		   fs, fsindex, gs, gsindex, shadowgs);
+	pr_default("CS:  %04x DS: %04x ES: %04x CR0: %016lx\n", cs, ds,
+		   es, cr0);
+	pr_default("CR2: %016lx CR3: %016lx CR4: %016lx\n", cr2, cr3, cr4);
 
 	get_debugreg(d0, 0);
 	get_debugreg(d1, 1);
@@ -110,15 +109,14 @@ void __show_regs(struct pt_regs *regs, int all)
 	get_debugreg(d7, 7);
 
 	/* Only print out debug registers if they are in their non-default state. */
-	if ((d0 == 0) && (d1 == 0) && (d2 == 0) && (d3 == 0) &&
-	    (d6 == DR6_RESERVED) && (d7 == 0x400))
-		return;
-
-	printk(KERN_DEFAULT "DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2);
-	printk(KERN_DEFAULT "DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7);
+	if (!((d0 == 0) && (d1 == 0) && (d2 == 0) && (d3 == 0) &&
+	    (d6 == DR6_RESERVED) && (d7 == 0x400))) {
+		pr_default("DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2);
+		pr_default("DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7);
+	}
 
 	if (boot_cpu_has(X86_FEATURE_OSPKE))
-		printk(KERN_DEFAULT "PKRU: %08x\n", read_pkru());
+		pr_default("PKRU: %08x\n", read_pkru());
 }
 
 void release_thread(struct task_struct *dead_task)

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

* [tip:mm/pkeys] x86/mm/pkeys: Do not skip PKRU register if debug registers are not used
  2016-09-10 18:30 [PATCH 1/1] x86: do not skip PKRU register if debug registers are not used Nicolas Iooss
  2016-09-12 16:49 ` Dave Hansen
  2016-09-13 13:16 ` [tip:mm/pkeys] x86/mm/pkeys: Do " tip-bot for Nicolas Iooss
@ 2016-09-13 14:07 ` tip-bot for Nicolas Iooss
  2 siblings, 0 replies; 4+ messages in thread
From: tip-bot for Nicolas Iooss @ 2016-09-13 14:07 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: mingo, tglx, linux-kernel, nicolas.iooss_linux, dave.hansen, hpa

Commit-ID:  ba6d018e3d2f6a0fad58a668cadf66b2d1f80f59
Gitweb:     http://git.kernel.org/tip/ba6d018e3d2f6a0fad58a668cadf66b2d1f80f59
Author:     Nicolas Iooss <nicolas.iooss_linux@m4x.org>
AuthorDate: Sat, 10 Sep 2016 20:30:45 +0200
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Tue, 13 Sep 2016 15:52:28 +0200

x86/mm/pkeys: Do not skip PKRU register if debug registers are not used

__show_regs() fails to dump the PKRU state when the debug registers are in
their default state because there is a return statement on the debug
register state.

Change the logic to report PKRU value even when debug registers are in
their default state.

Fixes:c0b17b5bd4b7 ("x86/mm/pkeys: Dump PKRU with other kernel registers")
Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Link: http://lkml.kernel.org/r/20160910183045.4618-1-nicolas.iooss_linux@m4x.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/x86/kernel/process_64.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 63236d8..a21068e 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -110,12 +110,13 @@ void __show_regs(struct pt_regs *regs, int all)
 	get_debugreg(d7, 7);
 
 	/* Only print out debug registers if they are in their non-default state. */
-	if ((d0 == 0) && (d1 == 0) && (d2 == 0) && (d3 == 0) &&
-	    (d6 == DR6_RESERVED) && (d7 == 0x400))
-		return;
-
-	printk(KERN_DEFAULT "DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2);
-	printk(KERN_DEFAULT "DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7);
+	if (!((d0 == 0) && (d1 == 0) && (d2 == 0) && (d3 == 0) &&
+	    (d6 == DR6_RESERVED) && (d7 == 0x400))) {
+		printk(KERN_DEFAULT "DR0: %016lx DR1: %016lx DR2: %016lx\n",
+		       d0, d1, d2);
+		printk(KERN_DEFAULT "DR3: %016lx DR6: %016lx DR7: %016lx\n",
+		       d3, d6, d7);
+	}
 
 	if (boot_cpu_has(X86_FEATURE_OSPKE))
 		printk(KERN_DEFAULT "PKRU: %08x\n", read_pkru());

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

end of thread, other threads:[~2016-09-13 14:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-10 18:30 [PATCH 1/1] x86: do not skip PKRU register if debug registers are not used Nicolas Iooss
2016-09-12 16:49 ` Dave Hansen
2016-09-13 13:16 ` [tip:mm/pkeys] x86/mm/pkeys: Do " tip-bot for Nicolas Iooss
2016-09-13 14:07 ` tip-bot for Nicolas Iooss

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.