if (tcp_v6_check(skb->h.th,skb->len,&skb->nh.ipv6h->saddr, &skb->nh.ipv6h->daddr,skb_checksum(skb, 0, skb->len, 0))) return -1; skb->ip_summed = CHECKSUM_UNNECESSARY; } else { skb->csum = ~tcp_v6_check(skb->h.th,skb->len,&skb->nh.ipv6h->saddr, &skb->nh.ipv6h->daddr,0); 
return __skb_checksum_complete(skb); 
static int tcp_v6_checksum_init(struct sk_buff *skb){	if (skb->ip_summed == CHECKSUM_HW) {		skb->ip_summed = CHECKSUM_UNNECESSARY;		if (!tcp_v6_check(skb->h.th,skb->len,&skb->nh.ipv6h->saddr,				  &skb->nh.ipv6h->daddr,skb->csum))			return 0;		LIMIT_NETDEBUG(KERN_DEBUG "hw tcp v6 csum failed\n");	}	if (skb->len <= 76) {		if (tcp_v6_check(skb->h.th,skb->len,&skb->nh.ipv6h->saddr,				 &skb->nh.ipv6h->daddr,skb_checksum(skb, 0, skb->len, 0)))			return -1;		skb->ip_summed = CHECKSUM_UNNECESSARY;	} else {		skb->csum = ~tcp_v6_check(skb->h.th,skb->len,&skb->nh.ipv6h->saddr,					  &skb->nh.ipv6h->daddr,0);	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/fb286bb2990a107009dbf25f6ffebeb7df77f9be/tcp_ipv6.c/buggy/net/ipv6/tcp_ipv6.c