Loading arch/arm64/include/asm/kvm_asm.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -64,7 +64,7 @@ extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa); extern void __kvm_tlb_flush_vmid(struct kvm *kvm); extern void __kvm_tlb_flush_vmid(struct kvm *kvm); extern void __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu); extern void __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu); extern void __kvm_timer_set_cntvoff(u32 cntvoff_low, u32 cntvoff_high); extern void __kvm_timer_set_cntvoff(u64 cntvoff); extern int kvm_vcpu_run_vhe(struct kvm_vcpu *vcpu); extern int kvm_vcpu_run_vhe(struct kvm_vcpu *vcpu); Loading arch/arm64/kvm/arch_timer.c +1 −11 Original line number Original line Diff line number Diff line Loading @@ -451,17 +451,7 @@ static void timer_restore_state(struct arch_timer_context *ctx) static void set_cntvoff(u64 cntvoff) static void set_cntvoff(u64 cntvoff) { { u32 low = lower_32_bits(cntvoff); kvm_call_hyp(__kvm_timer_set_cntvoff, cntvoff); u32 high = upper_32_bits(cntvoff); /* * Since kvm_call_hyp doesn't fully support the ARM PCS especially on * 32-bit systems, but rather passes register by register shifted one * place (we put the function address in r0/x0), we cannot simply pass * a 64-bit value as an argument, but have to split the value in two * 32-bit halves. */ kvm_call_hyp(__kvm_timer_set_cntvoff, low, high); } } static inline void set_timer_irq_phys_active(struct arch_timer_context *ctx, bool active) static inline void set_timer_irq_phys_active(struct arch_timer_context *ctx, bool active) Loading arch/arm64/kvm/hyp/timer-sr.c +1 −2 Original line number Original line Diff line number Diff line Loading @@ -10,9 +10,8 @@ #include <asm/kvm_hyp.h> #include <asm/kvm_hyp.h> void __hyp_text __kvm_timer_set_cntvoff(u32 cntvoff_low, u32 cntvoff_high) void __hyp_text __kvm_timer_set_cntvoff(u64 cntvoff) { { u64 cntvoff = (u64)cntvoff_high << 32 | cntvoff_low; write_sysreg(cntvoff, cntvoff_el2); write_sysreg(cntvoff, cntvoff_el2); } } Loading Loading
arch/arm64/include/asm/kvm_asm.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -64,7 +64,7 @@ extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa); extern void __kvm_tlb_flush_vmid(struct kvm *kvm); extern void __kvm_tlb_flush_vmid(struct kvm *kvm); extern void __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu); extern void __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu); extern void __kvm_timer_set_cntvoff(u32 cntvoff_low, u32 cntvoff_high); extern void __kvm_timer_set_cntvoff(u64 cntvoff); extern int kvm_vcpu_run_vhe(struct kvm_vcpu *vcpu); extern int kvm_vcpu_run_vhe(struct kvm_vcpu *vcpu); Loading
arch/arm64/kvm/arch_timer.c +1 −11 Original line number Original line Diff line number Diff line Loading @@ -451,17 +451,7 @@ static void timer_restore_state(struct arch_timer_context *ctx) static void set_cntvoff(u64 cntvoff) static void set_cntvoff(u64 cntvoff) { { u32 low = lower_32_bits(cntvoff); kvm_call_hyp(__kvm_timer_set_cntvoff, cntvoff); u32 high = upper_32_bits(cntvoff); /* * Since kvm_call_hyp doesn't fully support the ARM PCS especially on * 32-bit systems, but rather passes register by register shifted one * place (we put the function address in r0/x0), we cannot simply pass * a 64-bit value as an argument, but have to split the value in two * 32-bit halves. */ kvm_call_hyp(__kvm_timer_set_cntvoff, low, high); } } static inline void set_timer_irq_phys_active(struct arch_timer_context *ctx, bool active) static inline void set_timer_irq_phys_active(struct arch_timer_context *ctx, bool active) Loading
arch/arm64/kvm/hyp/timer-sr.c +1 −2 Original line number Original line Diff line number Diff line Loading @@ -10,9 +10,8 @@ #include <asm/kvm_hyp.h> #include <asm/kvm_hyp.h> void __hyp_text __kvm_timer_set_cntvoff(u32 cntvoff_low, u32 cntvoff_high) void __hyp_text __kvm_timer_set_cntvoff(u64 cntvoff) { { u64 cntvoff = (u64)cntvoff_high << 32 | cntvoff_low; write_sysreg(cntvoff, cntvoff_el2); write_sysreg(cntvoff, cntvoff_el2); } } Loading