Hi, Gentle ping on patch
On Tue, Jun 9, 2026, 11:47 AM Munkhbaatar Enkhbaatar <[email protected]> wrote: > Hi, > > Just a gentle ping on this patch. > > It fixes a virtio-sound assertion with packed=on by rebuilding existing > vring caches when VIRTIO_F_RING_PACKED changes. The issue is tracked here: > > https://gitlab.com/qemu-project/qemu/-/work_items/3466 > > Please let me know if any changes are needed. > > Thanks, > Munkhbaatar > > > On 7 May 2026, at 22:51, Munkhbaatar Enkhbaatar <[email protected]> > wrote: > > > > A guest can enable a virtqueue before feature negotiation completes, so > > virtio_queue_set_rings() creates caches before VIRTIO_F_RING_PACKED is > > loaded into guest_features. > > Packed rings need a writable descriptor cache because used descriptors > are > > written back into the descriptor ring. If the cache was created as a > split > > ring cache, this can later trigger an assertion. > > Rebuild existing vring caches when VIRTIO_F_RING_PACKED changes, as > already > > done for VIRTIO_RING_F_EVENT_IDX. > > > > Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3466 > > > > Signed-off-by: Munkhbaatar Enkhbaatar <[email protected]> > > --- > > hw/virtio/virtio.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c > > index 63e2faee99..14e7dd70be 100644 > > --- a/hw/virtio/virtio.c > > +++ b/hw/virtio/virtio.c > > @@ -3223,8 +3223,9 @@ int virtio_set_features_ex(VirtIODevice *vdev, > const uint64_t *features) > > } > > > > ret = virtio_set_features_nocheck(vdev, features); > > - if (virtio_vdev_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX)) { > > + if (virtio_vdev_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX) || > virtio_vdev_has_feature(vdev, VIRTIO_F_RING_PACKED)) { > > /* VIRTIO_RING_F_EVENT_IDX changes the size of the caches. */ > > + /* VIRTIO_F_RING_PACKED changes the cache->is_write value. */ > > int i; > > for (i = 0; i < VIRTIO_QUEUE_MAX; i++) { > > if (vdev->vq[i].vring.num != 0) { > > -- > > 2.50.1 (Apple Git-155) > > > >
