[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PULL 26/49] xics/kvm: Add proper rollback to xics_kvm_init()
From: |
David Gibson |
Subject: |
[Qemu-ppc] [PULL 26/49] xics/kvm: Add proper rollback to xics_kvm_init() |
Date: |
Tue, 2 Jul 2019 16:08:34 +1000 |
From: Greg Kurz <address@hidden>
Make xics_kvm_disconnect() able to undo the changes of a partial execution
of xics_kvm_connect() and use it to perform rollback.
Note that kvmppc_define_rtas_kernel_token(0) never fails, no matter the
RTAS call has been defined or not.
Signed-off-by: Greg Kurz <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Signed-off-by: David Gibson <address@hidden>
---
hw/intc/xics_kvm.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/hw/intc/xics_kvm.c b/hw/intc/xics_kvm.c
index 4bfbe1a840..51433b19b0 100644
--- a/hw/intc/xics_kvm.c
+++ b/hw/intc/xics_kvm.c
@@ -421,10 +421,7 @@ int xics_kvm_connect(SpaprMachineState *spapr, Error
**errp)
fail:
error_propagate(errp, local_err);
- kvmppc_define_rtas_kernel_token(0, "ibm,set-xive");
- kvmppc_define_rtas_kernel_token(0, "ibm,get-xive");
- kvmppc_define_rtas_kernel_token(0, "ibm,int-on");
- kvmppc_define_rtas_kernel_token(0, "ibm,int-off");
+ xics_kvm_disconnect(spapr, NULL);
return -1;
}
@@ -448,8 +445,10 @@ void xics_kvm_disconnect(SpaprMachineState *spapr, Error
**errp)
* removed from the list of devices of the VM. The VCPU presenters
* are also detached from the device.
*/
- close(kernel_xics_fd);
- kernel_xics_fd = -1;
+ if (kernel_xics_fd != -1) {
+ close(kernel_xics_fd);
+ kernel_xics_fd = -1;
+ }
kvmppc_define_rtas_kernel_token(0, "ibm,set-xive");
kvmppc_define_rtas_kernel_token(0, "ibm,get-xive");
--
2.21.0
- [Qemu-ppc] [PULL 22/49] xics/spapr: Rename xics_kvm_init(), (continued)
- [Qemu-ppc] [PULL 22/49] xics/spapr: Rename xics_kvm_init(), David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 11/49] xics: Add comment about CPU hotplug, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 20/49] hw/ppc: Drop useless CONFIG_KVM ifdefery, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 38/49] target/ppc: introduce GEN_VSX_HELPER_R2_AB macro to fpu_helper.c, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 24/49] xics/kvm: Always use local_err in xics_kvm_init(), David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 41/49] target/ppc: improve VSX_FMADD with new GEN_VSX_HELPER_VSX_MADD macro, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 42/49] spapr_pci: Unregister listeners before destroying the IOMMU address space, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 23/49] xics/kvm: Skip rollback when KVM XICS is absent, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 21/49] xics/spapr: Drop unused function declaration, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 27/49] ppc: Introduce kvmppc_set_reg_tb_offset() helper, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 26/49] xics/kvm: Add proper rollback to xics_kvm_init(),
David Gibson <=
- [Qemu-ppc] [PULL 19/49] hw/ppc/prep: Drop useless CONFIG_KVM ifdefery, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 34/49] target/ppc: introduce GEN_VSX_HELPER_X2_AB macro to fpu_helper.c, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 35/49] target/ppc: introduce GEN_VSX_HELPER_X1 macro to fpu_helper.c, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 37/49] target/ppc: introduce GEN_VSX_HELPER_R2 macro to fpu_helper.c, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 45/49] ppc/xive: Force the Physical CAM line value to group mode, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 44/49] spapr/xive: simplify spapr_irq_init_device() to remove the emulated init, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 31/49] target/ppc: introduce GEN_VSX_HELPER_X3 macro to fpu_helper.c, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 39/49] target/ppc: decode target register in VSX_VECTOR_LOAD_STORE_LENGTH at translation time, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 36/49] target/ppc: introduce GEN_VSX_HELPER_R3 macro to fpu_helper.c, David Gibson, 2019/07/02
- [Qemu-ppc] [PULL 33/49] target/ppc: introduce GEN_VSX_HELPER_X2 macro to fpu_helper.c, David Gibson, 2019/07/02