aboutsummaryrefslogtreecommitdiffstats
path: root/rust/helpers/platform.c
diff options
context:
space:
mode:
authorTimothy Pearson <[email protected]>2025-07-15 21:39:06 +0000
committerMadhavan Srinivasan <[email protected]>2025-07-26 07:39:15 +0000
commita2a2a6fc2469524caa713036297c542746d148dc (patch)
treeb6638734376f56b17947d7fb830908455499ae88 /rust/helpers/platform.c
parentpowerpc/eeh: Make EEH driver device hotplug safe (diff)
downloadkernel-a2a2a6fc2469524caa713036297c542746d148dc.tar.gz
kernel-a2a2a6fc2469524caa713036297c542746d148dc.zip
PCI: pnv_php: Fix surprise plug detection and recovery
The existing PowerNV hotplug code did not handle surprise plug events correctly, leading to a complete failure of the hotplug system after device removal and a required reboot to detect new devices. This comes down to two issues: 1) When a device is surprise removed, often the bridge upstream port will cause a PE freeze on the PHB. If this freeze is not cleared, the MSI interrupts from the bridge hotplug notification logic will not be received by the kernel, stalling all plug events on all slots associated with the PE. 2) When a device is removed from a slot, regardless of surprise or programmatic removal, the associated PHB/PE ls left frozen. If this freeze is not cleared via a fundamental reset, skiboot is unable to clear the freeze and cannot retrain / rescan the slot. This also requires a reboot to clear the freeze and redetect the device in the slot. Issue the appropriate unfreeze and rescan commands on hotplug events, and don't oops on hotplug if pci_bus_to_OF_node() returns NULL. Signed-off-by: Timothy Pearson <[email protected]> [bhelgaas: tidy comments] Signed-off-by: Bjorn Helgaas <[email protected]> Signed-off-by: Madhavan Srinivasan <[email protected]> Link: https://patch.msgid.link/171044224.1359864.1752615546988.JavaMail.zimbra@raptorengineeringinc.com
Diffstat (limited to 'rust/helpers/platform.c')
0 files changed, 0 insertions, 0 deletions