[PATCH v2 08/15] KVM: arm64: introduce ITS emulation file with stub functions
From: andre.przywara@arm.com (Andre Przywara)
Date: 2015-08-25 09:39:45
Also in:
kvm, kvmarm
Salut Eric, ....
quoted
diff --git a/virt/kvm/arm/vgic-v3-emul.c b/virt/kvm/arm/vgic-v3-emul.c index 5269ad1..f5865e7 100644 --- a/virt/kvm/arm/vgic-v3-emul.c +++ b/virt/kvm/arm/vgic-v3-emul.c@@ -48,6 +48,7 @@ #include <asm/kvm_mmu.h> #include "vgic.h" +#include "its-emul.h" static bool handle_mmio_rao_wi(struct kvm_vcpu *vcpu, struct kvm_exit_mmio *mmio, phys_addr_t offset)@@ -530,9 +531,20 @@ static bool handle_mmio_ctlr_redist(struct kvm_vcpu *vcpu, struct kvm_exit_mmio *mmio, phys_addr_t offset) { - /* since we don't support LPIs, this register is zero for now */ - vgic_reg_access(mmio, NULL, offset, - ACCESS_READ_RAZ | ACCESS_WRITE_IGNORED); + struct vgic_dist *dist = &vcpu->kvm->arch.vgic; + u32 reg; + + if (!vgic_has_its(vcpu->kvm)) { + vgic_reg_access(mmio, NULL, offset, + ACCESS_READ_RAZ | ACCESS_WRITE_IGNORED); + return false; + }can't we remove above block and ...quoted
+ reg = dist->lpis_enabled ? GICR_CTLR_ENABLE_LPIS : 0; + vgic_reg_access(mmio, ®, offset, + ACCESS_READ_VALUE | ACCESS_WRITE_VALUE); + if (!dist->lpis_enabled && (reg & GICR_CTLR_ENABLE_LPISadd vgic_has_its(vcpu->kvm) && above?
Yeah, makes some sense. Changed that.
Besides Reviewed-by: Eric Auger [off-list ref]
Merci! Andr?
Eric )) {quoted
+ /* Eventually do something */ + } return false; }@@ -861,6 +873,12 @@ static int vgic_v3_map_resources(struct kvm *kvm, rdbase += GIC_V3_REDIST_SIZE; } + if (vgic_has_its(kvm)) { + ret = vits_init(kvm); + if (ret) + goto out_unregister; + } + dist->redist_iodevs = iodevs; dist->ready = true; goto out;