Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aeaeb5ce authored by Christoph Hellwig's avatar Christoph Hellwig Committed by James Bottomley
Browse files

[SCSI] fusion: do not check serial_number in the abort handler



The SCSI midlayer stops all command processing when in error handling, which
means there is no chance for command reuse when the abort handler is called.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
parent a7c44d4a
Loading
Loading
Loading
Loading
+3 −5
Original line number Original line Diff line number Diff line
@@ -1773,7 +1773,6 @@ mptscsih_abort(struct scsi_cmnd * SCpnt)
	int		 scpnt_idx;
	int		 scpnt_idx;
	int		 retval;
	int		 retval;
	VirtDevice	 *vdevice;
	VirtDevice	 *vdevice;
	ulong	 	 sn = SCpnt->serial_number;
	MPT_ADAPTER	*ioc;
	MPT_ADAPTER	*ioc;


	/* If we can't locate our host adapter structure, return FAILED status.
	/* If we can't locate our host adapter structure, return FAILED status.
@@ -1859,8 +1858,7 @@ mptscsih_abort(struct scsi_cmnd * SCpnt)
			 vdevice->vtarget->id, vdevice->lun,
			 vdevice->vtarget->id, vdevice->lun,
			 ctx2abort, mptscsih_get_tm_timeout(ioc));
			 ctx2abort, mptscsih_get_tm_timeout(ioc));


	if (SCPNT_TO_LOOKUP_IDX(ioc, SCpnt) == scpnt_idx &&
	if (SCPNT_TO_LOOKUP_IDX(ioc, SCpnt) == scpnt_idx) {
	    SCpnt->serial_number == sn) {
		dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
		dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
		    "task abort: command still in active list! (sc=%p)\n",
		    "task abort: command still in active list! (sc=%p)\n",
		    ioc->name, SCpnt));
		    ioc->name, SCpnt));
@@ -1873,9 +1871,9 @@ mptscsih_abort(struct scsi_cmnd * SCpnt)
	}
	}


 out:
 out:
	printk(MYIOC_s_INFO_FMT "task abort: %s (rv=%04x) (sc=%p) (sn=%ld)\n",
	printk(MYIOC_s_INFO_FMT "task abort: %s (rv=%04x) (sc=%p)\n",
	    ioc->name, ((retval == SUCCESS) ? "SUCCESS" : "FAILED"), retval,
	    ioc->name, ((retval == SUCCESS) ? "SUCCESS" : "FAILED"), retval,
	    SCpnt, SCpnt->serial_number);
	    SCpnt);


	return retval;
	return retval;
}
}