datapath: Update hardware computed checksum on VLAN change.
authorJesse Gross <jesse@nicira.com>
Thu, 4 Mar 2010 21:39:57 +0000 (16:39 -0500)
committerJesse Gross <jesse@nicira.com>
Fri, 5 Mar 2010 20:22:17 +0000 (15:22 -0500)
commit635c9298b91d0942aca39ba1f0d7ea5805ab618e
tree6366c5e3f4f490c691ebf5ee284692277175d53c
parentca063bcd599bd00c4096628991529c16eb24d1b6
datapath: Update hardware computed checksum on VLAN change.

The checksum computed by hardware on receive stored in skb->csum
when skb->ip_summed == CHECKSUM_COMPLETE is supposed to reflect
the contents of the packet starting at skb->data, which includes
the VLAN tag if there is one.  However, when we manipulate the
VLAN tag we don't update the checksum.  This leads to all kinds
of nasty warnings about broken hardware, not to mention we can't
take advantage of the checksum that was already computed.

This also fixes some issues with our private checksum type value
on some different kernels and after GSO.
datapath/actions.c
datapath/datapath.c
datapath/datapath.h