summaryrefslogtreecommitdiffstats
path: root/virt/kvm/arm/vgic/vgic.h
diff options
context:
space:
mode:
authorEric Auger <eric.auger@redhat.com>2017-05-04 11:19:52 +0200
committerChristoffer Dall <cdall@linaro.org>2017-05-08 14:35:59 +0200
commit44de9d683847ba6dbac290bb8c9f1b773cbda746 (patch)
treebce1559ad4601adadc909f2b69e8f9c8a0c307e3 /virt/kvm/arm/vgic/vgic.h
parent07a3e9a7b8d2c5b0fa59b281f4480711bea8fa2b (diff)
downloadlinux-stable-44de9d683847ba6dbac290bb8c9f1b773cbda746.tar.gz
linux-stable-44de9d683847ba6dbac290bb8c9f1b773cbda746.tar.bz2
linux-stable-44de9d683847ba6dbac290bb8c9f1b773cbda746.zip
KVM: arm64: vgic-v3: vgic_v3_lpi_sync_pending_status
this new helper synchronizes the irq pending_latch with the LPI pending bit status found in rdist pending table. As the status is consumed, we reset the bit in pending table. As we need the PENDBASER_ADDRESS() in vgic-v3, let's move its definition in the irqchip header. We restore the full length of the field, ie [51:16]. Same for PROPBASER_ADDRESS with full field length of [51:12]. Signed-off-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Marc Zyngier <marc.zyngier@arm.com> Reviewed-by: Christoffer Dall <cdall@linaro.org>
Diffstat (limited to 'virt/kvm/arm/vgic/vgic.h')
-rw-r--r--virt/kvm/arm/vgic/vgic.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/virt/kvm/arm/vgic/vgic.h b/virt/kvm/arm/vgic/vgic.h
index a48f33b04b2d..79768c801863 100644
--- a/virt/kvm/arm/vgic/vgic.h
+++ b/virt/kvm/arm/vgic/vgic.h
@@ -149,6 +149,7 @@ void vgic_v3_get_vmcr(struct kvm_vcpu *vcpu, struct vgic_vmcr *vmcr);
void vgic_v3_enable(struct kvm_vcpu *vcpu);
int vgic_v3_probe(const struct gic_kvm_info *info);
int vgic_v3_map_resources(struct kvm *kvm);
+int vgic_v3_lpi_sync_pending_status(struct kvm *kvm, struct vgic_irq *irq);
int vgic_register_redist_iodevs(struct kvm *kvm, gpa_t dist_base_address);
void vgic_v3_load(struct kvm_vcpu *vcpu);