Re: [PATCH] rocker: fix Wmaybe-uninitialized false-positive

From: David Miller
Date: Wed Mar 29 2017 - 00:43:28 EST


From: Arnd Bergmann <arnd@xxxxxxxx>
Date: Tue, 28 Mar 2017 16:11:18 +0200

> 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@xxxxxxxx>

Applied, thank you.