qemu-devel
[Top][All Lists]
Advanced

[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);
         }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]