Message ID | 20230324020838.67149-1-zhanggenjian@kylinos.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: fix uninitialized variable warning | expand |
On 2023/3/24 10:08, Genjian wrote: > From: Genjian Zhang <zhanggenjian@kylinos.cn> > > 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@kylinos.cn> > Signed-off-by: Genjian Zhang <zhanggenjian@kylinos.cn> > --- > 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. Thanks, Qu > struct btrfs_inode_info info; > > ret = get_inode_info(sctx->send_root, ino, &info); > diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c > index 7823168c08a6..7163c98e47be 100644 > --- a/fs/btrfs/volumes.c > +++ b/fs/btrfs/volumes.c > @@ -2609,7 +2609,7 @@ int btrfs_init_new_device(struct btrfs_fs_info *fs_info, const char *device_path > struct block_device *bdev; > struct super_block *sb = fs_info->sb; > struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; > - struct btrfs_fs_devices *seed_devices; > + struct btrfs_fs_devices *seed_devices = NULL; > u64 orig_super_total_bytes; > u64 orig_super_num_devices; > int ret = 0;
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@kylinos.cn> > > > > 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@kylinos.cn> > > Signed-off-by: Genjian Zhang <zhanggenjian@kylinos.cn> > > --- > > 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.
On Fri, Mar 24, 2023 at 10:35 AM David Sterba <dsterba@suse.cz> 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@kylinos.cn> > > > > > > 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@kylinos.cn> > > > Signed-off-by: Genjian Zhang <zhanggenjian@kylinos.cn> > > > --- > > > 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 ) Thanks, Genjian.
On 2023/3/24 11:05, genjian zhang wrote: > On Fri, Mar 24, 2023 at 10:35 AM David Sterba <dsterba@suse.cz> 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@kylinos.cn> >>>> >>>> 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@kylinos.cn> >>>> Signed-off-by: Genjian Zhang <zhanggenjian@kylinos.cn> >>>> --- >>>> 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.
On Fri, Mar 24, 2023 at 12:24 PM Qu Wenruo <wqu@suse.com> wrote: > > > > On 2023/3/24 11:05, genjian zhang wrote: > > On Fri, Mar 24, 2023 at 10:35 AM David Sterba <dsterba@suse.cz> 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@kylinos.cn> > >>>> > >>>> 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@kylinos.cn> > >>>> Signed-off-by: Genjian Zhang <zhanggenjian@kylinos.cn> > >>>> --- > >>>> 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. OK, thank you for your suggestion and reply.
On Fri, Mar 24, 2023 at 10:08:38AM +0800, Genjian wrote: > From: Genjian Zhang <zhanggenjian@kylinos.cn> > > compiler warning: > > ../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@kylinos.cn> > Signed-off-by: Genjian Zhang <zhanggenjian@kylinos.cn> The warnings are still reported by other build reports so I'll apply this patch. If you have found more please send a patch or I can update this one once applied. Thanks.
On Fri, Apr 7, 2023 at 3:12 AM David Sterba <dsterba@suse.cz> wrote: > > On Fri, Mar 24, 2023 at 10:08:38AM +0800, Genjian wrote: > > From: Genjian Zhang <zhanggenjian@kylinos.cn> > > > > compiler warning: > > > > ../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@kylinos.cn> > > Signed-off-by: Genjian Zhang <zhanggenjian@kylinos.cn> > > The warnings are still reported by other build reports so I'll apply > this patch. If you have found more please send a patch or I can update > this one once applied. Thanks. Sorry for the late reply. At present, only this one has been found. Thanks.
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; struct btrfs_inode_info info; ret = get_inode_info(sctx->send_root, ino, &info); diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 7823168c08a6..7163c98e47be 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -2609,7 +2609,7 @@ int btrfs_init_new_device(struct btrfs_fs_info *fs_info, const char *device_path struct block_device *bdev; struct super_block *sb = fs_info->sb; struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; - struct btrfs_fs_devices *seed_devices; + struct btrfs_fs_devices *seed_devices = NULL; u64 orig_super_total_bytes; u64 orig_super_num_devices; int ret = 0;