[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20170328.214258.1096589839586809714.davem@davemloft.net>
Date: Tue, 28 Mar 2017 21:42:58 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: arnd@...db.de
Cc: jiri@...nulli.us, idosch@...lanox.com, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] rocker: fix Wmaybe-uninitialized false-positive
From: Arnd Bergmann <arnd@...db.de>
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@...db.de>
Applied, thank you.
Powered by blists - more mailing lists