Re: [PATCH 3/3] virtio_net: Fix skb->csum_start computation
From: Rusty Russell <hidden>
Date: 2008-05-29 07:33:52
From: Rusty Russell <hidden>
Date: 2008-05-29 07:33:52
On Tuesday 27 May 2008 21:20:47 Mark McLoughlin wrote:
hdr->csum_start is the offset from the start of the ethernet header to the transport layer checksum field. skb->csum_start is the offset from skb->head. skb_partial_csum_set() assumes that skb->data points to the ethernet header - i.e. it computes skb->csum_start by adding the headroom to hdr->csum_start. Since eth_type_trans() skb_pull()s the ethernet header, skb_partial_csum_set() should be called before eth_type_trans().
As should the rx_bytes += skb->len. Thanks for this! Applied (and 1/3, the typo patch). I'll backport this to -stable, as well. Thanks, Rusty.