ACK/cmnt: [PATCH][Zesty] UBUNTU: SAUCE: powerpc: Invalidate ERAT on powersave wakeup for POWER9
Stefan Bader
stefan.bader at canonical.com
Mon Jul 10 10:13:35 UTC 2017
On 27.06.2017 18:45, Breno Leitao wrote:
> From: Michael Neuling <mikey at neuling.org>
>
> BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1700521
>
> 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>
> (backported from: https://patchwork.ozlabs.org/patch/780365/)
> Signed-off-by: Breno Leitao <leitao at debian.org>
Acked-by: Stefan Bader <stefan.bader at canonical.com>
> ---
This seems to be now upstream as ba6d334ac230065243a92bb7cb3fd6a5f6a7f8ac
(not a cherry-pick but should be not too hard to backport as the failing
hunk is comment only and the other just fuzz).
-Stefan
> arch/powerpc/kernel/exceptions-64s.S | 4 +++-
> arch/powerpc/kernel/idle_book3s.S | 7 +++++++
> 2 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
> index f2a18432253c..3ee66dd600fc 100644
> --- a/arch/powerpc/kernel/exceptions-64s.S
> +++ b/arch/powerpc/kernel/exceptions-64s.S
> @@ -99,7 +99,9 @@ EXC_VIRT_NONE(0x4000, 0x4100)
> #ifdef CONFIG_PPC_P7_NAP
> /*
> * If running native on arch 2.06 or later, check if we are waking up
> - * from nap/sleep/winkle, and branch to idle handler.
> + * from nap/sleep/winkle, and branch to idle handler. This tests
> + * SRR1 bits 46:47. A non-0 value indicates that we are coming from
> + * a power saving state.
> */
> #define IDLETEST(n) \
> BEGIN_FTR_SECTION ; \
> diff --git a/arch/powerpc/kernel/idle_book3s.S b/arch/powerpc/kernel/idle_book3s.S
> index 67ba6a66fed5..fb762ee5ac6f 100644
> --- a/arch/powerpc/kernel/idle_book3s.S
> +++ b/arch/powerpc/kernel/idle_book3s.S
> @@ -433,6 +433,13 @@ FTR_SECTION_ELSE_NESTED(70)
> ld r2, PACATOC(r13)
> ALT_FTR_SECTION_END_NESTED_IFSET(CPU_FTR_POWER9_DD1, 70)
> /*
> + * Workaround for POWER9, if we lost resources, the ERAT
> + * might have been mixed up and needs flushing.
> + */
> + blt cr3,1f
> + PPC_INVALIDATE_ERAT
> +1:
> + /*
> * POWER ISA 3. Use PSSCR to determine if we
> * are waking up from deep idle state
> */
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20170710/5d872e3d/attachment.sig>
More information about the kernel-team
mailing list