From: Jesse Gross Date: Thu, 3 Mar 2011 21:53:08 +0000 (-0800) Subject: datapath: Drop BUG_ON when checksumming and copying. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fdd89fdc9943878e7cb1c43ba872b13f26c25e59;p=openvswitch datapath: Drop BUG_ON when checksumming and copying. Normally when performing checksum offloading the transport header must be present in the linear data area. However, this might not be the case with packets processed by GRO. On transmit these packets are processed by GSO if emulation of checksum offloading needs to be performed. Unlike skb_checksum_help(), the GSO code does not have any requirements about the packet structure. Since our code that copies and checksums packets to userspace is called in conditions similar to GSO and does not have any assumptions about layout, drop the BUG_ON assertion. NIC-343 Signed-off-by: Jesse Gross Acked-by: Ben Pfaff --- diff --git a/datapath/datapath.c b/datapath/datapath.c index ebfc2e99..5633dc9c 100644 --- a/datapath/datapath.c +++ b/datapath/datapath.c @@ -359,7 +359,6 @@ static void copy_and_csum_skb(struct sk_buff *skb, void *to) get_skb_csum_pointers(skb, &csum_start, &csum_offset); csum_start -= skb_headroom(skb); - BUG_ON(csum_start >= skb_headlen(skb)); skb_copy_bits(skb, 0, to, csum_start);