From: Eric Auger <eric.auger@redhat.com>
To: eric.auger.pro@gmail.com, eric.auger@redhat.com,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
kvmarm@lists.cs.columbia.edu, marc.zyngier@arm.com,
cdall@linaro.org, peter.maydell@linaro.org,
andre.przywara@arm.com, wanghaibin.wang@huawei.com
Cc: wu.wubin@huawei.com
Subject: [PATCH v3 07/11] KVM: arm/arm64: vgic-its: Always attempt to save/restore device and collection tables
Date: Mon, 16 Oct 2017 17:03:28 +0200 [thread overview]
Message-ID: <1508166212-9599-8-git-send-email-eric.auger@redhat.com> (raw)
In-Reply-To: <1508166212-9599-1-git-send-email-eric.auger@redhat.com>
In case the device table save fails, we currently do not
attempt to save the collection table. However it may
happen that the device table fails because the structures
in memory are inconsistent with device GITS_BASER however
this does not mean collection backup can't and shouldn't
be performed. Same must happen on restore path.
Without this patch, after a reset and early state backup,
the device table restore may fail due to L1 entry not valid.
If we don't restore the collection table the guest does
not reboot properly.
Signed-off-by: Eric Auger <eric.auger@redhat.com>
---
candidate to be CC'ed stable
---
virt/kvm/arm/vgic/vgic-its.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c
index 0031d57..3c2a6e7 100644
--- a/virt/kvm/arm/vgic/vgic-its.c
+++ b/virt/kvm/arm/vgic/vgic-its.c
@@ -2379,12 +2379,9 @@ static int vgic_its_save_tables_v0(struct vgic_its *its)
}
ret = vgic_its_save_device_tables(its);
- if (ret)
- goto out;
- ret = vgic_its_save_collection_table(its);
+ ret |= vgic_its_save_collection_table(its);
-out:
unlock_all_vcpus(kvm);
mutex_unlock(&its->its_lock);
mutex_unlock(&kvm->lock);
@@ -2411,11 +2408,9 @@ static int vgic_its_restore_tables_v0(struct vgic_its *its)
}
ret = vgic_its_restore_collection_table(its);
- if (ret)
- goto out;
- ret = vgic_its_restore_device_tables(its);
-out:
+ ret |= vgic_its_restore_device_tables(its);
+
unlock_all_vcpus(kvm);
mutex_unlock(&its->its_lock);
mutex_unlock(&kvm->lock);
--
2.5.5
next prev parent reply other threads:[~2017-10-16 15:03 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-16 15:03 [PATCH v3 00/11] vITS Migration fixes and reset Eric Auger
2017-10-16 15:03 ` [PATCH v3 01/11] KVM: arm/arm64: vgic-its: fix return value for device table restore Eric Auger
2017-10-16 15:03 ` [PATCH v3 02/11] KVM: arm/arm64: vgic-its: fix vgic_its_restore_collection_table returned value Eric Auger
2017-10-16 15:03 ` [PATCH v3 03/11] KVM: arm/arm64: vgic-its: Improve error reporting on device table save Eric Auger
2017-10-16 15:03 ` [PATCH v3 04/11] KVM: arm/arm64: vgic-its: Check CBASER/BASER validity before enabling the ITS Eric Auger
2017-10-16 15:03 ` [PATCH v3 05/11] KVM: arm/arm64: vgic-its: Check GITS_BASER Valid bit before saving tables Eric Auger
2017-10-16 15:03 ` [PATCH v3 06/11] KVM: arm/arm64: vgic-its: Check GITS_CBASER validity before processing commands Eric Auger
2017-10-16 15:03 ` Eric Auger [this message]
2017-10-16 15:03 ` [PATCH v3 08/11] KVM: arm/arm64: vgic-its: new helper functions to free the caches Eric Auger
2017-10-16 15:03 ` [PATCH v3 09/11] KVM: arm/arm64: vgic-its: free caches when GITS_BASER Valid bit is cleared Eric Auger
2017-10-16 15:03 ` [PATCH v3 10/11] KVM: arm/arm64: Document KVM_DEV_ARM_ITS_CTRL_RESET Eric Auger
2017-10-16 15:03 ` [PATCH v3 11/11] KVM: arm/arm64: vgic-its: Implement KVM_DEV_ARM_ITS_CTRL_RESET Eric Auger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1508166212-9599-8-git-send-email-eric.auger@redhat.com \
--to=eric.auger@redhat.com \
--cc=andre.przywara@arm.com \
--cc=cdall@linaro.org \
--cc=eric.auger.pro@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=peter.maydell@linaro.org \
--cc=wanghaibin.wang@huawei.com \
--cc=wu.wubin@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox