mptfusion: Fix Incorrect return value in mptscsih_dev_reset
Subsystems (2)
PATCH 5/6 mptfusion: Fix Incorrect return value in mptscsih_dev_reset
There's a branch at the end of this function that is supposed to normalize the return value with what the mid-layer expects. In this one case, we get it wrong.
Also increase the verbosity of the INFO level printk at the end of mptscsih_abort to include the actual return value and the scmd->serial_number. The reason being success or failure is actually determined by the state of
the internal tag list when a TMF is issued, and not the return value of the TMF cmd. The serial_number is also used in this decision, thus it's useful to know for debugging purposes.
Signed-off-by Peter M. Petrakis <[email protected]>
Acked-by Kashyap Desai <[email protected]>
---
drivers/message/fusion/mptscsih.c +4 -3
@@ -1873,8 +1873,9 @@ mptscsih_abort(struct scsi_cmnd * SCpnt) } out: -printk (MYIOC_s_INFO_FMT"task abort: %s (sc=%p)\n" , - ioc->name, ((retval ==SUCCESS ) ?"SUCCESS" :"FAILED" ), SCpnt); +printk (MYIOC_s_INFO_FMT"task abort: %s (rv=%04x) (sc=%p) (sn=%ld)\n" , + ioc->name, ((retval ==SUCCESS ) ?"SUCCESS" :"FAILED" ), retval, + SCpnt, SCpnt->serial_number);return retval; }
@@ -1911,7 +1912,7 @@ mptscsih_dev_reset(struct scsi_cmnd * SCpnt) vdevice = SCpnt->device->hostdata;if (!vdevice || !vdevice->vtarget) { - retval =SUCCESS ; + retval =0 ; goto out; }