Message ID | 20210423124201.11262-1-khaledromdhani216@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [PATCH-next] fs/btrfs: Fix uninitialized variable | expand |
On Fri, Apr 23, 2021 at 01:42:01PM +0100, Khaled ROMDHANI wrote: > The variable 'zone' is uninitialized which > introduce some build warning. > > It is not always set or overwritten within > the function. So explicitly initialize it. > > Reported-by: kernel test robot <lkp@intel.com> > Signed-off-by: Khaled ROMDHANI <khaledromdhani216@gmail.com> > --- > fs/btrfs/zoned.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c > index 432509f4b3ac..42f99b25127f 100644 > --- a/fs/btrfs/zoned.c > +++ b/fs/btrfs/zoned.c > @@ -136,7 +136,7 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones, > */ > static inline u32 sb_zone_number(int shift, int mirror) > { > - u64 zone; > + u64 zone = 0; This is exactly same as v1 https://lore.kernel.org/linux-btrfs/20210413130604.11487-1-khaledromdhani216@gmail.com/ It does fix the build warning but does not make sense in the code because it would would silently let mirror == 4 pass. I think there was enough feedback under the previous posts how to fix that properly.
On Mon, Apr 26, 2021 at 10:19:29PM +0200, David Sterba wrote: > On Fri, Apr 23, 2021 at 01:42:01PM +0100, Khaled ROMDHANI wrote: > > The variable 'zone' is uninitialized which > > introduce some build warning. > > > > It is not always set or overwritten within > > the function. So explicitly initialize it. > > > > Reported-by: kernel test robot <lkp@intel.com> > > Signed-off-by: Khaled ROMDHANI <khaledromdhani216@gmail.com> > > --- > > fs/btrfs/zoned.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c > > index 432509f4b3ac..42f99b25127f 100644 > > --- a/fs/btrfs/zoned.c > > +++ b/fs/btrfs/zoned.c > > @@ -136,7 +136,7 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones, > > */ > > static inline u32 sb_zone_number(int shift, int mirror) > > { > > - u64 zone; > > + u64 zone = 0; > > This is exactly same as v1 > https://lore.kernel.org/linux-btrfs/20210413130604.11487-1-khaledromdhani216@gmail.com/ > > It does fix the build warning but does not make sense in the code > because it would would silently let mirror == 4 pass. I think there was > enough feedback under the previous posts how to fix that properly. Yes, it fixes the build warning. I implemented a tiny test program before sending the patch. In which I explicitly set 'm=5' to check the change results: [356843.099365] assertion failed: z, in /home/khaled/fs_btrfs/test3.c:30 From the above output message, I think that it catchs the assertion. Sorry, but let me know if I am missing something. I absolutly agree with you regarding the waste of memory when doing some pointless initializations. I will, come back with a V2. Thanks.
diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c index 432509f4b3ac..42f99b25127f 100644 --- a/fs/btrfs/zoned.c +++ b/fs/btrfs/zoned.c @@ -136,7 +136,7 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones, */ static inline u32 sb_zone_number(int shift, int mirror) { - u64 zone; + u64 zone = 0; ASSERT(mirror < BTRFS_SUPER_MIRROR_MAX); switch (mirror) {
The variable 'zone' is uninitialized which introduce some build warning. It is not always set or overwritten within the function. So explicitly initialize it. Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Khaled ROMDHANI <khaledromdhani216@gmail.com> --- fs/btrfs/zoned.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) base-commit: c05b2a58c9ed11bd753f1e64695bd89da715fbaa