Virtio 1.0 doesn't include a modern balloon device. At some point we'll likely define an incompatible interface with a different ID. But for now, it's not a big effort to support a transitional balloon device: this has the advantage of supporting existing drivers, transparently, as well as transports that don't allow mixing virtio 0 and virtio 1 devices. And balloon is an easy device to test, so it's also useful for people to test virtio core handling of transitional devices.
The only interface issue is with the stats buffer, which has misaligned fields. Seems easy to fix by prepending a 6 byte reserved field. I also had to change config structure field types from __le32 to __u32 to match other devices. This means we need a couple of __force tags for legacy path but that seems minor. Changes from v1: correctly handle config space endian-ness Michael S. Tsirkin (6): virtio_balloon: transitional interface virtio: balloon might not be a legacy device virtio_ccw: support non-legacy balloon devices virtio_mmio: support non-legacy balloon devices virtio_pci: support non-legacy balloon devices virtio: drop virtio_device_is_legacy_only include/linux/virtio.h | 2 -- include/uapi/linux/virtio_balloon.h | 11 +++++++++-- drivers/s390/kvm/virtio_ccw.c | 10 +++------- drivers/virtio/virtio.c | 6 ------ drivers/virtio/virtio_balloon.c | 29 +++++++++++++++++++++-------- drivers/virtio/virtio_mmio.c | 8 -------- drivers/virtio/virtio_pci_modern.c | 3 --- 7 files changed, 33 insertions(+), 36 deletions(-) -- MST -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/