On Fri, 15 Oct 2021 08:40:49 -0300 Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: > These days drivers with state should use cdev_device_add() and > cdev_device_del() to manage the cdev and sysfs lifetime. This simple > pattern ties all the state (vfio, dev, and cdev) together in one memory > structure and uses container_of() to navigate between the layers. > > This is a followup to the discussion here: > > https://lore.kernel.org/kvm/20210921155705.GN327412@xxxxxxxxxx/ > > This builds on Christoph's work to revise how the vfio_group works and is > against the latest VFIO tree. > > This is on github: https://github.com/jgunthorpe/linux/commits/vfio_group_cdev > > v3: > - Streamline vfio_group_find_or_alloc() > - Remove vfio_group_try_get() and just opencode the refcount_inc_not_zero > v2: https://lore.kernel.org/r/0-v2-fd9627d27b2b+26c-vfio_group_cdev_jgg@xxxxxxxxxx > - Remove comment before iommu_group_unregister_notifier() > - Add comment explaining what the WARN_ONs vfio_group_put() do > - Fix error logic around vfio_create_group() in patch 3 > - Add horizontal whitespace > - Clarify comment is refering to group->users > v1: https://lore.kernel.org/r/0-v1-fba989159158+2f9b-vfio_group_cdev_jgg@xxxxxxxxxx > > Cc: Liu Yi L <yi.l.liu@xxxxxxxxx> > Cc: "Tian, Kevin" <kevin.tian@xxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > > Jason Gunthorpe (5): > vfio: Delete vfio_get/put_group from vfio_iommu_group_notifier() > vfio: Do not open code the group list search in vfio_create_group() > vfio: Don't leak a group reference if the group already exists > vfio: Use a refcount_t instead of a kref in the vfio_group > vfio: Use cdev_device_add() instead of device_create() > > drivers/vfio/vfio.c | 381 +++++++++++++++++--------------------------- > 1 file changed, 149 insertions(+), 232 deletions(-) Applied to vfio next branch for v5.16. Thanks, Alex