Re: [PATCH v6 05/12] PCI: liveupdate: Keep bus numbers constant during Live Update
From: Samiullah Khawaja
Date: Tue Jun 23 2026 - 13:06:23 EST
On Fri, May 22, 2026 at 08:24:03PM +0000, David Matlack wrote:
During a Live Update, preserved devices must be allowed to continue
performing memory transactions so the kernel cannot change the fabric
topology, including bus numbers, since that would require disabling
and flushing any memory transactions first.
To keep bus numbers constant, always inherit the secondary and
subordinate bus numbers assigned to bridges during scanning, instead of
assigning new ones, if any PCI devices are being preserved. Note that
the kernel inherits bus numbers even on bridges without any downstream
endpoints that were preserved. This avoids accidentally assigning a
bridge a new window that overlaps with a preserved device that is
downstream of a different bridge.
If a bridge is scanned with a broken topology or has no bus numbers
set during a Live Update, refuse to assign it new bus numbers and refuse
to enumerate devices below it until the Live Update is finished. This is
a safety measure to prevent topology conflicts.
Require that CONFIG_CARDBUS is not enabled to enable
CONFIG_PCI_LIVEUPDATE since inheriting bus numbers on PCI-to-CardBus
bridges requires additional work but is not a priority at the moment.
Signed-off-by: David Matlack <dmatlack@xxxxxxxxxx>
---
.../admin-guide/kernel-parameters.txt | 6 +-
drivers/pci/Kconfig | 2 +-
drivers/pci/liveupdate.c | 83 ++++++++++++++++++-
drivers/pci/liveupdate.h | 14 ++++
drivers/pci/probe.c | 17 +++-
include/linux/pci_liveupdate.h | 4 +
6 files changed, 119 insertions(+), 7 deletions(-)
Reviewed-by: Samiullah Khawaja <skhawaja@xxxxxxxxxx>