mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	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
This commit is contained in:
		
							parent
							
								
									45547a0a93
								
							
						
					
					
						commit
						335e35b748
					
				
					 1 changed files with 1 additions and 2 deletions
				
			
		|  | @ -40,7 +40,6 @@ static void pnv_php_disable_irq(struct pnv_php_slot *php_slot, | |||
| 				bool disable_device) | ||||
| { | ||||
| 	struct pci_dev *pdev = php_slot->pdev; | ||||
| 	int irq = php_slot->irq; | ||||
| 	u16 ctrl; | ||||
| 
 | ||||
| 	if (php_slot->irq > 0) { | ||||
|  | @ -59,7 +58,7 @@ static void pnv_php_disable_irq(struct pnv_php_slot *php_slot, | |||
| 		php_slot->wq = NULL; | ||||
| 	} | ||||
| 
 | ||||
| 	if (disable_device || irq > 0) { | ||||
| 	if (disable_device) { | ||||
| 		if (pdev->msix_enabled) | ||||
| 			pci_disable_msix(pdev); | ||||
| 		else if (pdev->msi_enabled) | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Krishna Kumar
						Krishna Kumar