[U-Boot] [PATCH] scsi: fix compiler warning with DEBUG and 48bit LBAs

Commit 2b42c9317db ("ahci: support LBA48 data reads for 2+TB drives") introduced conditional code which triggers a warning when compiled with DEBUG enabled:
In file included from common/cmd_scsi.c:12:0: common/cmd_scsi.c: In function 'scsi_read': include/common.h:109:4: warning: 'smallblks' may be used uninitialized in this function [-Wmaybe-uninitialized] ...
Since this is for debug only, take the easy way and initialize the variable explicitly on declaration to avoid the warning. (Fix a nearby whitespace error on the way.)
Signed-off-by: Andre Przywara osp@andrep.de --- Hi,
Bin: Sorry for the late reply, does that fix your problem?
Tom: Can you take this for 2015.07? Admittedly a quick fix (the debug output for big disks would be bogus). If you are interested: I have a proper solution unfiying all three blocks and fixing the problem properly, but I guess that's nothing for this release still.
Cheers, Andre.
common/cmd_scsi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c index aaca3e8..31c4319 100644 --- a/common/cmd_scsi.c +++ b/common/cmd_scsi.c @@ -368,7 +368,7 @@ static ulong scsi_read(int device, lbaint_t blknr, lbaint_t blkcnt, { lbaint_t start, blks; uintptr_t buf_addr; - unsigned short smallblks; + unsigned short smallblks = 0; ccb* pccb=(ccb *)&tempccb; device&=0xff; /* Setup device @@ -391,7 +391,7 @@ static ulong scsi_read(int device, lbaint_t blknr, lbaint_t blkcnt, scsi_setup_read16(pccb, start, blocks); start += blocks; blks -= blocks; - } else + } else #endif if (blks > SCSI_MAX_READ_BLK) { pccb->datalen=scsi_dev_desc[device].blksz * SCSI_MAX_READ_BLK;

On Thu, Jul 2, 2015 at 8:04 AM, Andre Przywara osp@andrep.de wrote:
Commit 2b42c9317db ("ahci: support LBA48 data reads for 2+TB drives") introduced conditional code which triggers a warning when compiled with DEBUG enabled:
In file included from common/cmd_scsi.c:12:0: common/cmd_scsi.c: In function 'scsi_read': include/common.h:109:4: warning: 'smallblks' may be used uninitialized in this function [-Wmaybe-uninitialized] ...
Since this is for debug only, take the easy way and initialize the variable explicitly on declaration to avoid the warning. (Fix a nearby whitespace error on the way.)
Signed-off-by: Andre Przywara osp@andrep.de
Tested-by: Bin Meng bmeng.cn@gmail.com
Hi,
Bin: Sorry for the late reply, does that fix your problem?
Tom: Can you take this for 2015.07? Admittedly a quick fix (the debug output for big disks would be bogus). If you are interested: I have a proper solution unfiying all three blocks and fixing the problem properly, but I guess that's nothing for this release still.
Cheers, Andre.
common/cmd_scsi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c index aaca3e8..31c4319 100644 --- a/common/cmd_scsi.c +++ b/common/cmd_scsi.c @@ -368,7 +368,7 @@ static ulong scsi_read(int device, lbaint_t blknr, lbaint_t blkcnt, { lbaint_t start, blks; uintptr_t buf_addr;
unsigned short smallblks;
unsigned short smallblks = 0; ccb* pccb=(ccb *)&tempccb; device&=0xff; /* Setup device
@@ -391,7 +391,7 @@ static ulong scsi_read(int device, lbaint_t blknr, lbaint_t blkcnt, scsi_setup_read16(pccb, start, blocks); start += blocks; blks -= blocks;
} else
} else
#endif if (blks > SCSI_MAX_READ_BLK) { pccb->datalen=scsi_dev_desc[device].blksz * SCSI_MAX_READ_BLK; -- 1.8.4
Regards, Bin
participants (2)
-
Andre Przywara
-
Bin Meng