Message ID | 20151220111608.6664.85476.stgit@bahia.local |
---|---|
State | New |
Headers | show |
20.12.2015 14:19, Greg Kurz wrote: > The aio_context_new() function does not allocate a thread pool. This is > deferred to the first call to the aio_get_thread_pool() accessor. It is > hence forbidden to access the thread_pool field directly, as it may be > NULL. The accessor *must* be used always. > > Fixes: ebac1202c95a4f1b76b6ef3f0f63926fa76e753e > Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com> Reviewed-by: Michael Tokarev <mjt@tls.msk.ru> Tested-by: Michael Tokarev <mjt@tls.msk.ru> Cc: qemu-stable@nongnu.org > Michael, > > I did not have time to reproduce the issue, and therefore to > effectively test this patch fixes it. Maybe you can do it ? Yes, it effectively fixes the issue. Meanwhile I looked at the whole thing with how thread pools are allocated, and now can add my R-b too. Thank you! /mjt
diff --git a/hw/9pfs/virtio-9p-coth.c b/hw/9pfs/virtio-9p-coth.c index fb6e8f80e0f4..ab9425c60fd2 100644 --- a/hw/9pfs/virtio-9p-coth.c +++ b/hw/9pfs/virtio-9p-coth.c @@ -36,6 +36,6 @@ static int coroutine_enter_func(void *arg) void co_run_in_worker_bh(void *opaque) { Coroutine *co = opaque; - thread_pool_submit_aio(qemu_get_aio_context()->thread_pool, + thread_pool_submit_aio(aio_get_thread_pool(qemu_get_aio_context()), coroutine_enter_func, co, coroutine_enter_cb, co); }
The aio_context_new() function does not allocate a thread pool. This is deferred to the first call to the aio_get_thread_pool() accessor. It is hence forbidden to access the thread_pool field directly, as it may be NULL. The accessor *must* be used always. Fixes: ebac1202c95a4f1b76b6ef3f0f63926fa76e753e Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com> --- Michael, I did not have time to reproduce the issue, and therefore to effectively test this patch fixes it. Maybe you can do it ? Thanks. -- Greg hw/9pfs/virtio-9p-coth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)