summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2017-03-17 05:13:20 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-03-30 07:41:25 (GMT)
commit1e360905f61f34acbdc82f88336155db89107485 (patch)
treea3309131dfa0009fe3161a2555526342a19bb601 /drivers
parent9a9dc3ec7ce1e31d1e4f553885fd35fbaf207d23 (diff)
downloadlinux-1e360905f61f34acbdc82f88336155db89107485.tar.xz
powerpc/64s: Fix idle wakeup potential to clobber registers
commit 6d98ce0be541d4a3cfbb52cd75072c0339ebb500 upstream. We concluded there may be a window where the idle wakeup code could get to pnv_wakeup_tb_loss() (which clobbers non-volatile GPRs), but the hardware may set SRR1[46:47] to 01b (no state loss) which would result in the wakeup code failing to restore non-volatile GPRs. I was not able to trigger this condition with trivial tests on real hardware or simulator, but the ISA (at least 2.07) seems to allow for it, and Gautham says that it can happen if there is an exception pending when the sleep/winkle instruction is executed. Fixes: 1706567117ba ("powerpc/kvm: make hypervisor state restore a function") Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Acked-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
0 files changed, 0 insertions, 0 deletions