diff options
author | Sergio Lopez | 2019-09-16 13:24:12 +0200 |
---|---|---|
committer | Stefan Hajnoczi | 2019-10-08 15:28:25 +0200 |
commit | 9b92fbcf45ed6ed1daceba8480b0d9e8a327b5ce (patch) | |
tree | b1789ad658e461960ad9b8774985a759e236a935 /qemu-img.c | |
parent | util/ioc.c: try to reassure Coverity about qemu_iovec_init_extended (diff) | |
download | qemu-9b92fbcf45ed6ed1daceba8480b0d9e8a327b5ce.tar.gz qemu-9b92fbcf45ed6ed1daceba8480b0d9e8a327b5ce.tar.xz qemu-9b92fbcf45ed6ed1daceba8480b0d9e8a327b5ce.zip |
virtio-blk: schedule virtio_notify_config to run on main context
virtio_notify_config() needs to acquire the global mutex, which isn't
allowed from an iothread, and may lead to a deadlock like this:
- main thead
* Has acquired: qemu_global_mutex.
* Is trying the acquire: iothread AioContext lock via
AIO_WAIT_WHILE (after aio_poll).
- iothread
* Has acquired: AioContext lock.
* Is trying to acquire: qemu_global_mutex (via
virtio_notify_config->prepare_mmio_access).
If virtio_blk_resize() is called from an iothread, schedule
virtio_notify_config() to be run in the main context BH.
[Removed unnecessary newline as suggested by Kevin Wolf
<kwolf@redhat.com>.
--Stefan]
Signed-off-by: Sergio Lopez <slp@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Message-id: 20190916112411.21636-1-slp@redhat.com
Message-Id: <20190916112411.21636-1-slp@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'qemu-img.c')
0 files changed, 0 insertions, 0 deletions