With the introduction of iommufd[1], VFIO is towarding to provide device centric uAPI after adapting to iommufd. With this trend, existing VFIO group infrastructure is optional once VFIO converted to device centric. This series moves the group specific code out of vfio_main.c, prepares for compiling group infrastructure out after adding vfio device cdev[2] Complete code in below branch: https://github.com/yiliu1765/iommufd/commits/vfio_group_split_v1 This is based on Jason's "Connect VFIO to IOMMUFD"[3] and my "Make mdev driver dma_unmap callback tolerant to unmaps come before device open"[4] [1] https://lore.kernel.org/all/0-v5-4001c2997bd0+30c-iommufd_jgg@xxxxxxxxxx/ [2] https://github.com/yiliu1765/iommufd/tree/wip/vfio_device_cdev [3] https://lore.kernel.org/kvm/0-v4-42cd2eb0e3eb+335a-vfio_iommufd_jgg@xxxxxxxxxx/ [4] https://lore.kernel.org/kvm/20221129105831.466954-1-yi.l.liu@xxxxxxxxx/ v1: - Keep the iommufd code in vfio_main.c just move group code out (Jason) - Add r-b from Kevin - Reorder the patch sequence - Drop "vfio: Make vfio_device_open() group agnostic" rfcv2: https://lore.kernel.org/kvm/20221124122702.26507-1-yi.l.liu@xxxxxxxxx/ - Remove device->group reference in vfio_main.c suggested by Jason. - Cherry-pick the patches in Alex's vfio/next branch, and rebased this series on the top. rfcv1: https://lore.kernel.org/kvm/20221123150113.670399-1-yi.l.liu@xxxxxxxxx/T/#t Regards, Yi Liu Jason Gunthorpe (2): vfio: Simplify vfio_create_group() vfio: Move the sanity check of the group to vfio_create_group() Yi Liu (8): vfio: Create wrappers for group register/unregister vfio: Set device->group in helper function vfio: Swap order of vfio_device_container_register() and open_device() vfio: Move device open/close code to be helpfers vfio: Refactor vfio_device open and close vfio: Wrap vfio group module init/clean code into helpers vfio: Refactor dma APIs for emulated devices vfio: Move vfio group specific code into group.c drivers/vfio/Makefile | 1 + drivers/vfio/container.c | 20 +- drivers/vfio/group.c | 877 +++++++++++++++++++++++++++++++++++++ drivers/vfio/vfio.h | 54 ++- drivers/vfio/vfio_main.c | 909 +++------------------------------------ 5 files changed, 986 insertions(+), 875 deletions(-) create mode 100644 drivers/vfio/group.c -- 2.34.1