• Alexander Duyck's avatar
    etherdev: Fix sparse error, make test usable by other functions · 2c7a88c2
    Alexander Duyck authored
    This change does two things.  First it fixes a sparse error for the fact
    that the __be16 degrades to an integer.  Since that is actually what I am
    kind of doing I am simply working around that by forcing both sides of the
    comparison to u16.
    
    Also I realized on some compilers I was generating another instruction for
    big endian systems such as PowerPC since it was masking the value before
    doing the comparison.  So to resolve that I have simply pulled the mask out
    and wrapped it in an #ifndef __BIG_ENDIAN.
    
    Lastly I pulled this all out into its own function.  I notices there are
    similar checks in a number of other places so this function can be reused
    there to help reduce overhead in these paths as well.
    Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2c7a88c2
eth.c 12.6 KB