On 26/06/2015 16:47, fred.kon...@greensocs.com wrote: > + CPU_FOREACH(cpu) { > + if (qemu_cpu_is_self(cpu)) { > + /* async_run_on_cpu handle this case but this just avoid a malloc > + * here. > + */ > + tlb_flush(cpu, flush_global); > + } else { > + params = g_malloc(sizeof(struct TLBFlushParams)); > + params->cpu = cpu; > + params->flush_global = flush_global; > + async_run_on_cpu(cpu, tlb_flush_async_work, params);
Shouldn't this be synchronous (which you cannot do straightforwardly because of deadlocks---hence the need to hook cpu_has_work as discussed earlier)? Paolo > + } > + }