summaryrefslogtreecommitdiffstats
path: root/target-s390x
diff options
context:
space:
mode:
authorDavid Hildenbrand2014-08-28 13:58:52 +0200
committerChristian Borntraeger2014-09-01 09:23:02 +0200
commit159855f098489160df9cb13ce1667a4d6dd76895 (patch)
tree783587b25ea7fccd6bae32ceb531f1269d33d47d /target-s390x
parents390x/kvm: execute "system reset" cpu resets on the vcpu thread (diff)
downloadqemu-159855f098489160df9cb13ce1667a4d6dd76895.tar.gz
qemu-159855f098489160df9cb13ce1667a4d6dd76895.tar.xz
qemu-159855f098489160df9cb13ce1667a4d6dd76895.zip
s390x/kvm: execute the first cpu reset on the vcpu thread
As all full cpu resets currently call into the kernel to do initial cpu reset, let's run this reset (triggered by cpu_s390x_init()) on the proper vcpu thread. Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'target-s390x')
-rw-r--r--target-s390x/cpu.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c
index 4633282764..505a2fa3da 100644
--- a/target-s390x/cpu.c
+++ b/target-s390x/cpu.c
@@ -175,7 +175,11 @@ static void s390_cpu_realizefn(DeviceState *dev, Error **errp)
S390CPUClass *scc = S390_CPU_GET_CLASS(dev);
qemu_init_vcpu(cs);
+#if !defined(CONFIG_USER_ONLY)
+ run_on_cpu(cs, s390_do_cpu_full_reset, cs);
+#else
cpu_reset(cs);
+#endif
scc->parent_realize(dev, errp);
}