search for: virtio_net_f_needs_csum

Displaying 2 results from an estimated 2 matches for "virtio_net_f_needs_csum".

2007 Jul 24
0
[PATCH] virtio_net.c gso & feature support
...ct virtio_net_hdr); BUG_ON(len > MAX_PACKET_LEN); skb_trim(skb, len); @@ -66,13 +81,70 @@ static void receive_skb(struct net_devic ntohs(skb->protocol), skb->len, skb->pkt_type); dev->stats.rx_bytes += skb->len; dev->stats.rx_packets++; + + if (hdr->flags & VIRTIO_NET_F_NEEDS_CSUM) { + pr_debug("Needs csum!\n"); + skb->ip_summed = CHECKSUM_PARTIAL; + skb->csum_start = hdr->csum_start; + skb->csum_offset = hdr->csum_offset; + if (skb->csum_start > skb->len - 2 + || skb->csum_offset > skb->len - 2) { + if (net_ratelimit())...
2007 Jul 24
0
[PATCH] virtio_net.c gso & feature support
...ct virtio_net_hdr); BUG_ON(len > MAX_PACKET_LEN); skb_trim(skb, len); @@ -66,13 +81,70 @@ static void receive_skb(struct net_devic ntohs(skb->protocol), skb->len, skb->pkt_type); dev->stats.rx_bytes += skb->len; dev->stats.rx_packets++; + + if (hdr->flags & VIRTIO_NET_F_NEEDS_CSUM) { + pr_debug("Needs csum!\n"); + skb->ip_summed = CHECKSUM_PARTIAL; + skb->csum_start = hdr->csum_start; + skb->csum_offset = hdr->csum_offset; + if (skb->csum_start > skb->len - 2 + || skb->csum_offset > skb->len - 2) { + if (net_ratelimit())...