From: Arnd Bergmann <a...@arndb.de> 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 <a...@arndb.de> Applied, thanks Arnd.