summaryrefslogtreecommitdiffstats
path: root/cpus.c
diff options
context:
space:
mode:
authorAnthony Liguori2012-10-22 20:26:23 +0200
committerAnthony Liguori2012-10-22 20:26:23 +0200
commitf526f3c315d7c3ff7b7db39ae3a49f91d3a9986b (patch)
treedd24e41606c7bd9b53513571ed3b7864d71d237c /cpus.c
parentMerge remote-tracking branch 'qemu-kvm/memory/dma' into staging (diff)
parentcpus: create qemu_in_vcpu_thread() (diff)
downloadqemu-f526f3c315d7c3ff7b7db39ae3a49f91d3a9986b.tar.gz
qemu-f526f3c315d7c3ff7b7db39ae3a49f91d3a9986b.tar.xz
qemu-f526f3c315d7c3ff7b7db39ae3a49f91d3a9986b.zip
Merge remote-tracking branch 'quintela/migration-next-20121017' into staging
* quintela/migration-next-20121017: (41 commits) cpus: create qemu_in_vcpu_thread() savevm: make qemu_file_put_notify() return errors savevm: un-export qemu_file_set_error() block-migration: handle errors with the return codes correctly block-migration: Switch meaning of return value block-migration: make flush_blks() return errors buffered_file: buffered_put_buffer() don't need to set last_error savevm: Only qemu_fflush() can generate errors savevm: make qemu_fill_buffer() be consistent savevm: unexport qemu_ftell() savevm: unfold qemu_fclose_internal() savevm: make qemu_fflush() return an error code savevm: Remove qemu_fseek() virtio-net: use qemu_get_buffer() in a temp buffer savevm: unexport qemu_fflush migration: make migrate_fd_wait_for_unfreeze() return errors buffered_file: make buffered_flush return the error code buffered_file: callers of buffered_flush() already check for errors buffered_file: We can access directly to bandwidth_limit buffered_file: unfold migrate_fd_close ...
Diffstat (limited to 'cpus.c')
-rw-r--r--cpus.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/cpus.c b/cpus.c
index 750a76fbc8..191cbf5f6d 100644
--- a/cpus.c
+++ b/cpus.c
@@ -898,6 +898,11 @@ int qemu_cpu_is_self(void *_env)
return qemu_thread_is_self(cpu->thread);
}
+static bool qemu_in_vcpu_thread(void)
+{
+ return cpu_single_env && qemu_cpu_is_self(cpu_single_env);
+}
+
void qemu_mutex_lock_iothread(void)
{
if (!tcg_enabled()) {
@@ -943,7 +948,7 @@ void pause_all_vcpus(void)
penv = penv->next_cpu;
}
- if (!qemu_thread_is_self(&io_thread)) {
+ if (qemu_in_vcpu_thread()) {
cpu_stop_current();
if (!kvm_enabled()) {
while (penv) {
@@ -1060,7 +1065,7 @@ void cpu_stop_current(void)
void vm_stop(RunState state)
{
- if (!qemu_thread_is_self(&io_thread)) {
+ if (qemu_in_vcpu_thread()) {
qemu_system_vmstop_request(state);
/*
* FIXME: should not return to device code in case