virtio-pci: Introduce APIs to execute legacy IO admin commands
authorYishai Hadas <yishaih@nvidia.com>
Tue, 19 Dec 2023 09:32:44 +0000 (11:32 +0200)
committerAlex Williamson <alex.williamson@redhat.com>
Tue, 19 Dec 2023 18:51:33 +0000 (11:51 -0700)
commitc3fc3e098bd64c560dde49a6e72b21b055150abe
tree5ec5f9c2d20616e98c9d0f4ba73ce86acb8d471b
parentf51e146f1e5c9de02433e51f5a344556502d9c6a
virtio-pci: Introduce APIs to execute legacy IO admin commands

Introduce APIs to execute legacy IO admin commands.

It includes: io_legacy_read/write for both common and the device
configuration, io_legacy_notify_info.

In addition, exposing an API to check whether the legacy IO commands are
supported. (i.e. virtio_pci_admin_has_legacy_io()).

Those APIs will be used by the next patches from this series.

Note:
Unlike modern drivers which support hardware virtio devices, legacy
drivers assume software-based devices: e.g. they don't use proper memory
barriers on ARM, use big endian on PPC, etc. X86 drivers are mostly ok
though, more or less by chance. For now, only support legacy IO on X86.

Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Yishai Hadas <yishaih@nvidia.com>
Link: https://lore.kernel.org/r/20231219093247.170936-7-yishaih@nvidia.com
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/virtio/Makefile
drivers/virtio/virtio_pci_admin_legacy_io.c [new file with mode: 0644]
drivers/virtio/virtio_pci_common.c
drivers/virtio/virtio_pci_common.h
include/linux/virtio_pci_admin.h [new file with mode: 0644]