Commit 9c47ef85 authored by Daniel Verkamp's avatar Daniel Verkamp Committed by Jim Harris
Browse files

scsi: simplify LBA bounds check



Only two comparisons are necessary to ensure the I/O is in range.

Change-Id: I66e93abbf9b25949b3c783a47d26918362f00b93
Signed-off-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-on: https://review.gerrithub.io/393698


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatar <shuhei.matsumoto.xt@hitachi.com>
parent e45437ab
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -1298,8 +1298,7 @@ spdk_bdev_scsi_read_write_lba_check(struct spdk_scsi_task *task,
				    uint64_t lba, uint64_t cmd_num_blocks,
				    uint64_t bdev_num_blocks)
{
	if (lba >= bdev_num_blocks || cmd_num_blocks > bdev_num_blocks ||
	    lba > (bdev_num_blocks - cmd_num_blocks)) {
	if (bdev_num_blocks <= lba || bdev_num_blocks - lba < cmd_num_blocks) {
		SPDK_DEBUGLOG(SPDK_LOG_SCSI, "end of media\n");
		spdk_scsi_task_set_status(task, SPDK_SCSI_STATUS_CHECK_CONDITION,
					  SPDK_SCSI_SENSE_ILLEGAL_REQUEST,