On Mon, 2008-05-05 at 16:14 -0700, David Miller wrote: > > Right, that makes sense. But will it ever return false? skb_cloned() > > returns true often enough, and we only accept linear skbs, but I think I > > don't understand yet what skb_header_cloned() vs. skb_cloned() refers > > to. Which exactly is the header space I'm allowed to modify when > > skb_header_cloned() returns false? > > skb_header_cloned() will return false always if the buffer is not > cloned. Right, it's less than skb_cloned(). > If it is cloned, it makes sure the data reference count allows > for modification of the buffer. Which buffer? skb->data..skb->tail? And isn't that, in mac80211's case, at least currently all the buffer anyway? > For normal traffic, you should see skb_header_cloned() always return > false unless a network tap like tcpdump is registered. Interesting point. I'll have to see when socket filters are run, wpa_supplicant could have a tap open I think. Maybe that's why I'm seeing so many cloned packets. I think I'll stacktrace skb_clone and print that out. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part