On Tue, 25 Feb 2025 at 10:40, Michael Tokarev <m...@tls.msk.ru> wrote: > > 17.02.2025 17:07, Stefano Garzarella wrote: > > On Mon, Feb 17, 2025 at 02:12:55PM +0100, Matias Ezequiel Vara Larsen wrote: > >> Use virtio_get_config_size() rather than sizeof(struct > >> virtio_snd_config) for the config_size in the vhost-user-snd frontend. > >> The frontend shall rely on device features for the size of the device > >> configuration space. The presence of `controls` in the config space > >> depends on VIRTIO_SND_F_CTLS according to the specification (v1.3): > >> ` > >> 5.14.4 Device Configuration Layout > >> ... > >> > >> controls > >> (driver-read-only) indicates a total number of all available control > >> elements if VIRTIO_SND_F_CTLS has been negotiated. > >> ` > >> This fixes an issue introduced by commit ab0c7fb2 ("linux-headers: > >> update to current kvm/next") in which the optional field `controls` is > >> added to the virtio_snd_config structure. This breaks vhost-user-device > >> backends that do not implement the `controls` field. > >> > >> Fixes: ab0c7fb22b ("linux-headers: update to current kvm/next") > > > > If we want to backport this on stable branches, better to add: > > > > Cc: qemu-sta...@nongnu.org > > There's a problem with stable branches though: > > >> static const Property vsnd_properties[] = { > >> DEFINE_PROP_CHR("chardev", VHostUserBase, chardev), > >> + DEFINE_PROP_BIT64("controls", VHostUserBase, > >> + parent_obj.host_features, VIRTIO_SND_F_CTLS, false), > >> }; > > This change introduces an incompatible change in migration stream, > it looks like. I'm not sure how to handle this for stable branches, > is there a way?
Good point, but in hw/virtio/vhost-user-snd.c IIUC the device is marked unmigratable: static const VMStateDescription vu_snd_vmstate = { .name = "vhost-user-snd", .unmigratable = 1, }; So should we care about migration stream for this change? Thanks, Stefano