xemu/hw/vfio
Zhenzhong Duan da3e04b26f vfio/pci: Make vfio cdev pre-openable by passing a file handle
This gives management tools like libvirt a chance to open the vfio
cdev with privilege and pass FD to qemu. This way qemu never needs
to have privilege to open a VFIO or iommu cdev node.

Together with the earlier support of pre-opening /dev/iommu device,
now we have full support of passing a vfio device to unprivileged
qemu by management tool. This mode is no more considered for the
legacy backend. So let's remove the "TODO" comment.

Add helper functions vfio_device_set_fd() and vfio_device_get_name()
to set fd and get device name, they will also be used by other vfio
devices.

There is no easy way to check if a device is mdev with FD passing,
so fail the x-balloon-allowed check unconditionally in this case.

There is also no easy way to get BDF as name with FD passing, so
we fake a name by VFIO_FD[fd].

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
2023-12-19 19:03:38 +01:00
..
Kconfig hw/vfio: Move the IGD quirk code to a separate file 2020-02-06 11:55:42 -07:00
amd-xgbe.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
ap.c vfio/container: Move IBM EEH related functions into spapr_pci_vfio.c 2023-11-06 13:23:23 +01:00
calxeda-xgmac.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
ccw.c vfio/container: Move IBM EEH related functions into spapr_pci_vfio.c 2023-11-06 13:23:23 +01:00
common.c vfio/iommufd: Implement the iommufd backend 2023-12-19 19:03:38 +01:00
container-base.c vfio/iommufd: Relax assert check for iommufd backend 2023-12-19 19:03:38 +01:00
container.c vfio/pci: Introduce a vfio pci hot reset interface 2023-12-19 19:03:38 +01:00
display.c hw/vfio: add ramfb migration support 2023-10-18 10:10:49 +02:00
helpers.c vfio/pci: Make vfio cdev pre-openable by passing a file handle 2023-12-19 19:03:38 +01:00
igd.c *: Add missing includes of qemu/error-report.h 2023-03-22 15:06:57 +00:00
iommufd.c vfio/pci: Make vfio cdev pre-openable by passing a file handle 2023-12-19 19:03:38 +01:00
meson.build vfio/iommufd: Implement the iommufd backend 2023-12-19 19:03:38 +01:00
migration.c migration: simplify notifiers 2023-10-20 08:51:41 +02:00
pci-quirks.c spapr: Remove support for NVIDIA V100 GPU with NVLink2 2023-09-18 07:25:28 -03:00
pci.c vfio/pci: Make vfio cdev pre-openable by passing a file handle 2023-12-19 19:03:38 +01:00
pci.h vfio/pci: Introduce a vfio pci hot reset interface 2023-12-19 19:03:38 +01:00
platform.c vfio/platform: Use vfio_[attach/detach]_device 2023-10-18 10:10:49 +02:00
spapr.c vfio/spapr: Move hostwin_list into spapr container 2023-12-19 19:03:38 +01:00
trace-events vfio/iommufd: Enable pci hot reset through iommufd cdev interface 2023-12-19 19:03:38 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00