[SCSI] mptfusion: Proper bus_type check is added
authorKashyap, Desai <kashyap.desai@lsi.com>
Thu, 18 Mar 2010 13:50:38 +0000 (19:20 +0530)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 11 Apr 2010 14:24:09 +0000 (09:24 -0500)
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>
drivers/message/fusion/mptfc.c
drivers/message/fusion/mptsas.c
drivers/message/fusion/mptspi.c

index 33f7256..8b3ff2d 100644 (file)
@@ -1358,6 +1358,9 @@ mptfc_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
        unsigned long flags;
        int rc=1;
 
+       if (ioc->bus_type != FC)
+               return 0;
+
        devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "MPT event (=%02Xh) routed to SCSI host driver!\n",
                        ioc->name, event));
 
@@ -1396,7 +1399,7 @@ mptfc_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
        unsigned long   flags;
 
        rc = mptscsih_ioc_reset(ioc,reset_phase);
-       if (rc == 0)
+       if ((ioc->bus_type != FC) || (!rc))
                return rc;
 
 
index 674461f..7f21744 100644 (file)
@@ -4779,6 +4779,9 @@ mptsas_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *reply)
        struct fw_event_work *fw_event;
        unsigned long delay;
 
+       if (ioc->bus_type != SAS)
+               return 0;
+
        /* events turned off due to host reset or driver unloading */
        if (ioc->fw_events_off)
                return 0;
index e443651..8820591 100644 (file)
@@ -1152,6 +1152,9 @@ mptspi_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
        u8 event = le32_to_cpu(pEvReply->Event) & 0xFF;
        struct _MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
 
+       if (ioc->bus_type != SPI)
+               return 0;
+
        if (hd && event ==  MPI_EVENT_INTEGRATED_RAID) {
                int reason
                        = (le32_to_cpu(pEvReply->Data[0]) & 0x00FF0000) >> 16;
@@ -1283,6 +1286,8 @@ mptspi_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
        int rc;
 
        rc = mptscsih_ioc_reset(ioc, reset_phase);
+       if ((ioc->bus_type != SPI) || (!rc))
+               return rc;
 
        /* only try to do a renegotiation if we're properly set up
         * if we get an ioc fault on bringup, ioc->sh will be NULL */