On Tue, Jul 20, 2021 at 02:42:56PM -0300, Jason Gunthorpe wrote: > Like vfio_pci_try_bus_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_try_bus_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(). Looks fine. But oh gad is that locking scheme awful.. Signed-off-by: Christoph Hellwig <hch@xxxxxx>