On Wed, 2016-10-05 at 15:33 +0200, Johannes Berg wrote: > From: Johannes Berg <johannes.berg@xxxxxxxxx> > > There's only a single case where has_80211_header is passed as true, > which is in mac80211. Given that it's only a very simple check that > needs to be done before calling it (calling > __ieee80211_data_to_8023() > and checking its return value), simple move that into the caller in > order to simplify this function. The only additional cost this adds > is the extra skb_push(), so reduce that by using __skb_push() as we > know there's enough space, having pulled just before. Obviously this is broken ... we need to have a frame without the outer 802.3 header, not with it, passed into the function. johannes