Milan Zamazal <mzama...@redhat.com> writes: > The QEMU CI fails in virtio-scmi test occasionally. As reported by > Thomas Huth, this happens most likely when the system is loaded and it > fails with the following error: > > qemu-system-aarch64: ../../devel/qemu/hw/pci/msix.c:659: > msix_unset_vector_notifiers: Assertion `dev->msix_vector_use_notifier && > dev->msix_vector_release_notifier' failed. > ../../devel/qemu/tests/qtest/libqtest.c:200: kill_qemu() detected QEMU > death from signal 6 (Aborted) (core dumped) > > As discovered by Fabiano Rosas, the cause is a duplicate invocation of > msix_unset_vector_notifiers via duplicate vu_scmi_stop calls: > > msix_unset_vector_notifiers > virtio_pci_set_guest_notifiers > vu_scmi_stop > vu_scmi_disconnect > ... > qemu_chr_write_buffer > > msix_unset_vector_notifiers > virtio_pci_set_guest_notifiers > vu_scmi_stop > vu_scmi_set_status > ... > qemu_cleanup > > While vu_scmi_stop calls are protected by vhost_dev_is_started() > check, it's apparently not enough. vhost-user-blk and vhost-user-gpio > use an extra protection, see f5b22d06fb (vhost: recheck dev state in > the vhost_migration_log routine) for the motivation. Let's use the > same in vhost-user-scmi, which fixes the failure above. > > Fixes: a5dab090e142 ("hw/virtio: Add boilerplate for vhost-user-scmi device") > Signed-off-by: Milan Zamazal <mzama...@redhat.com>
Reviewed-by: Fabiano Rosas <faro...@suse.de>