scsi: correct return values for .eh_abort_handler implementations
The .eh_abort_handler needs to return SUCCESS, FAILED, or FAST_IO_FAIL. So fixup all callers to adhere to this requirement. Reviewed-by: Robert Elliott <elliott@hp.com> Cc: <stable@vger.kernel.org> Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
883a030f98
commit
b6c92b7e0a
|
@ -2647,14 +2647,14 @@ static void NCR5380_dma_complete(NCR5380_instance * instance) {
|
||||||
*
|
*
|
||||||
* Purpose : abort a command
|
* Purpose : abort a command
|
||||||
*
|
*
|
||||||
* Inputs : cmd - the Scsi_Cmnd to abort, code - code to set the
|
* Inputs : cmd - the Scsi_Cmnd to abort, code - code to set the
|
||||||
* host byte of the result field to, if zero DID_ABORTED is
|
* host byte of the result field to, if zero DID_ABORTED is
|
||||||
* used.
|
* used.
|
||||||
*
|
*
|
||||||
* Returns : 0 - success, -1 on failure.
|
* Returns : SUCCESS - success, FAILED on failure.
|
||||||
*
|
*
|
||||||
* XXX - there is no way to abort the command that is currently
|
* XXX - there is no way to abort the command that is currently
|
||||||
* connected, you have to wait for it to complete. If this is
|
* connected, you have to wait for it to complete. If this is
|
||||||
* a problem, we could implement longjmp() / setjmp(), setjmp()
|
* a problem, we could implement longjmp() / setjmp(), setjmp()
|
||||||
* called where the loop started in NCR5380_main().
|
* called where the loop started in NCR5380_main().
|
||||||
*
|
*
|
||||||
|
@ -2703,7 +2703,7 @@ static int NCR5380_abort(Scsi_Cmnd * cmd) {
|
||||||
* aborted flag and get back into our main loop.
|
* aborted flag and get back into our main loop.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
return 0;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -531,7 +531,7 @@ static int aha1740_eh_abort_handler (Scsi_Cmnd *dummy)
|
||||||
* quiet as possible...
|
* quiet as possible...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
return 0;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct scsi_host_template aha1740_template = {
|
static struct scsi_host_template aha1740_template = {
|
||||||
|
|
|
@ -2607,7 +2607,7 @@ static void NCR5380_reselect(struct Scsi_Host *instance)
|
||||||
* host byte of the result field to, if zero DID_ABORTED is
|
* host byte of the result field to, if zero DID_ABORTED is
|
||||||
* used.
|
* used.
|
||||||
*
|
*
|
||||||
* Returns : 0 - success, -1 on failure.
|
* Returns : SUCCESS - success, FAILED on failure.
|
||||||
*
|
*
|
||||||
* XXX - there is no way to abort the command that is currently
|
* XXX - there is no way to abort the command that is currently
|
||||||
* connected, you have to wait for it to complete. If this is
|
* connected, you have to wait for it to complete. If this is
|
||||||
|
|
|
@ -1057,7 +1057,7 @@ int esas2r_eh_abort(struct scsi_cmnd *cmd)
|
||||||
|
|
||||||
cmd->scsi_done(cmd);
|
cmd->scsi_done(cmd);
|
||||||
|
|
||||||
return 0;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_lock_irqsave(&a->queue_lock, flags);
|
spin_lock_irqsave(&a->queue_lock, flags);
|
||||||
|
|
|
@ -1945,7 +1945,7 @@ megaraid_abort_and_reset(adapter_t *adapter, Scsi_Cmnd *cmd, int aor)
|
||||||
cmd->device->id, (u32)cmd->device->lun);
|
cmd->device->id, (u32)cmd->device->lun);
|
||||||
|
|
||||||
if(list_empty(&adapter->pending_list))
|
if(list_empty(&adapter->pending_list))
|
||||||
return FALSE;
|
return FAILED;
|
||||||
|
|
||||||
list_for_each_safe(pos, next, &adapter->pending_list) {
|
list_for_each_safe(pos, next, &adapter->pending_list) {
|
||||||
|
|
||||||
|
@ -1968,7 +1968,7 @@ megaraid_abort_and_reset(adapter_t *adapter, Scsi_Cmnd *cmd, int aor)
|
||||||
(aor==SCB_ABORT) ? "ABORTING":"RESET",
|
(aor==SCB_ABORT) ? "ABORTING":"RESET",
|
||||||
scb->idx);
|
scb->idx);
|
||||||
|
|
||||||
return FALSE;
|
return FAILED;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
|
@ -1993,12 +1993,12 @@ megaraid_abort_and_reset(adapter_t *adapter, Scsi_Cmnd *cmd, int aor)
|
||||||
list_add_tail(SCSI_LIST(cmd),
|
list_add_tail(SCSI_LIST(cmd),
|
||||||
&adapter->completed_list);
|
&adapter->completed_list);
|
||||||
|
|
||||||
return TRUE;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
|
|
|
@ -2590,15 +2590,15 @@ static void NCR5380_reselect (struct Scsi_Host *instance)
|
||||||
* Purpose : abort a command
|
* Purpose : abort a command
|
||||||
*
|
*
|
||||||
* Inputs : cmd - the struct scsi_cmnd to abort, code - code to set the
|
* Inputs : cmd - the struct scsi_cmnd to abort, code - code to set the
|
||||||
* host byte of the result field to, if zero DID_ABORTED is
|
* host byte of the result field to, if zero DID_ABORTED is
|
||||||
* used.
|
* used.
|
||||||
*
|
*
|
||||||
* Returns : 0 - success, -1 on failure.
|
* Returns : SUCCESS - success, FAILED on failure.
|
||||||
*
|
*
|
||||||
* XXX - there is no way to abort the command that is currently
|
* XXX - there is no way to abort the command that is currently
|
||||||
* connected, you have to wait for it to complete. If this is
|
* connected, you have to wait for it to complete. If this is
|
||||||
* a problem, we could implement longjmp() / setjmp(), setjmp()
|
* a problem, we could implement longjmp() / setjmp(), setjmp()
|
||||||
* called where the loop started in NCR5380_main().
|
* called where the loop started in NCR5380_main().
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int NCR5380_abort(struct scsi_cmnd *cmd)
|
static int NCR5380_abort(struct scsi_cmnd *cmd)
|
||||||
|
|
Loading…
Reference in New Issue