diff options
author | David Hildenbrand <dahi@linux.vnet.ibm.com> | 2014-09-30 10:57:29 +0200 |
---|---|---|
committer | Cornelia Huck <cornelia.huck@de.ibm.com> | 2014-10-10 10:37:47 +0200 |
commit | eb24f7c6896e93047f2c58ffd3ba4f453e88280b (patch) | |
tree | d8d615b55773f051b51b70a5ed9822fa91c7f338 /hw/s390x | |
parent | 75973bfe415774babe7c1e18fa682c050fdce73b (diff) | |
download | qemu-eb24f7c6896e93047f2c58ffd3ba4f453e88280b.zip qemu-eb24f7c6896e93047f2c58ffd3ba4f453e88280b.tar.gz qemu-eb24f7c6896e93047f2c58ffd3ba4f453e88280b.tar.bz2 |
s390x/kvm: proper use of the cpu states OPERATING and STOPPED
This patch makes sure that halting a cpu and stopping a cpu are two different
things. Stopping a cpu will also set the cpu halted - this is needed for common
infrastructure to work (note that the stop and stopped flag cannot be used for
our purpose because they are already used by other mechanisms).
A cpu can be halted ("waiting") when it is operating. If interrupts are
disabled, this is called a "disabled wait", as it can't be woken up anymore. A
stopped cpu is treated like a "disabled wait" cpu, but in order to prepare for a
proper cpu state synchronization with the kvm part, we need to track the real
logical state of a cpu.
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
CC: Andreas Faerber <afaerber@suse.de>
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'hw/s390x')
-rw-r--r-- | hw/s390x/ipl.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c index 4fa9cff..3b77c9a 100644 --- a/hw/s390x/ipl.c +++ b/hw/s390x/ipl.c @@ -176,7 +176,7 @@ static void s390_ipl_reset(DeviceState *dev) } } - s390_add_running_cpu(cpu); + s390_cpu_set_state(CPU_STATE_OPERATING, cpu); } static void s390_ipl_class_init(ObjectClass *klass, void *data) |