linux/drivers/pci/hotplug
Krishna Kumar 335e35b748 pci/hotplug/pnv_php: Fix hotplug driver crash on Powernv
The hotplug driver for powerpc (pci/hotplug/pnv_php.c) causes a kernel
crash when we try to hot-unplug/disable the PCIe switch/bridge from
the PHB.

The crash occurs because although the MSI data structure has been
released during disable/hot-unplug path and it has been assigned
with NULL, still during unregistration the code was again trying to
explicitly disable the MSI which causes the NULL pointer dereference and
kernel crash.

The patch fixes the check during unregistration path to prevent invoking
pci_disable_msi/msix() since its data structure is already freed.

Reported-by: Timothy Pearson <tpearson@raptorengineering.com>
Closes: https://lore.kernel.org/all/1981605666.2142272.1703742465927.JavaMail.zimbra@raptorengineeringinc.com/
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Tested-by: Shawn Anastasio <sanastasio@raptorengineering.com>
Signed-off-by: Krishna Kumar <krishnak@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240701074513.94873-2-krishnak@linux.ibm.com
2024-07-04 23:10:40 +10:00
..
acpi_pcihp.c PCI: Fix kernel-doc errors 2021-03-11 17:37:20 -06:00
acpiphp_ampere_altra.c PCI: hotplug: Add Ampere Altra Attention Indicator extension driver 2023-10-26 06:02:10 -05:00
acpiphp_core.c PCI: acpiphp: Allow built-in drivers for Attention Indicators 2023-10-25 13:05:37 -05:00
acpiphp_glue.c Revert "PCI: acpiphp: Reassign resources on bridge if necessary" 2023-12-15 14:55:10 -06:00
acpiphp_ibm.c PCI/ACPI: Replace acpi_bus_get_device() with acpi_fetch_acpi_dev() 2022-02-04 17:10:44 -06:00
acpiphp.h PCI: Remove unused function declarations 2023-08-24 15:38:59 -05:00
cpci_hotplug_core.c
cpci_hotplug_pci.c PCI: cpcihp: Declare cpci_debug in header file 2021-07-01 15:32:45 -05:00
cpci_hotplug.h PCI: Remove unused function declarations 2023-08-24 15:38:59 -05:00
cpcihp_generic.c
cpcihp_zt5550.c
cpcihp_zt5550.h
cpqphp_core.c PCI: cpqphp: Remove unused assignments 2022-03-22 11:24:40 -05:00
cpqphp_ctrl.c PCI: Use PCI_HEADER_TYPE_* instead of literals 2023-10-03 11:55:59 -05:00
cpqphp_nvram.c PCI: cpqphp: Use DEFINE_SPINLOCK() for int15_lock 2021-04-14 15:24:10 -05:00
cpqphp_nvram.h
cpqphp_pci.c PCI: Use PCI_HEADER_TYPE_* instead of literals 2023-10-03 11:55:59 -05:00
cpqphp_sysfs.c
cpqphp.h PCI: cpqphp: Use <linux/io.h> instead of <asm/io.h> 2021-11-02 14:41:58 -05:00
ibmphp_core.c PCI: ibmphp: Remove commented-out functions 2021-12-10 09:55:47 -06:00
ibmphp_ebda.c PCI: ibmphp: Fix double unmap of io_mem 2021-09-02 12:02:50 -05:00
ibmphp_hpc.c PCI: ibmphp: Remove unused assignments 2022-03-22 11:24:48 -05:00
ibmphp_pci.c PCI: Use PCI_HEADER_TYPE_* instead of literals 2023-10-03 11:55:59 -05:00
ibmphp_res.c PCI: ibmphp: Remove unused assignments 2022-03-22 11:24:48 -05:00
ibmphp.h PCI: Use PCI_HEADER_TYPE_* instead of literals 2023-10-03 11:55:59 -05:00
Kconfig PCI: hotplug: Add Ampere Altra Attention Indicator extension driver 2023-10-26 06:02:10 -05:00
Makefile PCI: hotplug: Add Ampere Altra Attention Indicator extension driver 2023-10-26 06:02:10 -05:00
pci_hotplug_core.c PCI/sysfs: Use sysfs_emit() and sysfs_emit_at() in "show" functions 2021-06-03 22:14:47 -05:00
pciehp_core.c PCI: hotplug: Use FIELD_GET/PREP() 2023-10-24 10:54:04 -05:00
pciehp_ctrl.c PCI: pciehp: Cancel bringup sequence if card is not present 2023-05-24 11:52:38 -05:00
pciehp_hpc.c PCI: hotplug: Use FIELD_GET/PREP() 2023-10-24 10:54:04 -05:00
pciehp_pci.c PCI: pciehp: Fix AB-BA deadlock between reset_lock and device_lock 2023-04-11 13:18:30 -05:00
pciehp.h PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors 2022-01-12 06:42:51 -06:00
pnv_php.c pci/hotplug/pnv_php: Fix hotplug driver crash on Powernv 2024-07-04 23:10:40 +10:00
rpadlpar_core.c PCI: hotplug: Clean up include files 2022-04-05 11:13:33 -05:00
rpadlpar_sysfs.c PCI/sysfs: Use sysfs_emit() and sysfs_emit_at() in "show" functions 2021-06-03 22:14:47 -05:00
rpadlpar.h
rpaphp_core.c PCI: Use of_property_present() for testing DT property presence 2023-04-18 16:01:37 -05:00
rpaphp_pci.c PCI: rpaphp: Error out on busy status from get-sensor-state 2023-08-18 23:30:22 +10:00
rpaphp_slot.c PCI: hotplug: Clean up include files 2022-04-05 11:13:33 -05:00
rpaphp.h
s390_pci_hpc.c s390/pci: introduce lock to synchronize state of zpci_dev's 2024-02-20 14:37:32 +01:00
shpchp_core.c PCI: Remove MODULE_LICENSE so boolean drivers don't look like modules 2023-02-17 08:47:58 -06:00
shpchp_ctrl.c pci-v5.10-changes 2020-10-22 12:41:00 -07:00
shpchp_hpc.c PCI: shpchp: Remove unused get_mode1_ECC_cap callback 2022-11-22 14:09:51 -06:00
shpchp_pci.c PCI: shpchp: Make shpchp_unconfigure_device() void 2020-05-21 15:23:20 -05:00
shpchp_sysfs.c PCI: Make pci_bus_for_each_resource() index optional 2023-04-05 15:10:09 -05:00
shpchp.h PCI: shpchp: Remove unused get_mode1_ECC_cap callback 2022-11-22 14:09:51 -06:00
TODO PCI: hotplug: Remove obsolete sgi_hotplug TODO notes 2024-05-03 16:26:50 -05:00