From: Balaji Selvanathan Date: Mon, 22 Dec 2025 09:01:05 +0000 (+0530) Subject: drivers: scsi: fix double decrement of block count in 64-bit LBA path X-Git-Tag: v2026.01-rc5~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c0add0039825fbd40620284c202f7c4569154605;p=thirdparty%2Fu-boot.git drivers: scsi: fix double decrement of block count in 64-bit LBA path The scsi_read function incorrectly decrements the block count twice when handling large disks that trigger the CONFIG_SYS_64BIT_LBA code path (reads beyond block 268,435,455). The variable 'blks' was being decremented both inside the 64-bit LBA block and after the successful scsi_exec() call, causing incorrect block count tracking and data abort errors on large capacity disks. Signed-off-by: Balaji Selvanathan Tested-by: Tony Dinh --- diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index b414d022f3f..8fe6b38a8c7 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -220,7 +220,6 @@ static ulong scsi_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt, pccb->datalen = block_dev->blksz * blocks; scsi_setup_read16(pccb, start, blocks); start += blocks; - blks -= blocks; } else #endif if (blks > max_blks) {