• Simon Horman's avatar
    sctp: Correct type and usage of sctp_end_cksum() · eee1d5a1
    Simon Horman authored
    Change the type of the crc32 parameter of sctp_end_cksum()
    from __be32 to __u32 to reflect that fact that it is passed
    to cpu_to_le32().
    
    There are five in-tree users of sctp_end_cksum().
    The following four had warnings flagged by sparse which are
    no longer present with this change.
    
    net/netfilter/ipvs/ip_vs_proto_sctp.c:sctp_nat_csum()
    net/netfilter/ipvs/ip_vs_proto_sctp.c:sctp_csum_check()
    net/sctp/input.c:sctp_rcv_checksum()
    net/sctp/output.c:sctp_packet_transmit()
    
    The fifth user is net/netfilter/nf_nat_proto_sctp.c:sctp_manip_pkt().
    It has been updated to pass a __u32 instead of a __be32,
    the value in question was already calculated in cpu byte-order.
    
    net/netfilter/nf_nat_proto_sctp.c:sctp_manip_pkt() has also
    been updated to assign the return value of sctp_end_cksum()
    directly to a variable of type __le32, matching the
    type of the return value. Previously the return value
    was assigned to a variable of type __be32 and then that variable
    was finally assigned to another variable of type __le32.
    
    Problems flagged by sparse.
    Compile and sparse tested only.
    Signed-off-by: default avatarSimon Horman <horms@verge.net.au>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    eee1d5a1
checksum.h 2.58 KB