scsi: bnx2fc: If IO is still in cleanup then do not return to SCSI layer.
authorChad Dupuis <chad.dupuis@cavium.com>
Mon, 26 Jun 2017 15:59:36 +0000 (08:59 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 28 Jun 2017 01:39:10 +0000 (21:39 -0400)
commit5c63daf67d4753f80883672d429ff7b6595ec2f4
tree6a9654ef23b10f51a068734305b13af4ecd690df
parent59fb870f0ed4da64cbbc44f6a4dc1038be9f8904
scsi: bnx2fc: If IO is still in cleanup then do not return to SCSI layer.

In eh_abort, driver is calling scsi->done() for a IO for which cleanup is
pending. As the IO is outstanding with the firmware, it may do DMA
associated with the IO. This may lead to heap corruption.

Do not complete the IO for which cleanup is still pending. Return failure
from eh_abort and let the SCSI-ml retry the IO.

Signed-off-by: Chad Dupuis <chad.dupuis@cavium.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/bnx2fc/bnx2fc_io.c