• Alex Elder's avatar
    net: qualcomm: rmnet: don't use C bit-fields in rmnet checksum header · 86ca860e
    Alex Elder authored
    Replace the use of C bit-fields in the rmnet_map_ul_csum_header
    structure with a single two-byte (big endian) structure member,
    and use masks to encode or get values within it.  The content of
    these fields can be accessed using simple bitwise AND and OR
    operations on the (host byte order) value of the new structure
    member.
    
    Previously rmnet_map_ipv4_ul_csum_header() would update C bit-field
    values in host byte order, then forcibly fix their byte order using
    a combination of byte swap operations and types.
    
    Instead, just compute the value that needs to go into the new
    structure member and save it with a simple byte-order conversion.
    
    Make similar simplifications in rmnet_map_ipv6_ul_csum_header().
    
    Finally, in rmnet_map_checksum_uplink_packet() a set of assignments
    zeroes every field in the upload checksum header.  Replace that with
    a single memset() operation.
    Signed-off-by: default avatarAlex Elder <elder@linaro.org>
    Reviewed-by: default avatarAlexander Duyck <alexanderduyck@fb.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    86ca860e
rmnet_map_data.c 10.8 KB