mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-26 19:42:33 -06:00
hw: replace most qemu_bh_new calls with qemu_bh_new_guarded
This protects devices from bh->mmio reentrancy issues.
Thanks: Thomas Huth <thuth@redhat.com> for diagnosing OS X test failure.
Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20230427211013.2994127-5-alxndr@bu.edu>
Signed-off-by: Thomas Huth <thuth@redhat.com>
(cherry picked from commit f63192b054
)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
db56206f78
commit
fd9de51ea3
25 changed files with 66 additions and 33 deletions
|
@ -1141,7 +1141,8 @@ static void usb_host_nodev_bh(void *opaque)
|
|||
static void usb_host_nodev(USBHostDevice *s)
|
||||
{
|
||||
if (!s->bh_nodev) {
|
||||
s->bh_nodev = qemu_bh_new(usb_host_nodev_bh, s);
|
||||
s->bh_nodev = qemu_bh_new_guarded(usb_host_nodev_bh, s,
|
||||
&DEVICE(s)->mem_reentrancy_guard);
|
||||
}
|
||||
qemu_bh_schedule(s->bh_nodev);
|
||||
}
|
||||
|
@ -1739,7 +1740,8 @@ static int usb_host_post_load(void *opaque, int version_id)
|
|||
USBHostDevice *dev = opaque;
|
||||
|
||||
if (!dev->bh_postld) {
|
||||
dev->bh_postld = qemu_bh_new(usb_host_post_load_bh, dev);
|
||||
dev->bh_postld = qemu_bh_new_guarded(usb_host_post_load_bh, dev,
|
||||
&DEVICE(dev)->mem_reentrancy_guard);
|
||||
}
|
||||
qemu_bh_schedule(dev->bh_postld);
|
||||
dev->bh_postld_pending = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue