Re: Interdomain/interpartition communication without a checksum
From: "David S. Miller" <davem@davemloft.net>
Date: 2005-05-25 22:39:43
From: "David S. Miller" <davem@davemloft.net>
Date: 2005-05-25 22:39:43
From: Jon Mason <redacted> Date: Tue, 17 May 2005 11:34:20 -0500
--- ../xen-unstable-pristine/linux-2.6.11-xen0/include/linux/skbuff.h 2005-03-02 01:38:38.000000000 -0600 +++ linux-2.6.11-xen0/include/linux/skbuff.h 2005-05-13 10:43:08.000000000 -0500@@ -37,6 +37,10 @@ #define CHECKSUM_HW 1 #define CHECKSUM_UNNECESSARY 2 +#define SKB_CLONED 1 +#define SKB_NOHDR 2 +#define SKB_FDW_NO_CSUM 4 +
You create SKB_NOHDR yet do not make use of it to replace skb->nohdr.
@@ -603,7 +603,7 @@ int pskb_expand_head(struct sk_buff *skb skb->mac.raw += off; skb->h.raw += off; skb->nh.raw += off; - skb->cloned = 0; + skb->flags &= SKB_CLONED; atomic_set(&skb_shinfo(skb)->dataref, 1); return 0;
This does not clear SKB_CLONED, it makes it the only possible bit set. Clearly this was not your intention.