[linux] 01/01: [ppc64el] Invalidate ERAT on powersave wakeup for POWER9

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Mon Sep 25 02:18:50 UTC 2017


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch stretch
in repository linux.

commit 1aa1695bc3e9fa9fbfd010222ec966ee606322f0
Author: Ben Hutchings <ben at decadent.org.uk>
Date:   Mon Sep 25 03:17:44 2017 +0100

    [ppc64el] Invalidate ERAT on powersave wakeup for POWER9
    
    Thanks to Michael Neuling for the backport.
    
    Closes: #868887
---
 debian/changelog                                   |  1 +
 ...idate-erat-on-powersave-wakeup-for-power9.patch | 35 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 3 files changed, 37 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index e75e616..818a75c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -125,6 +125,7 @@ linux (4.9.51-1) UNRELEASED; urgency=medium
     - IRQ balancing for PCI devices
     - support irq_set_affinity() in i8259 chip
     - Make enum loongson_cpu_type more clear
+  * [ppc64el] Invalidate ERAT on powersave wakeup for POWER9 (Closes: #868887)
 
  -- Ben Hutchings <ben at decadent.org.uk>  Tue, 19 Sep 2017 00:38:28 +0100
 
diff --git a/debian/patches/bugfix/powerpc/powerpc-invalidate-erat-on-powersave-wakeup-for-power9.patch b/debian/patches/bugfix/powerpc/powerpc-invalidate-erat-on-powersave-wakeup-for-power9.patch
new file mode 100644
index 0000000..16cbe60
--- /dev/null
+++ b/debian/patches/bugfix/powerpc/powerpc-invalidate-erat-on-powersave-wakeup-for-power9.patch
@@ -0,0 +1,35 @@
+From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
+Date: Sat, 24 Jun 2017 12:29:01 -0500
+Subject: powerpc/64s: Invalidate ERAT on powersave wakeup for POWER9
+Origin: https://git.kernel.org/linus/ba6d334ac230065243a92bb7cb3fd6a5f6a7f8ac
+Bug-Debian: https://bugs.debian.org/868887
+
+On POWER9 the ERAT may be incorrect on wakeup from some stop states
+that lose state. This causes random segvs and illegal instructions
+when these stop states are enabled.
+
+This patch invalidates the ERAT on wakeup on POWER9 to prevent this
+from causing a problem.
+
+Signed-off-by: Michael Neuling <mikey at neuling.org>
+Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
+Reviewed-by: Nicholas Piggin <npiggin at gmail.com>
+[mpe: Merge comment change with upstream changes]
+Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
+---
+--- a/arch/powerpc/kernel/idle_book3s.S
++++ b/arch/powerpc/kernel/idle_book3s.S
+@@ -375,6 +375,13 @@ _GLOBAL(power9_idle_stop)
+  */
+ _GLOBAL(pnv_restore_hyp_resource)
+ BEGIN_FTR_SECTION
++	/*
++	 * Workaround for POWER9, if we lost resources, the ERAT
++	 * might have been mixed up and needs flushing.
++	 */
++	blt	cr3,1f
++	PPC_INVALIDATE_ERAT
++1:
+ 	ld	r2,PACATOC(r13);
+ 	/*
+ 	 * POWER ISA 3. Use PSSCR to determine if we
diff --git a/debian/patches/series b/debian/patches/series
index a960ecb..b70b385 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -62,6 +62,7 @@ bugfix/x86/platform-x86-ideapad-laptop-add-y520-15ikbn-to-no_hw.patch
 bugfix/x86/platform-x86-ideapad-laptop-add-y720-15ikbn-to-no_hw.patch
 bugfix/x86/platform-x86-ideapad-laptop-add-ideapad-v510-15ikb-t.patch
 bugfix/x86/platform-x86-ideapad-laptop-add-several-models-to-no.patch
+bugfix/powerpc/powerpc-invalidate-erat-on-powersave-wakeup-for-power9.patch
 
 # Arch features
 features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list