summaryrefslogtreecommitdiffstats
path: root/include/hw/qdev-core.h
diff options
context:
space:
mode:
authorRemy Noel2018-12-20 16:20:30 +0100
committerStefan Hajnoczi2019-01-14 15:09:41 +0100
commitfef1660132b0f25bf2d275d7f986ddcfe19a4426 (patch)
tree3aa14f19cea3740b70df72d1751d5b50200711d2 /include/hw/qdev-core.h
parentaio-posix: Unregister fd from ctx epoll when removing fd_handler. (diff)
downloadqemu-fef1660132b0f25bf2d275d7f986ddcfe19a4426.tar.gz
qemu-fef1660132b0f25bf2d275d7f986ddcfe19a4426.tar.xz
qemu-fef1660132b0f25bf2d275d7f986ddcfe19a4426.zip
aio-posix: Fix concurrent aio_poll/set_fd_handler.
It is possible for an io_poll callback to be concurrently executed along with an aio_set_fd_handlers. This can cause all sorts of problems, like a NULL callback or a bad opaque pointer. This changes set_fd_handlers so that it no longer modify existing handlers entries and instead, always insert those after having proper initialisation. Tested-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Remy Noel <remy.noel@blade-group.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 20181220152030.28035-3-remy.noel@blade-group.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'include/hw/qdev-core.h')
0 files changed, 0 insertions, 0 deletions