On Thu, Aug 05 2021, Jason Gunthorpe jgg@nvidia.com 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@lst.de Signed-off-by: Jason Gunthorpe jgg@nvidia.com
drivers/vfio/pci/vfio_pci.c | 213 +++++++++++++++--------------------- 1 file changed, 89 insertions(+), 124 deletions(-)
Reviewed-by: Cornelia Huck cohuck@redhat.com