mptsas: add mptsas_shutdown to call pci_disable_msi
Subsystems (2)
PATCH 1/1 mptsas: add mptsas_shutdown to call pci_disable_msi
this change
| commit 23a274c8a5adafc74a66f16988776fc7dd6f6e51 | Author: Prakash, Sathya <[email protected]> | Date: Fri Mar 7 15:53:21 2008 +0530 | | [SCSI] mpt fusion: Enable MSI by default for SAS controllers | | This patch modifies the driver to enable MSI by default for all SAS chips. |
cause kexec RHEL 5.1 kernel fail.
root casue: the rhel 5.1 kernel still use INTx emulation.
and mptscsih_shutdown doesn't call pci_disable_msi to reenable INTx on kexec path
so try to call mptsas_remove in mptsas_shutdown.
then pci_disable_msi will be called via mptsas_remove==>mptscih_remove==> mpt_detach.
Signed-off-by Yinghai Lu <[email protected]>
CC Prakash, Sathya <[email protected]>
CC "Moore, Eric" <[email protected]>
drivers/message/fusion/mptsas.c +6 -1
@@ -3327,6 +3327,11 @@ static void __devexit mptsas_remove(strumptscsih_remove (pdev); } +static void mptsas_shutdown (struct pci_dev *pdev) +{ +mptsas_remove (pdev); +} +static struct pci_device_id mptsas_pci_table[] = { {PCI_VENDOR_ID_LSI_LOGIC ,MPI_MANUFACTPAGE_DEVID_SAS1064 ,PCI_ANY_ID ,PCI_ANY_ID },
@@ -3348,7 +3353,7 @@ static struct pci_driver mptsas_driver = .id_table = mptsas_pci_table, .probe = mptsas_probe, .remove = __devexit_p(mptsas_remove), - .shutdown = mptscsih_shutdown, + .shutdown = mptsas_shutdown, #ifdef CONFIG_PM .suspend = mptscsih_suspend, .resume = mptscsih_resume,