mpt fusion: cleanup eh handlers
Subsystems (2)
PATCH 1/2 mpt fusion: cleanup eh handlers
nice cosmetic cleaning of eh thread callback funtions
Signed-off-by Eric Moore <[email protected]>
drivers/message/fusion/mptscsih.c +77 -55
@@ -1727,20 +1727,35 @@ mptscsih_abort(struct scsi_cmnd * SCpnt)u32 ctx2abort;int scpnt_idx;int retval; -VirtDevice *vdev; +VirtDevice *vdevice;ulong sn = SCpnt->serial_number; +MPT_ADAPTER *ioc;/* If we can't locate our host adapter structure, return FAILED status. */ if ((hd = (MPT_SCSI_HOST *) SCpnt->device->host->hostdata) ==NULL ) { SCpnt->result =DID_RESET <<16 ; SCpnt->scsi_done (SCpnt); - dfailprintk((KERN_INFO MYNAM ": mptscsih_abort: " -"Can't locate host! (sc=%p)\n" , - SCpnt)); + dfailprintk((KERN_INFO MYNAM ": mptscsih_abort: Can't locate " + "host! (sc=%p)\n", SCpnt));return FAILED ; } + ioc = hd->ioc; +printk (MYIOC_s_INFO_FMT"attempting task abort! (sc=%p)\n" , + ioc->name, SCpnt); +scsi_print_command (SCpnt); + + vdevice = SCpnt->device->hostdata; +if (!vdevice || !vdevice->vtarget) { +dtmprintk ((MYIOC_s_DEBUG_FMT"task abort: device has been " +"deleted (sc=%p)\n" , ioc->name, SCpnt)); + SCpnt->result =DID_NO_CONNECT <<16 ; + SCpnt->scsi_done (SCpnt); + retval =0 ; + goto out; + } +/* Find this command */ if ((scpnt_idx =SCPNT_TO_LOOKUP_IDX (SCpnt)) <0 ) {
@@ -1749,21 +1764,20 @@ mptscsih_abort(struct scsi_cmnd * SCpnt)*/ SCpnt->result =DID_RESET <<16 ; dtmprintk((KERN_INFO MYNAM ": %s: mptscsih_abort: " -"Command not in the active list! (sc=%p)\n" , - hd->ioc->name, SCpnt)); -return SUCCESS ; +"Command not in the active list! (sc=%p)\n" , ioc->name, + SCpnt)); + retval =0 ; + goto out; } -if (hd->resetPending) -return FAILED ; +if (hd->resetPending) { + retval =FAILED ; + goto out; + }if (hd->timeouts <-1 ) hd->timeouts++; - printk(KERN_WARNING MYNAM ": %s: attempting task abort! (sc=%p)\n", - hd->ioc->name, SCpnt); -scsi_print_command (SCpnt); -/* Most important! Set TaskMsgContext to SCpnt's MsgContext! * (the IO to be ABORT'd) *
@@ -1776,18 +1790,17 @@ mptscsih_abort(struct scsi_cmnd * SCpnt) hd->abortSCpnt = SCpnt; - vdev = SCpnt->device->hostdata; retval =mptscsih_TMHandler (hd,MPI_SCSITASKMGMT_TASKTYPE_ABORT_TASK , - vdev->vtarget->channel, vdev->vtarget->id, vdev->lun, - ctx2abort,mptscsih_get_tm_timeout (hd->ioc)); + vdevice->vtarget->channel, vdevice->vtarget->id, vdevice->lun, + ctx2abort,mptscsih_get_tm_timeout (ioc));if (SCPNT_TO_LOOKUP_IDX (SCpnt) == scpnt_idx && SCpnt->serial_number == sn) retval =FAILED ; - printk (KERN_WARNING MYNAM ": %s: task abort: %s (sc=%p)\n", - hd->ioc->name, - ((retval == 0) ? "SUCCESS" : "FAILED" ), SCpnt); + out: +printk (MYIOC_s_INFO_FMT"task abort: %s (sc=%p)\n" , + ioc->name, ((retval ==0 ) ?"SUCCESS" :"FAILED" ), SCpnt);if (retval ==0 )return SUCCESS ;
@@ -1809,32 +1822,40 @@ mptscsih_dev_reset(struct scsi_cmnd * SC {MPT_SCSI_HOST *hd;int retval; -VirtDevice *vdev; +VirtDevice *vdevice; +MPT_ADAPTER *ioc;/* If we can't locate our host adapter structure, return FAILED status. */ if ((hd = (MPT_SCSI_HOST *) SCpnt->device->host->hostdata) ==NULL ){ - dtmprintk((KERN_INFO MYNAM ": mptscsih_dev_reset: " -"Can't locate host! (sc=%p)\n" , - SCpnt)); + dtmprintk((KERN_INFO MYNAM ": mptscsih_dev_reset: Can't " + "locate host! (sc=%p)\n", SCpnt));return FAILED ; } -if (hd->resetPending) -return FAILED ; - - printk(KERN_WARNING MYNAM ": %s: attempting target reset! (sc=%p)\n", - hd->ioc->name, SCpnt); + ioc = hd->ioc; +printk (MYIOC_s_INFO_FMT"attempting target reset! (sc=%p)\n" , + ioc->name, SCpnt);scsi_print_command (SCpnt); - vdev = SCpnt->device->hostdata; +if (hd->resetPending) { + retval =FAILED ; + goto out; + } + + vdevice = SCpnt->device->hostdata; +if (!vdevice || !vdevice->vtarget) { + retval =0 ; + goto out; + } + retval =mptscsih_TMHandler (hd,MPI_SCSITASKMGMT_TASKTYPE_TARGET_RESET , - vdev->vtarget->channel, vdev->vtarget->id, -0 ,0 ,mptscsih_get_tm_timeout (hd->ioc)); + vdevice->vtarget->channel, vdevice->vtarget->id,0 ,0 , +mptscsih_get_tm_timeout (ioc)); - printk (KERN_WARNING MYNAM ": %s: target reset: %s (sc=%p)\n", - hd->ioc->name, - ((retval == 0) ? "SUCCESS" : "FAILED" ), SCpnt); + out: +printk (MYIOC_s_INFO_FMT"target reset: %s (sc=%p)\n" , + ioc->name, ((retval ==0 ) ?"SUCCESS" :"FAILED" ), SCpnt);if (retval ==0 )return SUCCESS ;
@@ -1858,18 +1879,19 @@ mptscsih_bus_reset(struct scsi_cmnd * SCMPT_SCSI_HOST *hd;int retval;VirtDevice *vdev; +MPT_ADAPTER *ioc;/* If we can't locate our host adapter structure, return FAILED status. */ if ((hd = (MPT_SCSI_HOST *) SCpnt->device->host->hostdata) ==NULL ){ - dtmprintk((KERN_INFO MYNAM ": mptscsih_bus_reset: " -"Can't locate host! (sc=%p)\n" , - SCpnt ) ); + dtmprintk((KERN_INFO MYNAM ": mptscsih_bus_reset: Can't " + "locate host! (sc=%p)\n", SCpnt ));return FAILED ; } - printk(KERN_WARNING MYNAM ": %s: attempting bus reset! (sc=%p)\n", - hd->ioc->name, SCpnt); + ioc = hd->ioc; +printk (MYIOC_s_INFO_FMT"attempting bus reset! (sc=%p)\n" , + ioc->name, SCpnt);scsi_print_command (SCpnt);if (hd->timeouts <-1 )
@@ -1877,11 +1899,10 @@ mptscsih_bus_reset(struct scsi_cmnd * SC vdev = SCpnt->device->hostdata; retval =mptscsih_TMHandler (hd,MPI_SCSITASKMGMT_TASKTYPE_RESET_BUS , - vdev->vtarget->channel,0 ,0 ,0 ,mptscsih_get_tm_timeout (hd->ioc)); + vdev->vtarget->channel,0 ,0 ,0 ,mptscsih_get_tm_timeout (ioc)); - printk (KERN_WARNING MYNAM ": %s: bus reset: %s (sc=%p)\n", - hd->ioc->name, - ((retval == 0) ? "SUCCESS" : "FAILED" ), SCpnt); +printk (MYIOC_s_INFO_FMT"bus reset: %s (sc=%p)\n" , + ioc->name, ((retval ==0 ) ?"SUCCESS" :"FAILED" ), SCpnt);if (retval ==0 )return SUCCESS ;
@@ -1902,37 +1923,38 @@ int mptscsih_host_reset(struct scsi_cmnd *SCpnt) {MPT_SCSI_HOST * hd; -int status =SUCCESS ; +int retval; +MPT_ADAPTER *ioc;/* If we can't locate the host to reset, then we failed. */ if ((hd = (MPT_SCSI_HOST *) SCpnt->device->host->hostdata) ==NULL ){ - dtmprintk( ( KERN_INFO MYNAM ": mptscsih_host_reset: " -"Can't locate host! (sc=%p)\n" , - SCpnt ) ); + dtmprintk( ( KERN_INFO MYNAM ": mptscsih_host_reset: Can't " + "locate host! (sc=%p)\n", SCpnt));return FAILED ; } - printk(KERN_WARNING MYNAM ": %s: Attempting host reset! (sc=%p)\n", - hd->ioc->name, SCpnt); + ioc = hd->ioc; +printk (MYIOC_s_INFO_FMT"attempting host reset! (sc=%p)\n" , + ioc->name, SCpnt);/* If our attempts to reset the host failed, then return a failed * status. The host will be taken off line by the SCSI mid-layer. */ -if (mpt_HardResetHandler (hd->ioc,CAN_SLEEP ) <0 ){ - status =FAILED ; +if (mpt_HardResetHandler (hd->ioc,CAN_SLEEP ) <0 ) { + retval =FAILED ; }else {/* Make sure TM pending is cleared and TM state is set to * NONE. */ + retval =0 ; hd->tmPending =0 ; hd->tmState =TM_STATE_NONE ; } - dtmprintk( ( KERN_INFO MYNAM ": mptscsih_host_reset: " -"Status = %s\n" , - (status == SUCCESS) ? "SUCCESS" : "FAILED" ) ); +printk (MYIOC_s_INFO_FMT"host reset: %s (sc=%p)\n" , + ioc->name, ((retval ==0 ) ?"SUCCESS" :"FAILED" ), SCpnt); -return status; +return retval; }/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/