提交 67723c25 编写于 作者: C Christoffer Dall

KVM: arm/arm64: Don't call map_resources when restoring ITS tables

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: NChristoffer Dall <cdall@linaro.org>
Reviewed-by: NEric Auger <eric.auger@redhat.com>
上级 30e1b684
...@@ -2308,20 +2308,12 @@ static int vgic_its_restore_tables_v0(struct vgic_its *its) ...@@ -2308,20 +2308,12 @@ static int vgic_its_restore_tables_v0(struct vgic_its *its)
goto out; goto out;
ret = vgic_its_restore_device_tables(its); ret = vgic_its_restore_device_tables(its);
out: out:
unlock_all_vcpus(kvm); unlock_all_vcpus(kvm);
mutex_unlock(&its->its_lock); mutex_unlock(&its->its_lock);
mutex_unlock(&kvm->lock); mutex_unlock(&kvm->lock);
if (ret) return 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);
} }
static int vgic_its_commit_v0(struct vgic_its *its) static int vgic_its_commit_v0(struct vgic_its *its)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册