On Thu, Aug 05 2021, Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: > Like vfio_pci_dev_set_try_reset() this code wants to reset all of the > devices in the "reset group" which is the same membership as the device > set. > > Instead of trying to reconstruct the device set from the PCI list go > directly from the device set's device list to execute the reset. > > The same basic structure as vfio_pci_dev_set_try_reset() is used. The > 'vfio_devices' struct is replaced with the device set linked list and we > simply sweep it multiple times under the lock. > > This eliminates a memory allocation and get/put traffic and another > improperly locked test of pci_dev_driver(). > > Reviewed-off-by: Christoph Hellwig <hch@xxxxxx> > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > --- > drivers/vfio/pci/vfio_pci.c | 213 +++++++++++++++--------------------- > 1 file changed, 89 insertions(+), 124 deletions(-) Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx>