]> git.baikalelectronics.ru Git - kernel.git/commit
wireless: fix bogus maybe-uninitialized warning
authorArnd Bergmann <arnd@arndb.de>
Mon, 24 Oct 2016 15:38:35 +0000 (17:38 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 17 Nov 2016 06:46:38 +0000 (08:46 +0200)
commit3634b923c25ac6784765da709874fa6bb0193e3a
tree721660733c87a306c7e835b08a24326787537e62
parentc59c80d11637385d01d3695f7e554b90738ca7fe
wireless: fix bogus maybe-uninitialized warning

The hostap_80211_rx() function is supposed to set up the mac addresses
for four possible cases, based on two bits of input data. For
some reason, gcc decides that it's possible that none of the these
four cases apply and the addresses remain uninitialized:

drivers/net/wireless/intersil/hostap/hostap_80211_rx.c: In function ‘hostap_80211_rx’:
arch/x86/include/asm/string_32.h:77:14: warning: ‘src’ may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/net/wireless/intel/ipw2x00/libipw_rx.c: In function ‘libipw_rx’:
arch/x86/include/asm/string_32.h:77:14: error: ‘dst’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
arch/x86/include/asm/string_32.h:78:22: error: ‘*((void *)&dst+4)’ may be used uninitialized in this function [-Werror=maybe-uninitialized]

This warning is clearly nonsense, but changing the last case into
'default' makes it obvious to the compiler too, which avoids the
warning and probably leads to better object code too.

The same code is duplicated several times in the kernel, so this
patch uses the same workaround for all copies. The exact configuration
was hit only very rarely in randconfig builds and I only saw it
in three drivers, but I assume that all of them are potentially
affected, and it's better to keep the code consistent.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath6kl/wmi.c
drivers/net/wireless/intel/ipw2x00/libipw_rx.c
drivers/net/wireless/intersil/hostap/hostap_80211_rx.c
net/wireless/lib80211_crypt_tkip.c