rocker: fix Wmaybe-uninitialized false-positive
authorArnd Bergmann <arnd@arndb.de>
Tue, 28 Mar 2017 14:11:18 +0000 (16:11 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 29 Mar 2017 04:42:32 +0000 (21:42 -0700)
commit16b8b6de32572207abeb4dfb74ab7bd8409a5690
tree80b548f5995aa6149d1bc89bf4663d7c32381c24
parente497ec680c4cd51e76bfcdd49363d9ab8d32a757
rocker: fix Wmaybe-uninitialized false-positive

gcc-7 reports a warning that earlier versions did not have:

drivers/net/ethernet/rocker/rocker_ofdpa.c: In function 'ofdpa_port_stp_update':
arch/x86/include/asm/string_32.h:79:22: error: '*((void *)&prev_ctrls+4)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   *((short *)to + 2) = *((short *)from + 2);
   ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/rocker/rocker_ofdpa.c:2218:7: note: '*((void *)&prev_ctrls+4)' was declared here

This is clearly a variation of the warning about 'prev_state' that
was shut up using uninitialized_var().

We can slightly simplify the code and get rid of the warning by unconditionally
saving the prev_state and prev_ctrls variables. The inlined memcpy is not
particularly expensive here, as it just has to read five bytes from one or
two cache lines.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/rocker/rocker_ofdpa.c