mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
hw/virtio: move vhd->started check into helper and add FIXME
The `started` field is manipulated internally within the vhost code
except for one place, vhost-user-blk via f5b22d06fb
(vhost: recheck
dev state in the vhost_migration_log routine). Mark that as a FIXME
because it introduces a potential race. I think the referenced fix
should be tracking its state locally.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20220802095010.3330793-12-alex.bennee@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Raphael Norwitz <raphael.norwittz@nutanix.com>
This commit is contained in:
parent
9f6bcfd99f
commit
b8f3e6a18d
10 changed files with 33 additions and 13 deletions
|
@ -229,7 +229,7 @@ static void vhost_user_blk_set_status(VirtIODevice *vdev, uint8_t status)
|
|||
return;
|
||||
}
|
||||
|
||||
if (s->dev.started == should_start) {
|
||||
if (vhost_dev_is_started(&s->dev) == should_start) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -286,7 +286,7 @@ static void vhost_user_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq)
|
|||
return;
|
||||
}
|
||||
|
||||
if (s->dev.started) {
|
||||
if (vhost_dev_is_started(&s->dev)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -415,6 +415,12 @@ static void vhost_user_blk_event(void *opaque, QEMUChrEvent event)
|
|||
* the vhost migration code. If disconnect was caught there is an
|
||||
* option for the general vhost code to get the dev state without
|
||||
* knowing its type (in this case vhost-user).
|
||||
*
|
||||
* FIXME: this is sketchy to be reaching into vhost_dev
|
||||
* now because we are forcing something that implies we
|
||||
* have executed vhost_dev_stop() but that won't happen
|
||||
* until vhost_user_blk_stop() gets called from the bh.
|
||||
* Really this state check should be tracked locally.
|
||||
*/
|
||||
s->dev.started = false;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue