KVM: PPC: Book3S: Fix CONFIG_TRANSACTIONAL_MEM=n crash
[ Upstream commitbd31ecf44b] When running CPU_FTR_P9_TM_HV_ASSIST, HFSCR[TM] is set for the guest even if the host has CONFIG_TRANSACTIONAL_MEM=n, which causes it to be unprepared to handle guest exits while transactional. Normal guests don't have a problem because the HTM capability will not be advertised, but a rogue or buggy one could crash the host. Fixes:4bb3c7a020("KVM: PPC: Book3S HV: Work around transactional memory bugs in POWER9") Reported-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20210716024310.164448-1-npiggin@gmail.com Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
30b8302151
commit
fcbad8e18d
@@ -2366,8 +2366,10 @@ static int kvmppc_core_vcpu_create_hv(struct kvm_vcpu *vcpu)
|
|||||||
HFSCR_DSCR | HFSCR_VECVSX | HFSCR_FP | HFSCR_PREFIX;
|
HFSCR_DSCR | HFSCR_VECVSX | HFSCR_FP | HFSCR_PREFIX;
|
||||||
if (cpu_has_feature(CPU_FTR_HVMODE)) {
|
if (cpu_has_feature(CPU_FTR_HVMODE)) {
|
||||||
vcpu->arch.hfscr &= mfspr(SPRN_HFSCR);
|
vcpu->arch.hfscr &= mfspr(SPRN_HFSCR);
|
||||||
|
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
|
||||||
if (cpu_has_feature(CPU_FTR_P9_TM_HV_ASSIST))
|
if (cpu_has_feature(CPU_FTR_P9_TM_HV_ASSIST))
|
||||||
vcpu->arch.hfscr |= HFSCR_TM;
|
vcpu->arch.hfscr |= HFSCR_TM;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
if (cpu_has_feature(CPU_FTR_TM_COMP))
|
if (cpu_has_feature(CPU_FTR_TM_COMP))
|
||||||
vcpu->arch.hfscr |= HFSCR_TM;
|
vcpu->arch.hfscr |= HFSCR_TM;
|
||||||
|
|||||||
Reference in New Issue
Block a user