From 9c47ef85ed5e9d64c3eb1561798ebbe6c81f5a71 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Thu, 4 Jan 2018 13:32:18 -0700 Subject: [PATCH] scsi: simplify LBA bounds check Only two comparisons are necessary to ensure the I/O is in range. Change-Id: I66e93abbf9b25949b3c783a47d26918362f00b93 Signed-off-by: Daniel Verkamp Reviewed-on: https://review.gerrithub.io/393698 Tested-by: SPDK Automated Test System Reviewed-by: Ben Walker Reviewed-by: Jim Harris Reviewed-by: Changpeng Liu Reviewed-by: --- lib/scsi/scsi_bdev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/scsi/scsi_bdev.c b/lib/scsi/scsi_bdev.c index 90cd1454e..e6ac66e28 100644 --- a/lib/scsi/scsi_bdev.c +++ b/lib/scsi/scsi_bdev.c @@ -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,