[PATCH] powerpc/powernv/idle: Fix restore of SPRN_LDBAR for POWER9 stop state.
Nicholas Piggin
npiggin at gmail.com
Wed Jul 3 10:51:59 AEST 2019
Madhavan Srinivasan's on July 2, 2019 8:58 pm:
> From: Athira Rajeev <atrajeev at linux.vnet.ibm.com>
>
> commit 10d91611f426 ("powerpc/64s: Reimplement book3s idle code in C")
> reimplemented book3S code to pltform/powernv/idle.c. But when doing so
> missed to add the per-thread LDBAR update in the core_woken path of
> the power9_idle_stop(). Patch fixes the same.
>
> Fixes: 10d91611f426 ("powerpc/64s: Reimplement book3s idle code in C")
> Signed-off-by: Athira Rajeev <atrajeev at linux.vnet.ibm.com>
> Signed-off-by: Madhavan Srinivasan <maddy at linux.vnet.ibm.com>
> ---
> arch/powerpc/platforms/powernv/idle.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/platforms/powernv/idle.c b/arch/powerpc/platforms/powernv/idle.c
> index 2f4479b94ac3..fd14a6237954 100644
> --- a/arch/powerpc/platforms/powernv/idle.c
> +++ b/arch/powerpc/platforms/powernv/idle.c
> @@ -758,7 +758,6 @@ static unsigned long power9_idle_stop(unsigned long psscr, bool mmu_on)
> mtspr(SPRN_PTCR, sprs.ptcr);
> mtspr(SPRN_RPR, sprs.rpr);
> mtspr(SPRN_TSCR, sprs.tscr);
> - mtspr(SPRN_LDBAR, sprs.ldbar);
>
> if (pls >= pnv_first_tb_loss_level) {
> /* TB loss */
> @@ -790,6 +789,7 @@ static unsigned long power9_idle_stop(unsigned long psscr, bool mmu_on)
> mtspr(SPRN_MMCR0, sprs.mmcr0);
> mtspr(SPRN_MMCR1, sprs.mmcr1);
> mtspr(SPRN_MMCR2, sprs.mmcr2);
> + mtspr(SPRN_LDBAR, sprs.ldbar);
Oh that's another one I messed up, thanks for the fix. I must have
confused myself with the SPR table in the UM :(
Reviewed-by: Nicholas Piggin <npiggin at gmail.com>
More information about the Linuxppc-dev
mailing list