mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-06 13:23:18 +00:00
scsi: fas216: Translate message to host byte status
Instead of setting the message byte translate it to the appropriate host byte. As error recovery would return DID_ERROR for any non-zero message byte the translation doesn't change the error handling. [mkp: zeroday bug report: s/SCpnt->result/SCpnt/] Link: https://lore.kernel.org/r/20210427083046.31620-33-hare@suse.de Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
ac87ee0ac1
commit
7f33f56b02
@ -2042,8 +2042,10 @@ fas216_std_done(FAS216_Info *info, struct scsi_cmnd *SCpnt, unsigned int result)
|
||||
{
|
||||
info->stats.fins += 1;
|
||||
|
||||
SCpnt->result = result << 16 | info->scsi.SCp.Message << 8 |
|
||||
info->scsi.SCp.Status;
|
||||
set_host_byte(SCpnt, result);
|
||||
if (result == DID_OK)
|
||||
scsi_msg_to_host_byte(SCpnt, info->scsi.SCp.Message);
|
||||
set_status_byte(SCpnt, info->scsi.SCp.Status);
|
||||
|
||||
fas216_log_command(info, LOG_CONNECT, SCpnt,
|
||||
"command complete, result=0x%08x", SCpnt->result);
|
||||
@ -2051,8 +2053,7 @@ fas216_std_done(FAS216_Info *info, struct scsi_cmnd *SCpnt, unsigned int result)
|
||||
/*
|
||||
* If the driver detected an error, we're all done.
|
||||
*/
|
||||
if (host_byte(SCpnt->result) != DID_OK ||
|
||||
msg_byte(SCpnt->result) != COMMAND_COMPLETE)
|
||||
if (get_host_byte(SCpnt) != DID_OK)
|
||||
goto done;
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user