[PATCH v2 0/1] PCI/IOV: Add reentrant locking in sriov_add_vfs/sriov_del_vfs

Ionut Nechita (Wind River) posted 1 patch 1 month, 1 week ago
There is a newer version of this series
drivers/pci/iov.c   |  7 +++++++
drivers/pci/probe.c | 19 +++++++++++++++++++
include/linux/pci.h |  2 ++
3 files changed, 28 insertions(+)
[PATCH v2 0/1] PCI/IOV: Add reentrant locking in sriov_add_vfs/sriov_del_vfs
Posted by Ionut Nechita (Wind River) 1 month, 1 week ago
From: Ionut Nechita <ionut.nechita@windriver.com>

Hi,

This is v2 of the patch adding owner-tracked reentrant locking for
pci_rescan_remove_lock in sriov_add_vfs() and sriov_del_vfs(), to
serialize VF addition/removal against concurrent hotplug events
(including platform-generated events on s390) without deadlocking
on paths that already hold the lock.

v1 was tested by Benjamin Block on s390 with lockdep enabled, including
hot-unplug events and driver unbind paths, with no splats or deadlocks.

Changes in v2 (all based on review feedback from Benjamin Block):
 - Renamed from pci_lock_rescan_remove_nested() to
   pci_lock_rescan_remove_reentrant() to avoid confusion with
   mutex_lock_nested() lockdep annotations
 - Added pci_unlock_rescan_remove_reentrant(const bool locked) helper
   to avoid open-coding conditional unlock at each call site
 - Moved declarations from drivers/pci/pci.h to include/linux/pci.h
   alongside existing lock/unlock declarations
 - Simplified callers: removed negation of return value and manual
   conditional unlock in favor of the paired lock/unlock helpers

Link: https://lore.kernel.org/linux-pci/
  20260214193235.262219-5-ionut.nechita@windriver.com/ [v1]

Ionut Nechita (1):
  PCI/IOV: Add reentrant locking in sriov_add_vfs/sriov_del_vfs for
    complete serialization

 drivers/pci/iov.c   |  7 +++++++
 drivers/pci/probe.c | 19 +++++++++++++++++++
 include/linux/pci.h |  2 ++
 3 files changed, 28 insertions(+)

--
2.53.0