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_rfcv2 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/063990c3-c244-1f7f-4e01-348023832066@xxxxxxxxx/T/#t [4] https://lore.kernel.org/kvm/20221123134832.429589-1-yi.l.liu@xxxxxxxxx/T/#t v2: - 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. v1: 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 (9): vfio: Set device->group in helper function vfio: Wrap group codes to be helpers for __vfio_register_dev() and unregister vfio: Make vfio_device_open() group agnostic vfio: Move device open/close code to be helpfers vfio: Swap order of vfio_device_container_register() and open_device() vfio: Refactor vfio_device_first_open() and _last_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 | 842 ++++++++++++++++++++++++++++++++++++ drivers/vfio/vfio.h | 49 ++- drivers/vfio/vfio_main.c | 896 +++------------------------------------ 5 files changed, 959 insertions(+), 849 deletions(-) create mode 100644 drivers/vfio/group.c -- 2.34.1