From 94c1a20fe78c0d3ba44ee8674b91163dddad0d80 Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Tue, 7 Aug 2012 09:58:34 -0700 Subject: [PATCH] ext2fs: fix warning: 'blocknxt' may be used uninitialized with gcc 4.2 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The above warning was introduced originally in 436da3c "ext2load: increase read speed" and fixed for newer toolchains in b803273 "ext2fs: fix warning: 'blocknxt' may be used uninitialized". This change did not fix the warning with gcc 4.2, as found in ELDK 4.2. If we rework the while loop to initalize blocknxt before entering the warning really goes away. Tested on am335x with an approx 7mb file and crc32 in U-Boot befor and after this change. Cc: Wolfgang Denk Cc: Eric Nelson Cc: Thierry Reding Cc: Jason Cooper Cc: Andreas Bießmann Cc: Reinhard Arlt Cc: Kim Phillips Signed-off-by: Tom Rini --- fs/ext2/ext2fs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/ext2/ext2fs.c b/fs/ext2/ext2fs.c index 182f0acaca..418404e606 100644 --- a/fs/ext2/ext2fs.c +++ b/fs/ext2/ext2fs.c @@ -440,9 +440,8 @@ int ext2fs_read_file /* grab middle blocks in one go */ if (i != pos / blocksize && i < blockcnt - 1 && blockcnt > 3) { int oldblk = blknr; - int blocknxt; + int blocknxt = ext2fs_read_block(node, i + 1); while (i < blockcnt - 1) { - blocknxt = ext2fs_read_block(node, i + 1); if (blocknxt == (oldblk + 1)) { oldblk = blocknxt; i++; @@ -450,6 +449,7 @@ int ext2fs_read_file blocknxt = ext2fs_read_block(node, i); break; } + blocknxt = ext2fs_read_block(node, i); } if (oldblk == blknr) -- 2.39.5