Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c91d4606 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

net: fix two sparse errors



First one in __skb_checksum_validate_complete() fixes the following
(and other callers)

make C=2 CF=-D__CHECK_ENDIAN__ net/ipv4/tcp_ipv4.o
  CHECK   net/ipv4/tcp_ipv4.c
include/linux/skbuff.h:3052:24: warning: incorrect type in return expression (different base types)
include/linux/skbuff.h:3052:24:    expected restricted __sum16
include/linux/skbuff.h:3052:24:    got int

Second is fixing gso_make_checksum() :

  CHECK   net/ipv4/gre_offload.c
include/linux/skbuff.h:3360:14: warning: incorrect type in assignment (different base types)
include/linux/skbuff.h:3360:14:    expected unsigned short [unsigned] [usertype] csum
include/linux/skbuff.h:3360:14:    got restricted __sum16
include/linux/skbuff.h:3365:16: warning: incorrect type in return expression (different base types)
include/linux/skbuff.h:3365:16:    expected restricted __sum16
include/linux/skbuff.h:3365:16:    got unsigned short [unsigned] [usertype] csum

Fixes: 5a212329 ("net: Support for csum_bad in skbuff")
Fixes: 7e2b10c1 ("net: Support for multiple checksums with gso")
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
CC: Tom Herbert <tom@herbertland.com>
Acked-by: default avatarTom Herbert <tom@herbertland.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ba6d0564
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -3051,7 +3051,7 @@ static inline __sum16 __skb_checksum_validate_complete(struct sk_buff *skb,
		}
	} else if (skb->csum_bad) {
		/* ip_summed == CHECKSUM_NONE in this case */
		return 1;
		return (__force __sum16)1;
	}

	skb->csum = psum;
@@ -3354,14 +3354,13 @@ static inline __sum16 gso_make_checksum(struct sk_buff *skb, __wsum res)
{
	int plen = SKB_GSO_CB(skb)->csum_start - skb_headroom(skb) -
		   skb_transport_offset(skb);
	__u16 csum;
	__wsum partial;

	csum = csum_fold(csum_partial(skb_transport_header(skb),
				      plen, skb->csum));
	partial = csum_partial(skb_transport_header(skb), plen, skb->csum);
	skb->csum = res;
	SKB_GSO_CB(skb)->csum_start -= plen;

	return csum;
	return csum_fold(partial);
}

static inline bool skb_is_gso(const struct sk_buff *skb)