KVM: arm/arm64: Keep GICv2 HYP VAs in kvm_vgic_global_state
As we're about to change the way we map devices at HYP, we need to move away from kern_hyp_va on an IO address. One way of achieving this is to store the VAs in kvm_vgic_global_state, and use that directly from the HYP code. This requires a small change to create_hyp_io_mappings so that it can also return a HYP VA. We take this opportunity to nuke the vctrl_base field in the emulated distributor, as it is not used anymore. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
This commit is contained in:
@@ -57,11 +57,15 @@ struct vgic_global {
|
||||
/* Physical address of vgic virtual cpu interface */
|
||||
phys_addr_t vcpu_base;
|
||||
|
||||
/* GICV mapping */
|
||||
/* GICV mapping, kernel VA */
|
||||
void __iomem *vcpu_base_va;
|
||||
/* GICV mapping, HYP VA */
|
||||
void __iomem *vcpu_hyp_va;
|
||||
|
||||
/* virtual control interface mapping */
|
||||
/* virtual control interface mapping, kernel VA */
|
||||
void __iomem *vctrl_base;
|
||||
/* virtual control interface mapping, HYP VA */
|
||||
void __iomem *vctrl_hyp;
|
||||
|
||||
/* Number of implemented list registers */
|
||||
int nr_lr;
|
||||
@@ -209,10 +213,6 @@ struct vgic_dist {
|
||||
|
||||
int nr_spis;
|
||||
|
||||
/* TODO: Consider moving to global state */
|
||||
/* Virtual control interface mapping */
|
||||
void __iomem *vctrl_base;
|
||||
|
||||
/* base addresses in guest physical address space: */
|
||||
gpa_t vgic_dist_base; /* distributor */
|
||||
union {
|
||||
|
Reference in New Issue
Block a user