Re: [PATCH] Revert "md: raid1: use bio helper in process_checks()"

From: Arnd Bergmann
Date: Tue Mar 28 2017 - 07:36:02 EST


On Tue, Mar 28, 2017 at 12:44 PM, Ming Lei <tom.leiming@xxxxxxxxx> wrote:
> On Tue, Mar 28, 2017 at 5:49 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
>> Commit 60928a91b0b3 ("md: raid1: use bio helper in process_checks()")
>> is probably correct, but I get a new compile-time warning after
>> it, and have trouble understanding what it fixes:
>>
>> drivers/md/raid1.c: In function 'sync_request_write':
>> drivers/md/raid1.c:2172:9: error: 'page_len$' may be used uninitialized in this function [-Werror=maybe-uninitialized]
>> if (memcmp(page_address(ppages[j]),
>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> page_address(spages[j]),
>> ~~~~~~~~~~~~~~~~~~~~~~~~
>> page_len[j]))
>> ~~~~~~~~~~~~
>> drivers/md/raid1.c:2160:7: note: 'page_len$' was declared here
>> int page_len[RESYNC_PAGES];
>> ^~~~~~~~
>>
>> This reverts it to resolve the warning.
>
> Please try the following patch:
>
> https://lkml.org/lkml/2017/3/28/126


That patch will certainly shut up the warning, but will also prevent
the compiler from warning when the function gets changed in some
way that actually leads to an uninitialized use of the page_len array,
which is why I didn't suggest doing it that way.

Arnd