| To: | "David S. Miller" <davem@xxxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH] Handle shared SKBs in VLAN receive code |
| From: | Tommy Christensen <tommy.christensen@xxxxxxxxx> |
| Date: | Sun, 12 Oct 2003 12:00:09 +0200 |
| Cc: | Ben Greear <greearb@xxxxxxxxxxxxxxx>, netdev@xxxxxxxxxxx |
| References: | <3F87430D.2040000@xxxxxxxxx> <3F87464B.1020908@xxxxxxxxxxxxxxx> <3F874A30.6010700@xxxxxxxxx> <3F885418.3090407@xxxxxxxxxxxxxxx> <20031011120339.0da631e6.davem@xxxxxxxxxx> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
| User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20021003 |
David S. Miller wrote: The current code is correct and handles shared SKBs properly, so I don't think it's worth playing around with this much more. No, it is still not right. Bear with me, but this is how I understand it: - The sk_buff *structure* is read-only on a shared SKB. skb_share_check(skb) breaks the sharing, thus allowing updates of skb->dev, skb->len etc. But the SKB still points at the same data buffer. - The *data* buffer is read-only on a cloned SKB. skb_cow() or skb_copy() or ... gives us a writeable buffer. The tcpdump problem was caused by violating the second rule, this is now fixed. But the code still doesn't follow the first rule, which is what this patch fixes. -Tommy |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: patches for PROC_FS=n (2.6.0-test7), Randy.Dunlap |
|---|---|
| Next by Date: | Re: [PATCH] kfree_skb() bug in 2.4.22, Jeff Garzik |
| Previous by Thread: | Re: [PATCH] Handle shared SKBs in VLAN receive code, David S. Miller |
| Next by Thread: | Re: [PATCH] Handle shared SKBs in VLAN receive code, David S. Miller |
| Indexes: | [Date] [Thread] [Top] [All Lists] |