• Paul Burton's avatar
    net: ti: cpmac: Fix compiler warning due to type confusion · 8003ac65
    Paul Burton authored
    commit 2f5281ba upstream.
    
    cpmac_start_xmit() used the max() macro on skb->len (an unsigned int)
    and ETH_ZLEN (a signed int literal). This led to the following compiler
    warning:
    
      In file included from include/linux/list.h:8:0,
                       from include/linux/module.h:9,
                       from drivers/net/ethernet/ti/cpmac.c:19:
      drivers/net/ethernet/ti/cpmac.c: In function 'cpmac_start_xmit':
      include/linux/kernel.h:748:17: warning: comparison of distinct pointer
      types lacks a cast
        (void) (&_max1 == &_max2);  \
                       ^
      drivers/net/ethernet/ti/cpmac.c:560:8: note: in expansion of macro 'max'
        len = max(skb->len, ETH_ZLEN);
              ^
    
    On top of this, it assigned the result of the max() macro to a signed
    integer whilst all further uses of it result in it being cast to varying
    widths of unsigned integer.
    
    Fix this up by using max_t to ensure the comparison is performed as
    unsigned integers, and for consistency change the type of the len
    variable to unsigned int.
    Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    8003ac65
cpmac.c 34 KB