Skip to content
  • Arnd Bergmann's avatar
    wireless: fix bogus maybe-uninitialized warning · 10f3366b
    Arnd Bergmann authored
    
    
    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: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    10f3366b