Hi Marc, On 27/10/2017 16:28, Marc Zyngier wrote: > Upon updating a property, we propagate it all the way to the physical > ITS, and ask for an INV command to be executed there. > > Acked-by: Christoffer Dall <cdall@xxxxxxxxxx> > Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> > --- > virt/kvm/arm/vgic/vgic-its.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c > index 0b7e648e7a0c..2e77c7c83942 100644 > --- a/virt/kvm/arm/vgic/vgic-its.c > +++ b/virt/kvm/arm/vgic/vgic-its.c > @@ -296,6 +296,9 @@ static int update_lpi_config(struct kvm *kvm, struct vgic_irq *irq, > spin_unlock(&irq->irq_lock); > } > > + if (irq->hw) > + return its_prop_update_vlpi(irq->host_irq, prop, true); > + > return 0; > } I am confused by the vgic_queue_irq_unlock() on the "hw" path. Why is it needed in hw mode? Thanks Eric > >