Changelog:
v5:
- ap: fix missing return
- ccw: remove vbasedev->sysfsdev g_strdup_printf(), remove name local
var
- container.c: restored !vbasedev->container check in
vfio_detach_device()
- pci.c: removed vbasedev->name deallocation in error path as this is
handled in instance_finalize function
v4:
- include qemu/error-report.h in helpers.c
- in ap.c, fix the wrongly added
vfio_detach_device(vbasedev) and g_free(vbasedev->name);
also added error_prepend
- simplified vbasedev setting in ccw.c
- vfio_detach_device: dropped check on
!vbasedev->container
- container.c: restore dropped comment
v3:
- rebased on vfio-next as suggested by Cedric
- added vfio/common: Propagate KVM_SET_DEVICE_ATTR error if any
- collected Cedric's R-b
- Fix some error paths in vfio/cpi which now properly detach the device
and also free the vbasedev->name
- Fix vfio/ccw migration (hopefully) [Matthew inputs]
- Split [PATCH v2 11/12] vfio/common: Introduce two kinds of VFIO
device lists
into 3 patches
v2:
- Refine patch description per Eric
- return errno and errp in vfio_kvm_device_[add/del]_fd per Eric
- make memory listener register/deregister in seperate patch per Eric
- Include the .h file first per Cédric
- Add trace event in vfio_attach_device per Cédric
- drop the change to vfio_viommu_preset by refactor per Cédric
- Introduce global VFIO device list and per container list per Alex
Note changelog below are from full IOMMUFD series:
v1:
- Alloc hwpt instead of using auto hwpt
- elaborate iommufd code per Nicolin
- consolidate two patches and drop as.c
- typo error fix and function rename
rfcv4:
- rebase on top of v8.0.3
- Add one patch from Yi which is about vfio device add in kvm
- Remove IOAS_COPY optimization and focus on functions in this patchset
- Fix wrong name issue reported and fix suggested by Matthew
- Fix compilation issue reported and fix sugggsted by Nicolin
- Use query_dirty_bitmap callback to replace get_dirty_bitmap for better
granularity
- Add dev_iter_next() callback to avoid adding so many callback
at container scope, add VFIODevice.hwpt to support that
- Restore all functions back to common from container whenever possible,
mainly migration and reset related functions
- Add --enable/disable-iommufd config option, enabled by default in
linux
- Remove VFIODevice.hwpt_next as it's redundant with VFIODevice.next
- Adapt new VFIO_DEVICE_PCI_HOT_RESET uAPI for IOMMUFD backed device
- vfio_kvm_device_add/del_group call vfio_kvm_device_add/del_fd to
remove
redundant code
- Add FD passing support for vfio device backed by IOMMUFD
- Fix hot unplug resource leak issue in vfio_legacy_detach_device()
- Fix FD leak in vfio_get_devicefd()
rfcv3:
- rebase on top of v7.2.0
- Fix the compilation with CONFIG_IOMMUFD unset by using true classes
for
VFIO backends
- Fix use after free in error path, reported by Alister
- Split common.c in several steps to ease the review
rfcv2:
- remove the first three patches of rfcv1
- add open cdev helper suggested by Jason
- remove the QOMification of the VFIOContainer and simply use
standard ops
(David)
- add "-object iommufd" suggested by Alex
Eric Auger (7):
scripts/update-linux-headers: Add iommufd.h
vfio/common: Propagate KVM_SET_DEVICE_ATTR error if any
vfio/common: Introduce vfio_container_add|del_section_window()
vfio/pci: Introduce vfio_[attach/detach]_device
vfio/platform: Use vfio_[attach/detach]_device
vfio/ap: Use vfio_[attach/detach]_device
vfio/ccw: Use vfio_[attach/detach]_device
Yi Liu (2):
vfio/common: Move IOMMU agnostic helpers to a separate file
vfio/common: Move legacy VFIO backend code into separate container.c
Zhenzhong Duan (6):
linux-headers: Add iommufd.h
vfio/common: Extract out vfio_kvm_device_[add/del]_fd
vfio/common: Move VFIO reset handler registration to a group agnostic
function
vfio/common: Introduce a per container device list
vfio/common: Store the parent container in VFIODevice
vfio/common: Introduce a global VFIODevice list
include/hw/vfio/vfio-common.h | 60 +-
linux-headers/linux/iommufd.h | 444 ++++++++
hw/vfio/ap.c | 67 +-
hw/vfio/ccw.c | 117 +-
hw/vfio/common.c | 1851 ++-----------------------------
hw/vfio/container.c | 1161 +++++++++++++++++++
hw/vfio/helpers.c | 612 ++++++++++
hw/vfio/pci.c | 66 +-
hw/vfio/platform.c | 43 +-
hw/vfio/meson.build | 2 +
hw/vfio/trace-events | 4 +-
scripts/update-linux-headers.sh | 3 +-
12 files changed, 2456 insertions(+), 1974 deletions(-)
create mode 100644 linux-headers/linux/iommufd.h
create mode 100644 hw/vfio/container.c
create mode 100644 hw/vfio/helpers.c