aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2010-03-18 09:50:38 -0400
committerJames Bottomley <James.Bottomley@suse.de>2010-04-11 10:24:09 -0400
commitffb7fef32b98fff773a5a6882ae4f8aee65a7708 (patch)
tree24d23adcebfdb89a9691b19d0967457c7ebb28b0 /drivers/message/fusion
parent48959f1eae3068fefb3de05cdc0c2bd8f0f96c37 (diff)
[SCSI] mptfusion: Proper bus_type check is added
Added proper bus_type check before processing event/ reset handler. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/message/fusion')
-rw-r--r--drivers/message/fusion/mptfc.c5
-rw-r--r--drivers/message/fusion/mptsas.c3
-rw-r--r--drivers/message/fusion/mptspi.c5
3 files changed, 12 insertions, 1 deletions
diff --git a/drivers/message/fusion/mptfc.c b/drivers/message/fusion/mptfc.c
index 33f7256055b..8b3ff2d43fb 100644
--- a/drivers/message/fusion/mptfc.c
+++ b/drivers/message/fusion/mptfc.c
@@ -1358,6 +1358,9 @@ mptfc_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
1358 unsigned long flags; 1358 unsigned long flags;
1359 int rc=1; 1359 int rc=1;
1360 1360
1361 if (ioc->bus_type != FC)
1362 return 0;
1363
1361 devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "MPT event (=%02Xh) routed to SCSI host driver!\n", 1364 devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "MPT event (=%02Xh) routed to SCSI host driver!\n",
1362 ioc->name, event)); 1365 ioc->name, event));
1363 1366
@@ -1396,7 +1399,7 @@ mptfc_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
1396 unsigned long flags; 1399 unsigned long flags;
1397 1400
1398 rc = mptscsih_ioc_reset(ioc,reset_phase); 1401 rc = mptscsih_ioc_reset(ioc,reset_phase);
1399 if (rc == 0) 1402 if ((ioc->bus_type != FC) || (!rc))
1400 return rc; 1403 return rc;
1401 1404
1402 1405
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 674461fb6a3..7f217445cd9 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -4779,6 +4779,9 @@ mptsas_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *reply)
4779 struct fw_event_work *fw_event; 4779 struct fw_event_work *fw_event;
4780 unsigned long delay; 4780 unsigned long delay;
4781 4781
4782 if (ioc->bus_type != SAS)
4783 return 0;
4784
4782 /* events turned off due to host reset or driver unloading */ 4785 /* events turned off due to host reset or driver unloading */
4783 if (ioc->fw_events_off) 4786 if (ioc->fw_events_off)
4784 return 0; 4787 return 0;
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c
index e44365193fd..8820591a693 100644
--- a/drivers/message/fusion/mptspi.c
+++ b/drivers/message/fusion/mptspi.c
@@ -1152,6 +1152,9 @@ mptspi_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
1152 u8 event = le32_to_cpu(pEvReply->Event) & 0xFF; 1152 u8 event = le32_to_cpu(pEvReply->Event) & 0xFF;
1153 struct _MPT_SCSI_HOST *hd = shost_priv(ioc->sh); 1153 struct _MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
1154 1154
1155 if (ioc->bus_type != SPI)
1156 return 0;
1157
1155 if (hd && event == MPI_EVENT_INTEGRATED_RAID) { 1158 if (hd && event == MPI_EVENT_INTEGRATED_RAID) {
1156 int reason 1159 int reason
1157 = (le32_to_cpu(pEvReply->Data[0]) & 0x00FF0000) >> 16; 1160 = (le32_to_cpu(pEvReply->Data[0]) & 0x00FF0000) >> 16;
@@ -1283,6 +1286,8 @@ mptspi_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
1283 int rc; 1286 int rc;
1284 1287
1285 rc = mptscsih_ioc_reset(ioc, reset_phase); 1288 rc = mptscsih_ioc_reset(ioc, reset_phase);
1289 if ((ioc->bus_type != SPI) || (!rc))
1290 return rc;
1286 1291
1287 /* only try to do a renegotiation if we're properly set up 1292 /* only try to do a renegotiation if we're properly set up
1288 * if we get an ioc fault on bringup, ioc->sh will be NULL */ 1293 * if we get an ioc fault on bringup, ioc->sh will be NULL */