[PATCH] mptsas: add mptsas_shutdown to call pci_disable_msi

From: Yinghai Lu
Date: Tue Apr 22 2008 - 22:45:33 EST



this change

| commit 23a274c8a5adafc74a66f16988776fc7dd6f6e51
| Author: Prakash, Sathya <sathya.prakash@xxxxxxx>
| 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 <yhlu.kernel@xxxxxxxxx>
CC: Prakash, Sathya <sathya.prakash@xxxxxxx>
CC: "Moore, Eric" <Eric.Moore@xxxxxxx>

Index: linux-2.6/drivers/message/fusion/mptsas.c
===================================================================
--- linux-2.6.orig/drivers/message/fusion/mptsas.c
+++ linux-2.6/drivers/message/fusion/mptsas.c
@@ -3327,6 +3327,11 @@ static void __devexit mptsas_remove(stru
mptscsih_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,
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/