mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 18:21:24 +02:00
KVM: arm64: Remove @arch from __load_stage2()
Since commit fe49fd940e ("KVM: arm64: Move VTCR_EL2 into struct s2_mmu"),
@arch is no longer required to obtain the per-kvm_s2_mmu vtcr and can be
removed from __load_stage2().
Signed-off-by: Zenghui Yu (Huawei) <zenghui.yu@linux.dev>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Link: https://patch.msgid.link/20260318144305.56831-1-zenghui.yu@linux.dev
Signed-off-by: Marc Zyngier <maz@kernel.org>
This commit is contained in:
parent
4cceeb8da3
commit
e72b425f61
|
|
@ -318,8 +318,7 @@ static __always_inline u64 kvm_get_vttbr(struct kvm_s2_mmu *mmu)
|
|||
* Must be called from hyp code running at EL2 with an updated VTTBR
|
||||
* and interrupts disabled.
|
||||
*/
|
||||
static __always_inline void __load_stage2(struct kvm_s2_mmu *mmu,
|
||||
struct kvm_arch *arch)
|
||||
static __always_inline void __load_stage2(struct kvm_s2_mmu *mmu)
|
||||
{
|
||||
write_sysreg(mmu->vtcr, vtcr_el2);
|
||||
write_sysreg(kvm_get_vttbr(mmu), vttbr_el2);
|
||||
|
|
|
|||
|
|
@ -1380,7 +1380,7 @@ static u64 __kvm_at_s1e01_fast(struct kvm_vcpu *vcpu, u32 op, u64 vaddr)
|
|||
}
|
||||
}
|
||||
write_sysreg_el1(vcpu_read_sys_reg(vcpu, SCTLR_EL1), SYS_SCTLR);
|
||||
__load_stage2(mmu, mmu->arch);
|
||||
__load_stage2(mmu);
|
||||
|
||||
skip_mmu_switch:
|
||||
/* Temporarily switch back to guest context */
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ int refill_memcache(struct kvm_hyp_memcache *mc, unsigned long min_pages,
|
|||
static __always_inline void __load_host_stage2(void)
|
||||
{
|
||||
if (static_branch_likely(&kvm_protected_mode_initialized))
|
||||
__load_stage2(&host_mmu.arch.mmu, &host_mmu.arch);
|
||||
__load_stage2(&host_mmu.arch.mmu);
|
||||
else
|
||||
write_sysreg(0, vttbr_el2);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -337,7 +337,7 @@ int __pkvm_prot_finalize(void)
|
|||
kvm_flush_dcache_to_poc(params, sizeof(*params));
|
||||
|
||||
write_sysreg_hcr(params->hcr_el2);
|
||||
__load_stage2(&host_mmu.arch.mmu, &host_mmu.arch);
|
||||
__load_stage2(&host_mmu.arch.mmu);
|
||||
|
||||
/*
|
||||
* Make sure to have an ISB before the TLB maintenance below but only
|
||||
|
|
|
|||
|
|
@ -315,7 +315,7 @@ int __kvm_vcpu_run(struct kvm_vcpu *vcpu)
|
|||
__sysreg_restore_state_nvhe(guest_ctxt);
|
||||
|
||||
mmu = kern_hyp_va(vcpu->arch.hw_mmu);
|
||||
__load_stage2(mmu, kern_hyp_va(mmu->arch));
|
||||
__load_stage2(mmu);
|
||||
__activate_traps(vcpu);
|
||||
|
||||
__hyp_vgic_restore_state(vcpu);
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ static void enter_vmid_context(struct kvm_s2_mmu *mmu,
|
|||
if (vcpu)
|
||||
__load_host_stage2();
|
||||
else
|
||||
__load_stage2(mmu, kern_hyp_va(mmu->arch));
|
||||
__load_stage2(mmu);
|
||||
|
||||
asm(ALTERNATIVE("isb", "nop", ARM64_WORKAROUND_SPECULATIVE_AT));
|
||||
}
|
||||
|
|
@ -128,7 +128,7 @@ static void exit_vmid_context(struct tlb_inv_context *cxt)
|
|||
return;
|
||||
|
||||
if (vcpu)
|
||||
__load_stage2(mmu, kern_hyp_va(mmu->arch));
|
||||
__load_stage2(mmu);
|
||||
else
|
||||
__load_host_stage2();
|
||||
|
||||
|
|
|
|||
|
|
@ -219,7 +219,7 @@ void kvm_vcpu_load_vhe(struct kvm_vcpu *vcpu)
|
|||
|
||||
__vcpu_load_switch_sysregs(vcpu);
|
||||
__vcpu_load_activate_traps(vcpu);
|
||||
__load_stage2(vcpu->arch.hw_mmu, vcpu->arch.hw_mmu->arch);
|
||||
__load_stage2(vcpu->arch.hw_mmu);
|
||||
}
|
||||
|
||||
void kvm_vcpu_put_vhe(struct kvm_vcpu *vcpu)
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ static void enter_vmid_context(struct kvm_s2_mmu *mmu,
|
|||
* place before clearing TGE. __load_stage2() already
|
||||
* has an ISB in order to deal with this.
|
||||
*/
|
||||
__load_stage2(mmu, mmu->arch);
|
||||
__load_stage2(mmu);
|
||||
val = read_sysreg(hcr_el2);
|
||||
val &= ~HCR_TGE;
|
||||
write_sysreg_hcr(val);
|
||||
|
|
@ -78,7 +78,7 @@ static void exit_vmid_context(struct tlb_inv_context *cxt)
|
|||
|
||||
/* ... and the stage-2 MMU context that we switched away from */
|
||||
if (cxt->mmu)
|
||||
__load_stage2(cxt->mmu, cxt->mmu->arch);
|
||||
__load_stage2(cxt->mmu);
|
||||
|
||||
if (cpus_have_final_cap(ARM64_WORKAROUND_SPECULATIVE_AT)) {
|
||||
/* Restore the registers to what they were */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user