]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
powerpc/powernv/idle: Fix restore of SPRN_LDBAR for POWER9 stop state.
authorAthira Rajeev <atrajeev@linux.vnet.ibm.com>
Tue, 2 Jul 2019 10:58:36 +0000 (16:28 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Jul 2019 07:11:08 +0000 (09:11 +0200)
commit f5a9e488d62360c91c5770bd55a0b40e419a71ce upstream.

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")
Cc: stable@vger.kernel.org # v5.2+
Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190702105836.26695-1-maddy@linux.vnet.ibm.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/platforms/powernv/idle.c

index 2f4479b94ac356d0b95dd6093866e3cfc386e827..fd14a62379549323ce322e086ab51dcbae94ebb9 100644 (file)
@@ -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 @@ core_woken:
        mtspr(SPRN_MMCR0,       sprs.mmcr0);
        mtspr(SPRN_MMCR1,       sprs.mmcr1);
        mtspr(SPRN_MMCR2,       sprs.mmcr2);
+       mtspr(SPRN_LDBAR,       sprs.ldbar);
 
        mtspr(SPRN_SPRG3,       local_paca->sprg_vdso);