[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 09/30] spapr/xive: Use kvmppc_xive_source_reset() in post_load
From: |
David Gibson |
Subject: |
[PULL 09/30] spapr/xive: Use kvmppc_xive_source_reset() in post_load |
Date: |
Fri, 4 Sep 2020 13:46:58 +1000 |
From: Cédric Le Goater <clg@kaod.org>
This is doing an extra loop but should be equivalent.
It also differentiate the reset of the sources from the restore of the
sources configuration. This will help in allocating the vCPU IPIs
independently.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20200820134547.2355743-3-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
hw/intc/spapr_xive_kvm.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/hw/intc/spapr_xive_kvm.c b/hw/intc/spapr_xive_kvm.c
index 0e834b4b71..3e80ea0ce9 100644
--- a/hw/intc/spapr_xive_kvm.c
+++ b/hw/intc/spapr_xive_kvm.c
@@ -646,22 +646,22 @@ int kvmppc_xive_post_load(SpaprXive *xive, int version_id)
}
}
+ /*
+ * We can only restore the source config if the source has been
+ * previously set in KVM. Since we don't do that at reset time
+ * when restoring a VM, let's do it now.
+ */
+ ret = kvmppc_xive_source_reset(&xive->source, &local_err);
+ if (ret < 0) {
+ goto fail;
+ }
+
/* Restore the EAT */
for (i = 0; i < xive->nr_irqs; i++) {
if (!xive_eas_is_valid(&xive->eat[i])) {
continue;
}
- /*
- * We can only restore the source config if the source has been
- * previously set in KVM. Since we don't do that for all interrupts
- * at reset time anymore, let's do it now.
- */
- ret = kvmppc_xive_source_reset_one(&xive->source, i, &local_err);
- if (ret < 0) {
- goto fail;
- }
-
ret = kvmppc_xive_set_source_config(xive, i, &xive->eat[i],
&local_err);
if (ret < 0) {
goto fail;
--
2.26.2
- [PULL 00/30] ppc-for-5.2 queue 20200904, David Gibson, 2020/09/03
- [PULL 04/30] spapr/xive: Add a 'hv-prio' property to represent the KVM escalation priority, David Gibson, 2020/09/03
- [PULL 01/30] adb: Correct class size on TYPE_ADB_DEVICE, David Gibson, 2020/09/03
- [PULL 02/30] ppc/pnv: Fix TypeInfo of PnvLpcController abstract class, David Gibson, 2020/09/03
- [PULL 03/30] spapr: Remove unnecessary DRC type-checker macros, David Gibson, 2020/09/03
- [PULL 06/30] spapr_vscsi: do not allow device hotplug, David Gibson, 2020/09/03
- [PULL 05/30] ppc/pnv: Add a HIOMAP erase command, David Gibson, 2020/09/03
- [PULL 08/30] spapr/xive: Modify kvm_cpu_is_enabled() interface, David Gibson, 2020/09/03
- [PULL 11/30] spapr/xive: Allocate vCPU IPIs from the vCPU contexts, David Gibson, 2020/09/03
- [PULL 07/30] spapr/xive: Use the xics flag to check for XIVE-only IRQ backends, David Gibson, 2020/09/03
- [PULL 09/30] spapr/xive: Use kvmppc_xive_source_reset() in post_load,
David Gibson <=
- [PULL 12/30] ppc/spapr_nvdimm: use g_autofree in spapr_nvdimm_validate_opts(), David Gibson, 2020/09/03
- [PULL 17/30] ppc/spapr: Use start-powered-off CPUState property, David Gibson, 2020/09/03
- [PULL 14/30] ppc/spapr_nvdimm: do not enable support with 'nvdimm=off', David Gibson, 2020/09/03
- [PULL 13/30] spapr, spapr_nvdimm: fold NVDIMM validation in the same place, David Gibson, 2020/09/03
- [PULL 15/30] target/arm: Move start-powered-off property to generic CPUState, David Gibson, 2020/09/03
- [PULL 10/30] spapr/xive: Allocate IPIs independently from the other sources, David Gibson, 2020/09/03
- [PULL 18/30] ppc/e500: Use start-powered-off CPUState property, David Gibson, 2020/09/03
- [PULL 21/30] sparc/sun4m: Use start-powered-off CPUState property, David Gibson, 2020/09/03
- [PULL 16/30] target/arm: Move setting of CPU halted state to generic code, David Gibson, 2020/09/03
- [PULL 20/30] sparc/sun4m: Don't set cs->halted = 0 in main_cpu_reset(), David Gibson, 2020/09/03