summaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
authorChristoffer Dall <cdall@linaro.org>2017-05-08 14:43:45 +0200
committerChristoffer Dall <cdall@linaro.org>2017-05-09 12:19:46 +0200
commit67723c25ce7fc0bd4f1b0f4bcbee5f0d114516ca (patch)
tree295883861b09b7663fe8d15b018d64af3d844ad1 /virt
parent30e1b684f0afd94745821f27ce1165226df02ba9 (diff)
downloadlinux-67723c25ce7fc0bd4f1b0f4bcbee5f0d114516ca.tar.gz
linux-67723c25ce7fc0bd4f1b0f4bcbee5f0d114516ca.tar.bz2
linux-67723c25ce7fc0bd4f1b0f4bcbee5f0d114516ca.zip
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: Christoffer Dall <cdall@linaro.org> Reviewed-by: Eric Auger <eric.auger@redhat.com>
Diffstat (limited to 'virt')
-rw-r--r--virt/kvm/arm/vgic/vgic-its.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c
index 89acaef44965..9aeaff0512d8 100644
--- a/virt/kvm/arm/vgic/vgic-its.c
+++ b/virt/kvm/arm/vgic/vgic-its.c
@@ -2308,20 +2308,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)