Re: [PATCH] btrfs: fix uninitialized variable warning

From: Qu Wenruo
Date: Fri Mar 24 2023 - 00:24:59 EST




On 2023/3/24 11:05, genjian zhang wrote:
On Fri, Mar 24, 2023 at 10:35 AM David Sterba <dsterba@xxxxxxx> wrote:

On Fri, Mar 24, 2023 at 10:24:55AM +0800, Qu Wenruo wrote:
On 2023/3/24 10:08, Genjian wrote:
From: Genjian Zhang <zhanggenjian@xxxxxxxxxx>

compiler warning:

Compiler version please.


../fs/btrfs/volumes.c: In function ‘btrfs_init_new_device’:
../fs/btrfs/volumes.c:2703:3: error: ‘seed_devices’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
2703 | btrfs_setup_sprout(fs_info, seed_devices);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

../fs/btrfs/send.c: In function ‘get_cur_inode_state’:
../include/linux/compiler.h:70:32: error: ‘right_gen’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
70 | (__if_trace.miss_hit[1]++,1) : \
| ^
../fs/btrfs/send.c:1878:6: note: ‘right_gen’ was declared here
1878 | u64 right_gen;
| ^~~~~~~~~

Initialize the uninitialized variables.

Reported-by: k2ci <kernel-bot@xxxxxxxxxx>
Signed-off-by: Genjian Zhang <zhanggenjian@xxxxxxxxxx>
---
fs/btrfs/send.c | 2 +-
fs/btrfs/volumes.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index e5c963bb873d..af2e153543a5 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -1875,7 +1875,7 @@ static int get_cur_inode_state(struct send_ctx *sctx, u64 ino, u64 gen,
int left_ret;
int right_ret;
u64 left_gen;
- u64 right_gen;
+ u64 right_gen = 0;

IIRC this is not my first time explaining why this is a false alert.

Thus please report your compiler version first.

This is probably because of the -Wmaybe-uninitialized we enabled, on
some combination of architecture and compiler. While I'm also interested
in the compiler and version we need to fix the warnings before 6.3 final.
We'd be gettting the warnings and reports/patches, which is wasting
peoples' time, it's not a big deal to initialize the variables. But
still I also want to know which version reports that.

aarch64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110 and
aarch64-linux-gnu-gcc (7.3.0-20190804.h30.ky10.aarch64 )

Latest GCC 10.x is already 10.3, and 7.x is already 7.5.

Either report to your distro and let them update the toolchain, or find a way to make your bot shut up on the false alert.


Thanks,

Genjian.