Re: [PATCH] dsa: b53: avoid 'maybe-uninitialized' warning

From: David Miller
Date: Wed Jun 29 2016 - 05:08:16 EST


From: Arnd Bergmann <arnd@xxxxxxxx>
Date: Mon, 27 Jun 2016 11:19:13 +0200

> In some configurations, gcc produces a warning for correct code
> in this driver:
...
> I have seen the warning before and at the time thought I had fixed
> it with 55e7f6abe131 ("dsa: b53: fix big-endian register access"),
> however it now came back in a different randconfig build that happens
> to have different inlining decisions in the compiler.
>
> The mistake that gcc makes here is that it thinks the second call to
> readl() might fail because the address 'reg + 4' is not a multiple
> of four despite having knowing that 'reg' itself is a multiple of four.
>
> By open-coding the two reads without the redundant alignment check,
> we can avoid the warning and produce slightly better object code, but
> get slightly longer source code instead.
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Applied, thanks Arnd.