From: kfraser@localhost.localdomain Date: Thu, 17 Aug 2006 16:08:19 +0000 (+0100) Subject: [NET] front: Allow driver to be built against kernels which do not X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15710^2~55 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c3bc0c6a722ac11aa9d8c8b18bff8a6bb40407c3;p=xen.git [NET] front: Allow driver to be built against kernels which do not have extended checksum-offload info fields in teh skbuff structure. Based on a patch from Steven Smith Signed-off-by: Keir Fraser --- diff --git a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c index a2a5fec64d..2b7cd201be 100644 --- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c +++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c @@ -900,8 +900,10 @@ static int network_start_xmit(struct sk_buff *skb, struct net_device *dev) if (skb->ip_summed == CHECKSUM_HW) /* local packet? */ tx->flags |= NETTXF_csum_blank | NETTXF_data_validated; +#ifdef CONFIG_XEN if (skb->proto_data_valid) /* remote but checksummed? */ tx->flags |= NETTXF_data_validated; +#endif #ifdef HAVE_GSO if (skb_shinfo(skb)->gso_size) { @@ -1312,15 +1314,14 @@ err: * Old backends do not assert data_validated but we * can infer it from csum_blank so test both flags. */ - if (rx->flags & (NETRXF_data_validated|NETRXF_csum_blank)) { + if (rx->flags & (NETRXF_data_validated|NETRXF_csum_blank)) skb->ip_summed = CHECKSUM_UNNECESSARY; - skb->proto_data_valid = 1; - } else { + else skb->ip_summed = CHECKSUM_NONE; - skb->proto_data_valid = 0; - } +#ifdef CONFIG_XEN + skb->proto_data_valid = (skb->ip_summed != CHECKSUM_NONE); skb->proto_csum_blank = !!(rx->flags & NETRXF_csum_blank); - +#endif np->stats.rx_packets++; np->stats.rx_bytes += skb->len;