summaryrefslogtreecommitdiffstats
path: root/target-arm
diff options
context:
space:
mode:
authorChristoffer Dall2014-05-27 14:37:43 +0200
committerPeter Maydell2014-05-27 14:55:39 +0200
commit00d0f7cb6617f50be90e7dbb90a83d87b33f7695 (patch)
tree0e74f1eb3ef10dc25d77d4ba43b643a188f2017c /target-arm
parentMerge remote-tracking branch 'remotes/qmp-unstable/queue/qmp' into staging (diff)
downloadqemu-00d0f7cb6617f50be90e7dbb90a83d87b33f7695.tar.gz
qemu-00d0f7cb6617f50be90e7dbb90a83d87b33f7695.tar.xz
qemu-00d0f7cb6617f50be90e7dbb90a83d87b33f7695.zip
target-arm: Fix segfault on startup when KVM enabled
Commit 50a2c6e55fa introduced a bug where QEMU would segfault on startup when using KVM on ARM hosts, because kvm_arm_reset_cpu() accesses cpu->cpreg_reset_values, which is not allocated before kvm_arch_init_vcpu(). Fix this by not calling cpu_reset() until after qemu_init_vcpu(). Acked-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Andreas Faerber <afaerber@suse.de> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org> Message-id: 1401194263-13010-1-git-send-email-christoffer.dall@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target-arm')
-rw-r--r--target-arm/cpu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index 6c6f2b3d46..794dcb9fb7 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -370,8 +370,8 @@ static void arm_cpu_realizefn(DeviceState *dev, Error **errp)
init_cpreg_list(cpu);
- cpu_reset(cs);
qemu_init_vcpu(cs);
+ cpu_reset(cs);
acc->parent_realize(dev, errp);
}