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/

Reply via email to