mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-22 17:01:14 +00:00
scsi: cxlflash: Reset command ioasc
commit96cf727fe8
upstream. In the event of a command failure, cxlflash returns the failure to the upper layers to process. After processing the error, when the command is queued again, the private command structure will not be zeroed and the ioasc could be stale. Per the SISLite specification, the AFU only sets the ioasc in the presence of a failure. Thus, even though the original command succeeds the second time, the command is considered a failure due to stale ioasc. This cycle repeats indefinitely and can cause a hang or IO failure. To fix the issue, clear the ioasc before queuing any command. [mkp: added Cc: stable per request] Fixes:479ad8e9d4
("scsi: cxlflash: Remove zeroing of private command data") Signed-off-by: Uma Krishnan <ukrishn@linux.vnet.ibm.com> Acked-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
5fc77964ea
commit
1dbdcf117b
1 changed files with 1 additions and 0 deletions
|
@ -620,6 +620,7 @@ static int cxlflash_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scp)
|
|||
cmd->parent = afu;
|
||||
cmd->hwq_index = hwq_index;
|
||||
|
||||
cmd->sa.ioasc = 0;
|
||||
cmd->rcb.ctx_id = hwq->ctx_hndl;
|
||||
cmd->rcb.msi = SISL_MSI_RRQ_UPDATED;
|
||||
cmd->rcb.port_sel = CHAN2PORTMASK(scp->device->channel);
|
||||
|
|
Loading…
Reference in a new issue