[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PULL 01/13] target-ppc: Correct KVM synchronization for ppc_
From: |
David Gibson |
Subject: |
[Qemu-ppc] [PULL 01/13] target-ppc: Correct KVM synchronization for ppc_hash64_set_external_hpt() |
Date: |
Fri, 27 May 2016 13:04:46 +1000 |
ppc_hash64_set_external_hpt() was added in e5c0d3c "target-ppc: Add helpers
for updating a CPU's SDR1 and external HPT". This helper contains a
cpu_synchronize_state() since it may need to push state back to KVM
afterwards.
This turns out to break things when it is used in the reset path, which is
the only current user. It appears that kvm_vcpu_dirty is not being set
early in the reset path, so the cpu_synchronize_state() is clobbering state
set up by the early part of the cpu reset path with stale state from KVM.
This may require some changes to the generic cpu reset path to fix
properly, but as a short term fix we can just remove the
cpu_synchronize_state() from ppc_hash64_set_external_hpt(), and require any
non-reset path callers to do that manually.
Reported-by: Laurent Vivier <address@hidden>
Signed-off-by: David Gibson <address@hidden>
---
target-ppc/mmu-hash64.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/target-ppc/mmu-hash64.c b/target-ppc/mmu-hash64.c
index 04e6932..17e2480 100644
--- a/target-ppc/mmu-hash64.c
+++ b/target-ppc/mmu-hash64.c
@@ -284,8 +284,6 @@ void ppc_hash64_set_external_hpt(PowerPCCPU *cpu, void
*hpt, int shift,
CPUPPCState *env = &cpu->env;
Error *local_err = NULL;
- cpu_synchronize_state(CPU(cpu));
-
if (hpt) {
env->external_htab = hpt;
} else {
--
2.5.5
- [Qemu-ppc] [PULL 00/13] ppc-for-2.7 queue 20160527, David Gibson, 2016/05/26
- [Qemu-ppc] [PULL 02/13] target-ppc: Use movcond in isel, David Gibson, 2016/05/26
- [Qemu-ppc] [PULL 07/13] Added negative check for get_image_size(), David Gibson, 2016/05/26
- [Qemu-ppc] [PULL 13/13] MAINTAINERS: Add David Gibson as ppc maintainer, David Gibson, 2016/05/26
- [Qemu-ppc] [PULL 04/13] target-ppc: Cleanups to rldinm, rldnm, rldimi, David Gibson, 2016/05/26
- [Qemu-ppc] [PULL 03/13] target-ppc: Use 32-bit rotate instead of deposit + 64-bit rotate, David Gibson, 2016/05/26
- [Qemu-ppc] [PULL 12/13] spapr_iommu: Move table allocation to helpers, David Gibson, 2016/05/26
- [Qemu-ppc] [PULL 06/13] hw/net/spapr_llan: Provide counter with dropped rx frames to the guest, David Gibson, 2016/05/26
- [Qemu-ppc] [PULL 09/13] spapr: ensure device trees are always associated with DRC, David Gibson, 2016/05/26
- [Qemu-ppc] [PULL 01/13] target-ppc: Correct KVM synchronization for ppc_hash64_set_external_hpt(),
David Gibson <=
- [Qemu-ppc] [PULL 08/13] PPC/KVM: early validation of vcpu id, David Gibson, 2016/05/26
- [Qemu-ppc] [PULL 11/13] spapr_iommu: Finish renaming vfio_accel to need_vfio, David Gibson, 2016/05/26
- [Qemu-ppc] [PULL 05/13] hw/net/spapr_llan: Delay flushing of the RX queue while adding new RX buffers, David Gibson, 2016/05/26
- [Qemu-ppc] [PULL 10/13] spapr_pci: Use correct DMA LIOBN when composing the device tree, David Gibson, 2016/05/26
- Re: [Qemu-ppc] [PULL 00/13] ppc-for-2.7 queue 20160527, Peter Maydell, 2016/05/27