• Arnd Bergmann's avatar
    rocker: fix Wmaybe-uninitialized false-positive · 16b8b6de
    Arnd Bergmann authored
    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: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    16b8b6de
rocker_ofdpa.c 81.5 KB