Re: [PATCH 9/8] KVM: arm/arm64: Don't call map_resources when restoring ITS tables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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)
> 



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux