mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
KVM: PPC: Book3S HV: Refactor HFSCR emulation for KVM guests
Refactor HFSCR emulation for KVM guests when they exit out with H_FAC_UNAVAIL to use a switch case instead of checking all "cause" values, since the "cause" values are mutually exclusive; and this is better expressed with a switch case. Signed-off-by: Gautam Menghani <gautam@linux.ibm.com> Reviewed-by: Madhavan Srinivasan <maddy@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://msgid.link/20240716115206.70210-1-gautam@linux.ibm.com
This commit is contained in:
parent
de9c2c66ad
commit
9739ff4887
@ -1922,14 +1922,22 @@ static int kvmppc_handle_exit_hv(struct kvm_vcpu *vcpu,
|
||||
|
||||
r = EMULATE_FAIL;
|
||||
if (cpu_has_feature(CPU_FTR_ARCH_300)) {
|
||||
if (cause == FSCR_MSGP_LG)
|
||||
switch (cause) {
|
||||
case FSCR_MSGP_LG:
|
||||
r = kvmppc_emulate_doorbell_instr(vcpu);
|
||||
if (cause == FSCR_PM_LG)
|
||||
break;
|
||||
case FSCR_PM_LG:
|
||||
r = kvmppc_pmu_unavailable(vcpu);
|
||||
if (cause == FSCR_EBB_LG)
|
||||
break;
|
||||
case FSCR_EBB_LG:
|
||||
r = kvmppc_ebb_unavailable(vcpu);
|
||||
if (cause == FSCR_TM_LG)
|
||||
break;
|
||||
case FSCR_TM_LG:
|
||||
r = kvmppc_tm_unavailable(vcpu);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (r == EMULATE_FAIL) {
|
||||
kvmppc_core_queue_program(vcpu, SRR1_PROGILL |
|
||||
|
Loading…
Reference in New Issue
Block a user