From: Nicholas Krause <xerofoify@xxxxxxxxx> This fixes error handling in the function csio_hws_ready for when this function calls csio_scim_cleanup_io to cleanup outstanding commands by checking if it cleaned a error code to signal internal failure and if so tell the user we are unable to clean up the outstanding io commands by printing this to the console before Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx> --- drivers/scsi/csiostor/csio_hw.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/csiostor/csio_hw.c b/drivers/scsi/csiostor/csio_hw.c index 622bdab..49c47d3 100644 --- a/drivers/scsi/csiostor/csio_hw.c +++ b/drivers/scsi/csiostor/csio_hw.c @@ -2445,11 +2445,17 @@ csio_hws_ready(struct csio_hw *hw, enum csio_hw_ev evt) csio_set_state(&hw->sm, csio_hws_quiescing); /* cleanup all outstanding cmds */ if (evt == CSIO_HWE_HBA_RESET || - evt == CSIO_HWE_PCIERR_DETECTED) - csio_scsim_cleanup_io(csio_hw_to_scsim(hw), false); - else - csio_scsim_cleanup_io(csio_hw_to_scsim(hw), true); - + evt == CSIO_HWE_PCIERR_DETECTED) { + if (csio_scsim_cleanup_io(csio_hw_to_scsim(hw), false)) { + csio_err(hw, "Unable to properly cleanup outstanding commands on this device\n"); + return; + } + } else { + if (csio_scsim_cleanup_io(csio_hw_to_scsim(hw), true)) { + csio_err(hw, "Unable to properly cleanup outstanding commands on this device\n"); + return; + } + } csio_hw_intr_disable(hw); csio_hw_mbm_cleanup(hw); csio_evtq_stop(hw); -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html