if (unlikely(skb->ip_summed == CHECKSUM_HW)) netdev_rx_csum_fault(skb->dev); 
int csum_partial_copy_to_xdr(struct xdr_buf *xdr, struct sk_buff *skb){	skb_reader_t	desc;	desc.skb = skb;	desc.offset = sizeof(struct udphdr);	desc.count = skb->len - desc.offset;	if (skb->ip_summed == CHECKSUM_UNNECESSARY)		goto no_checksum;	desc.csum = csum_partial(skb->data, desc.offset, skb->csum);	if (xdr_partial_copy_from_skb(xdr, 0, &desc, skb_read_and_csum_bits) < 0)		return -1;	if (desc.offset != skb->len) {		unsigned int csum2;		csum2 = skb_checksum(skb, desc.offset, skb->len - desc.offset, 0);		desc.csum = csum_block_add(desc.csum, csum2, desc.offset);	}	if (desc.count)		return -1;	if ((unsigned short)csum_fold(desc.csum))		return -1;	return 0;no_checksum:	if (xdr_partial_copy_from_skb(xdr, 0, &desc, skb_read_bits) < 0)		return -1;	if (desc.count)		return -1;	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/fb286bb2990a107009dbf25f6ffebeb7df77f9be/socklib.c/clean/net/sunrpc/socklib.c