diff options
author | Maxim Levitsky <mlevitsk@redhat.com> | 2020-10-06 15:38:59 +0300 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2020-10-12 11:50:50 -0400 |
commit | 2d24a64661549732fc77f632928318dd52f5bce5 (patch) | |
tree | 3e7f20a87ef9c2368db3f988fe331279cacf236a /include/io/channel-watch.h | |
parent | 7bed89958bfbf40df9ca681cefbdca63abdde39d (diff) | |
download | qemu-2d24a64661549732fc77f632928318dd52f5bce5.zip qemu-2d24a64661549732fc77f632928318dd52f5bce5.tar.gz qemu-2d24a64661549732fc77f632928318dd52f5bce5.tar.bz2 |
device-core: use RCU for list of children of a bus
This fixes the race between device emulation code that tries to find
a child device to dispatch the request to (e.g a scsi disk),
and hotplug of a new device to that bus.
Note that this doesn't convert all the readers of the list
but only these that might go over that list without BQL held.
This is a very small first step to make this code thread safe.
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20200913160259.32145-5-mlevitsk@redhat.com>
[Use RCU_READ_LOCK_GUARD in more places, adjust testcase now that
the delay in DEVICE_DELETED due to RCU is more consistent. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201006123904.610658-9-mlevitsk@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/io/channel-watch.h')
0 files changed, 0 insertions, 0 deletions