[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] target-ppc: fix sync of SPR_SDR1 with KVM
From: |
Greg Kurz |
Subject: |
[Qemu-devel] [PATCH] target-ppc: fix sync of SPR_SDR1 with KVM |
Date: |
Tue, 01 Mar 2016 19:03:10 +0100 |
User-agent: |
StGit/0.17.1-dirty |
The gdbstub can't access guest memory with current master. This is what you
get in gdb:
0x00000000100009b8 in main (argc=<error reading variable: Cannot access memory
at address 0x3fffce4d3620>, argv=<error reading variable: Cannot access memory
at address 0x3fffce4d3628>) at fp.c:11
Bisect leads to the following commit:
commit fa48b4328c39b2532e47efcfcba6d4031512f514
Author: David Gibson <address@hidden>
Date: Tue Feb 9 09:30:21 2016 +1000
target-ppc: Remove hack for ppc_hash64_load_hpte*() with HV KVM
Looking at the env->external_htab users, I've spotted a behaviour change in
kvm_arch_get_registers(), which now always calls ppc_store_sdr1().
Checking kvmppc_kern_htab, like it is done in the MMU helpers, fixes the
issue.
Signed-off-by: Greg Kurz <address@hidden>
---
target-ppc/kvm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
index d67c169ba324..dbc37f25af2b 100644
--- a/target-ppc/kvm.c
+++ b/target-ppc/kvm.c
@@ -1190,7 +1190,7 @@ int kvm_arch_get_registers(CPUState *cs)
return ret;
}
- if (!env->external_htab) {
+ if (!kvmppc_kern_htab && !env->external_htab) {
ppc_store_sdr1(env, sregs.u.s.sdr1);
}
- [Qemu-devel] [PATCH] target-ppc: fix sync of SPR_SDR1 with KVM,
Greg Kurz <=