diff options
author | Alexander Bulekov <alxndr@bu.edu> | 2023-04-27 17:10:09 -0400 |
---|---|---|
committer | Thomas Huth <thuth@redhat.com> | 2023-04-28 11:31:54 +0200 |
commit | f63192b0544af5d3e4d5edfd85ab520fcf671377 (patch) | |
tree | 64eab41f7be16e93518b18c885d7e082edec4f69 /hw/scsi/scsi-bus.c | |
parent | ef56ffbdd6b0605dc1e305611287b948c970e236 (diff) | |
download | qemu-f63192b0544af5d3e4d5edfd85ab520fcf671377.zip qemu-f63192b0544af5d3e4d5edfd85ab520fcf671377.tar.gz qemu-f63192b0544af5d3e4d5edfd85ab520fcf671377.tar.bz2 |
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>
Diffstat (limited to 'hw/scsi/scsi-bus.c')
-rw-r--r-- | hw/scsi/scsi-bus.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index c971761..3c20b47 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -193,7 +193,8 @@ static void scsi_dma_restart_cb(void *opaque, bool running, RunState state) AioContext *ctx = blk_get_aio_context(s->conf.blk); /* The reference is dropped in scsi_dma_restart_bh.*/ object_ref(OBJECT(s)); - s->bh = aio_bh_new(ctx, scsi_dma_restart_bh, s); + s->bh = aio_bh_new_guarded(ctx, scsi_dma_restart_bh, s, + &DEVICE(s)->mem_reentrancy_guard); qemu_bh_schedule(s->bh); } } |