Now that the __vgic_v3_perform_cpuif_access only needs
vgic_v3_cpu_if, kvm_cpu_context, vcpu_hyps, pass these rather
than the whole vcpu.

Signed-off-by: Fuad Tabba <[email protected]>
---
 arch/arm64/include/asm/kvm_hyp.h        | 4 +++-
 arch/arm64/kvm/hyp/include/hyp/switch.h | 2 +-
 arch/arm64/kvm/hyp/vgic-v3-sr.c         | 9 ++++-----
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/include/asm/kvm_hyp.h b/arch/arm64/include/asm/kvm_hyp.h
index d9a8872a7efb..b379c2b96f33 100644
--- a/arch/arm64/include/asm/kvm_hyp.h
+++ b/arch/arm64/include/asm/kvm_hyp.h
@@ -63,7 +63,9 @@ void __vgic_v3_activate_traps(struct vgic_v3_cpu_if *cpu_if);
 void __vgic_v3_deactivate_traps(struct vgic_v3_cpu_if *cpu_if);
 void __vgic_v3_save_aprs(struct vgic_v3_cpu_if *cpu_if);
 void __vgic_v3_restore_aprs(struct vgic_v3_cpu_if *cpu_if);
-int __vgic_v3_perform_cpuif_access(struct kvm_vcpu *vcpu);
+int __vgic_v3_perform_cpuif_access(struct vgic_v3_cpu_if *cpu_if,
+                                  struct kvm_cpu_context *vcpu_ctxt,
+                                  struct vcpu_hyp_state *vcpu_hyps);
 
 #ifdef __KVM_NVHE_HYPERVISOR__
 void __timer_enable_traps(void);
diff --git a/arch/arm64/kvm/hyp/include/hyp/switch.h 
b/arch/arm64/kvm/hyp/include/hyp/switch.h
index 30fcfe84f609..44e76993a9b4 100644
--- a/arch/arm64/kvm/hyp/include/hyp/switch.h
+++ b/arch/arm64/kvm/hyp/include/hyp/switch.h
@@ -502,7 +502,7 @@ static inline bool fixup_guest_exit(struct kvm_vcpu *vcpu, 
struct vgic_dist *vgi
        if (static_branch_unlikely(&vgic_v3_cpuif_trap) &&
            (kvm_vcpu_trap_get_class(vcpu) == ESR_ELx_EC_SYS64 ||
             kvm_vcpu_trap_get_class(vcpu) == ESR_ELx_EC_CP15_32)) {
-               int ret = __vgic_v3_perform_cpuif_access(vcpu);
+               int ret = 
__vgic_v3_perform_cpuif_access(&vcpu->arch.vgic_cpu.vgic_v3, vcpu_ctxt, 
vcpu_hyps);
 
                if (ret == 1)
                        goto guest;
diff --git a/arch/arm64/kvm/hyp/vgic-v3-sr.c b/arch/arm64/kvm/hyp/vgic-v3-sr.c
index 3e1951b04fce..2c16e0cd45f0 100644
--- a/arch/arm64/kvm/hyp/vgic-v3-sr.c
+++ b/arch/arm64/kvm/hyp/vgic-v3-sr.c
@@ -1097,11 +1097,10 @@ static void __vgic_v3_write_ctlr(struct vgic_v3_cpu_if 
*cpu_if,
        write_gicreg(vmcr, ICH_VMCR_EL2);
 }
 
-int __vgic_v3_perform_cpuif_access(struct kvm_vcpu *vcpu)
+int __vgic_v3_perform_cpuif_access(struct vgic_v3_cpu_if *cpu_if,
+                                  struct kvm_cpu_context *vcpu_ctxt,
+                                  struct vcpu_hyp_state *vcpu_hyps)
 {
-       struct vgic_v3_cpu_if *cpu_if = &vcpu->arch.vgic_cpu.vgic_v3;
-       struct vcpu_hyp_state *vcpu_hyps = &hyp_state(vcpu);
-       struct kvm_cpu_context *vcpu_ctxt = &vcpu_ctxt(vcpu);
        int rt;
        u32 esr;
        u32 vmcr;
@@ -1112,7 +1111,7 @@ int __vgic_v3_perform_cpuif_access(struct kvm_vcpu *vcpu)
 
        esr = kvm_hyp_state_get_esr(vcpu_hyps);
        if (ctxt_mode_is_32bit(vcpu_ctxt)) {
-               if (!kvm_condition_valid(vcpu)) {
+               if (!__kvm_condition_valid(vcpu_ctxt, vcpu_hyps)) {
                        __kvm_skip_instr(vcpu_ctxt, vcpu_hyps);
                        return 1;
                }
-- 
2.33.0.685.g46640cef36-goog

_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

Reply via email to