Thread (3 messages) 3 messages, 3 authors, 2024-08-13

Re: [PATCH v2] KVM: PPC: Book3S HV: Refactor HFSCR emulation for KVM guests

From: Madhavan Srinivasan <maddy@linux.ibm.com>
Date: 2024-07-18 03:51:36
Also in: kvm, lkml

On 7/16/24 5:22 PM, Gautam Menghani wrote:
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 <redacted>
---
V1 -> V2:
1. Reword changelog to point out mutual exclusivity of HFSCR bits.
2. Reword commit message to match other commits in book3s_hv.c

Minor: I guess you mean "Reword the subject line"

Reviewed-by: Madhavan Srinivasan <maddy@linux.ibm.com>


quoted hunk ↗ jump to hunk
  arch/powerpc/kvm/book3s_hv.c | 16 ++++++++++++----
  1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index daaf7faf21a5..50797b0611a2 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -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 |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help