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

Commit e7661a8e authored by Johannes Thumshirn's avatar Johannes Thumshirn Committed by Martin K. Petersen
Browse files

scsi: return correct blkprep status code in case scsi_init_io() fails.



When instrumenting the SCSI layer to run into the
!blk_rq_nr_phys_segments(rq) case the following warning emitted from the
block layer:

blk_peek_request: bad return=-22

This happens because since commit fd3fc0b4 ("scsi: don't BUG_ON()
empty DMA transfers") we return the wrong error value from
scsi_prep_fn() back to the block layer.

[mkp: silenced checkpatch]

Signed-off-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Fixes: fd3fc0b4 scsi: don't BUG_ON() empty DMA transfers
Cc: <stable@vger.kernel.org>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Reviewed-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 785a4704
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1061,10 +1061,10 @@ int scsi_init_io(struct scsi_cmnd *cmd)
	struct scsi_device *sdev = cmd->device;
	struct request *rq = cmd->request;
	bool is_mq = (rq->mq_ctx != NULL);
	int error;
	int error = BLKPREP_KILL;

	if (WARN_ON_ONCE(!blk_rq_nr_phys_segments(rq)))
		return -EINVAL;
		goto err_exit;

	error = scsi_init_sgtable(rq, &cmd->sdb);
	if (error)