]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: PPC: Book3S PR: Enable MSR_DR for switch_mmu_context()
authorAlexander Graf <graf@amazon.com>
Tue, 10 May 2022 12:37:17 +0000 (14:37 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 May 2022 08:26:53 +0000 (10:26 +0200)
commit87fd6d6bcb9c6329ae860cfa7a7ecb8d81241579
tree4d87c32b0a60118abf6749b1cf676d713d43601e
parent0e0ef81023198049df0741e176ea110943c4df80
KVM: PPC: Book3S PR: Enable MSR_DR for switch_mmu_context()

commit 4e896e225217edfa84cf411c3259269aeb217e16 upstream.

Commit afc9eac9b377 ("powerpc/32s: Convert switch_mmu_context() to C")
moved the switch_mmu_context() to C. While in principle a good idea, it
meant that the function now uses the stack. The stack is not accessible
from real mode though.

So to keep calling the function, let's turn on MSR_DR while we call it.
That way, all pointer references to the stack are handled virtually.

In addition, make sure to save/restore r12 on the stack, as it may get
clobbered by the C function.

Fixes: afc9eac9b377 ("powerpc/32s: Convert switch_mmu_context() to C")
Cc: stable@vger.kernel.org # v5.14+
Reported-by: Matt Evans <matt@ozlabs.org>
Signed-off-by: Alexander Graf <graf@amazon.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220510123717.24508-1-graf@amazon.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/kvm/book3s_32_sr.S