2017-03-28 04:40:37

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: build warning after merge of the md tree

Hi Shaohua,

After merging the md tree, today's linux-next build (powerpc
pseries_le_defconfig) produced this warning:

drivers/md/raid1.c: In function 'raid1d':
drivers/md/raid1.c:2172:9: warning: 'page_len$' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (memcmp(page_address(ppages[j]),
^
drivers/md/raid1.c:2160:7: note: 'page_len$' was declared here
int page_len[RESYNC_PAGES];
^

Introduced by commit

60928a91b0b3 ("md: raid1: use bio helper in process_checks()")

--
Cheers,
Stephen Rothwell


2017-03-28 08:18:42

by Ming Lei

[permalink] [raw]
Subject: Re: linux-next: build warning after merge of the md tree

Hi,

On Tue, Mar 28, 2017 at 03:40:22PM +1100, Stephen Rothwell wrote:
> Hi Shaohua,
>
> After merging the md tree, today's linux-next build (powerpc
> pseries_le_defconfig) produced this warning:
>
> drivers/md/raid1.c: In function 'raid1d':
> drivers/md/raid1.c:2172:9: warning: 'page_len$' may be used uninitialized in this function [-Wmaybe-uninitialized]
> if (memcmp(page_address(ppages[j]),
> ^
> drivers/md/raid1.c:2160:7: note: 'page_len$' was declared here
> int page_len[RESYNC_PAGES];
> ^
>
> Introduced by commit
>
> 60928a91b0b3 ("md: raid1: use bio helper in process_checks()")

It is a false positive, and looks we have to initialize it for killing
the warning since I don't find a annotation for addressing uninitialized
array.

So how about the following patch?

---

>From 73fd5ba571465d764fc0cf73fc4169d222dd676a Mon Sep 17 00:00:00 2001
From: Ming Lei <[email protected]>
Date: Tue, 28 Mar 2017 16:09:13 +0800
Subject: [PATCH] md: raid1: kill warning on powerpc_pseries

This patch kills the warning reported on powerpc_pseries,
and actually we don't need the initialization.

After merging the md tree, today's linux-next build (powerpc
pseries_le_defconfig) produced this warning:

drivers/md/raid1.c: In function 'raid1d':
drivers/md/raid1.c:2172:9: warning: 'page_len$' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (memcmp(page_address(ppages[j]),
^
drivers/md/raid1.c:2160:7: note: 'page_len$' was declared here
int page_len[RESYNC_PAGES];
^

Signed-off-by: Ming Lei <[email protected]>
---
drivers/md/raid1.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index 3c13286190c1..7e6350334d8e 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -2172,7 +2172,7 @@ static void process_checks(struct r1bio *r1_bio)
struct page **ppages = get_resync_pages(pbio)->pages;
struct page **spages = get_resync_pages(sbio)->pages;
struct bio_vec *bi;
- int page_len[RESYNC_PAGES];
+ int page_len[RESYNC_PAGES] = { 0 };

if (sbio->bi_end_io != end_sync_read)
continue;
--
2.9.3


2017-03-28 15:49:31

by Shaohua Li

[permalink] [raw]
Subject: Re: linux-next: build warning after merge of the md tree

On Tue, Mar 28, 2017 at 04:17:55PM +0800, Ming Lei wrote:
> Hi,
>
> On Tue, Mar 28, 2017 at 03:40:22PM +1100, Stephen Rothwell wrote:
> > Hi Shaohua,
> >
> > After merging the md tree, today's linux-next build (powerpc
> > pseries_le_defconfig) produced this warning:
> >
> > drivers/md/raid1.c: In function 'raid1d':
> > drivers/md/raid1.c:2172:9: warning: 'page_len$' may be used uninitialized in this function [-Wmaybe-uninitialized]
> > if (memcmp(page_address(ppages[j]),
> > ^
> > drivers/md/raid1.c:2160:7: note: 'page_len$' was declared here
> > int page_len[RESYNC_PAGES];
> > ^
> >
> > Introduced by commit
> >
> > 60928a91b0b3 ("md: raid1: use bio helper in process_checks()")
>
> It is a false positive, and looks we have to initialize it for killing
> the warning since I don't find a annotation for addressing uninitialized
> array.
>
> So how about the following patch?

thanks, added.

> ---
>
> From 73fd5ba571465d764fc0cf73fc4169d222dd676a Mon Sep 17 00:00:00 2001
> From: Ming Lei <[email protected]>
> Date: Tue, 28 Mar 2017 16:09:13 +0800
> Subject: [PATCH] md: raid1: kill warning on powerpc_pseries
>
> This patch kills the warning reported on powerpc_pseries,
> and actually we don't need the initialization.
>
> After merging the md tree, today's linux-next build (powerpc
> pseries_le_defconfig) produced this warning:
>
> drivers/md/raid1.c: In function 'raid1d':
> drivers/md/raid1.c:2172:9: warning: 'page_len$' may be used uninitialized in this function [-Wmaybe-uninitialized]
> if (memcmp(page_address(ppages[j]),
> ^
> drivers/md/raid1.c:2160:7: note: 'page_len$' was declared here
> int page_len[RESYNC_PAGES];
> ^
>
> Signed-off-by: Ming Lei <[email protected]>
> ---
> drivers/md/raid1.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
> index 3c13286190c1..7e6350334d8e 100644
> --- a/drivers/md/raid1.c
> +++ b/drivers/md/raid1.c
> @@ -2172,7 +2172,7 @@ static void process_checks(struct r1bio *r1_bio)
> struct page **ppages = get_resync_pages(pbio)->pages;
> struct page **spages = get_resync_pages(sbio)->pages;
> struct bio_vec *bi;
> - int page_len[RESYNC_PAGES];
> + int page_len[RESYNC_PAGES] = { 0 };
>
> if (sbio->bi_end_io != end_sync_read)
> continue;
> --
> 2.9.3
>
>