Hi Christoffer, On 08/05/2017 14:49, Christoffer Dall wrote: > The only reason we called kvm_vgic_map_resources() when restoring the > ITS tables was because we wanted to have the KVM iodevs registered in > the KVM IO bus framework at the time when the ITS was restored such that > a restored and active device can inject MSIs prior to otherwise calling > kvm_vgic_map_resources() from the first run of a VCPU. > > Since we now register the KVM iodevs for the redestributors and ITS as > soon as possible (when setting the base addresses), we no longer need > this call and kvm_vgic_map_resources() is again called only when first > running a VCPU. > > Signed-off-by: Christoffer Dall <cdall@xxxxxxxxxx> Reviewed-by: Eric Auger <eric.auger@xxxxxxxxxx> Thanks Eric > --- > Forgot to include this when posting the series, which was the whole > point of the iodev rework in the first place. Apologies about the > confusing 9/8 subject thing. > > virt/kvm/arm/vgic/vgic-its.c | 10 +--------- > 1 file changed, 1 insertion(+), 9 deletions(-) > > diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c > index 00f2990..9b67621 100644 > --- a/virt/kvm/arm/vgic/vgic-its.c > +++ b/virt/kvm/arm/vgic/vgic-its.c > @@ -2316,20 +2316,12 @@ static int vgic_its_restore_tables_v0(struct vgic_its *its) > goto out; > > ret = vgic_its_restore_device_tables(its); > - > out: > unlock_all_vcpus(kvm); > mutex_unlock(&its->its_lock); > mutex_unlock(&kvm->lock); > > - if (ret) > - return ret; > - > - /* > - * On restore path, MSI injections can happen before the > - * first VCPU run so let's complete the GIC init here. > - */ > - return kvm_vgic_map_resources(its->dev->kvm); > + return ret; > } > > static int vgic_its_commit_v0(struct vgic_its *its) >