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

From: Ionut Nechita (Wind River)

Date: Thu Feb 19 2026 - 16:27:45 EST


From: Ionut Nechita <ionut.nechita@xxxxxxxxxxxxx>

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@xxxxxxxxxxxxx/ [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