scsi: qla2xxx: Set the SCSI command result before calling the command done
authorGiridhar Malavali <gmalavali@marvell.com>
Tue, 2 Apr 2019 21:24:20 +0000 (14:24 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 4 Apr 2019 03:11:36 +0000 (23:11 -0400)
commit740e29358e350077d18ee08700199e37b206edad
treebc48bc493ee1e9c3cc85165d4908f1d89967baf3
parentd6d189ceab75560e312ffefe6e8d423a5c3aa0e6
scsi: qla2xxx: Set the SCSI command result before calling the command done

This patch tries to address race condition between abort handler and
completion handler. When scsi command result is set by both abort and
completion handler, scsi_done() is only called after refcount on SRB
structure goes to zero. The abort handler sets this result prematurely even
when the refcount is non-zero value. Fix this by setting SCSI cmd->result
before scsi_done() is called.

Signed-off-by: Giridhar Malavali <gmalavali@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_os.c