device: 0.940 socket: 0.913 files: 0.868 performance: 0.823 register: 0.787 user-level: 0.774 architecture: 0.772 graphic: 0.768 semantic: 0.766 network: 0.764 arm: 0.729 debug: 0.717 boot: 0.715 VMM: 0.712 kernel: 0.671 vnc: 0.658 PID: 0.650 ppc: 0.641 x86: 0.604 virtual: 0.601 peripherals: 0.597 permissions: 0.595 hypervisor: 0.580 risc-v: 0.577 i386: 0.538 mistranslation: 0.516 TCG: 0.511 assembly: 0.434 KVM: 0.190 vhost-device-snd does not report correctly the device conf size Description of problem: The vhost-user-snd frontend is incorrectly reporting the size of the device configuration space, which should be based on the features exposed by the device. For example, the `controls` field in the `virtio_snd_config` structure is optional and should only be included in the configuration size if the `VIRTIO_SND_F_CTLS` feature has been negotiated. This issue became apparent after commit `ab0c7fb2`, where `virtio_snd_config` was updated to include the `controls` field. The vhost-user-snd frontend, relying on this structure, started expecting `sizeof(virtio_snd_config)` when communicating with the backend, regardless of whether the `VIRTIO_SND_F_CTLS` feature was negotiated. As a result, any backend reporting a smaller configuration size—for example, one that does not support controls—cannot communicate with the frontend. We observed this problem in the vhost-device-sound rust-vmm device, which we partially fixed [here](https://github.com/rust-vmm/vhost-device/commit/8e7b7109316e1027548bc91cfcbb4b096b032c24). This behavior is incorrect because the configuration size should depend on the negotiated features. I am currently working on patch to fix this. Steps to reproduce: 1. Run vhost-device-sound ```bash cargo run --bin vhost-device-sound -- --socket=/tmp/vhost-sound.socket --backend=pipewire ``` 2. Run QEMU with the parameters above 3. In the guest run: ```bash root@syzkaller:~# aplay /usr/share/sounds/alsa/Front_Left.wav aplay: main:830: audio open error: No such file or directory ``` Additional information: