Andrea Bolognani writes: > On Mon, 2019-07-29 at 14:57 +0200, Sergio Lopez wrote: > [...] >> /* virtio-mmio device */ >> >> static Property virtio_mmio_properties[] = { >> DEFINE_PROP_BOOL("format_transport_address", VirtIOMMIOProxy, >> format_transport_address, true), >> + DEFINE_PROP_BOOL("modern", VirtIOMMIOProxy, modern, false), >> DEFINE_PROP_END_OF_LIST(), >> }; > > Not a QEMU developer so forgive me if I say something silly, but IIUC > you'd be able to opt into the new feature by using eg. > > -device virtio-net-device,modern=on > > However, virtio-pci devices already have a mechanism to control the > VirtIO protocol version, where you use > > -device virtio-net-pci,disable-modern=no,disable-legacy=yes > > to get a VirtIO 1.x-only device and > > -device virtio-net-pci,disable-modern=no,disable-legacy=no > > for a transitional device. > > Can you please make sure virtio-mmio uses the existing interface > instead of introducing a new one? The problem here is that virtio-pci devices register an specific type for each kind of supported device (virtio-net-pci, virtio-blk-pci...), while virtio-mmio doesn't. This saves a lot of boilerplate, but also implies that bus properties can't be passed through the attached device (virtio-blk-device can't carry properties for it's virtio-mmio parent bus). Sergio.