Skip to content

Commit 3a5be7d

Browse files
committed
Revert "mac80211: Use skb_header_cloned() on TX path."
This reverts commit 608961a. The problem is that the mac80211 stack not only needs to be able to muck with the link-level headers, it also might need to mangle all of the packet data if doing sw wireless encryption. This fixes kernel bugzilla #10903. Thanks to Didier Raboud (for the bugzilla report), Andrew Prince (for bisecting), Johannes Berg (for bringing this bisection analysis to my attention), and Ilpo (for trying to analyze this purely from the TCP side). In 2.6.27 we can take another stab at this, by using something like skb_cow_data() when the TX path of mac80211 ends up with a non-NULL tx->key. The ESP protocol code in the IPSEC stack can be used as a model for implementation. Signed-off-by: David S. Miller <[email protected]>
1 parent 3c73419 commit 3a5be7d

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

net/mac80211/tx.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1562,13 +1562,13 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb,
15621562
* be cloned. This could happen, e.g., with Linux bridge code passing
15631563
* us broadcast frames. */
15641564

1565-
if (head_need > 0 || skb_header_cloned(skb)) {
1565+
if (head_need > 0 || skb_cloned(skb)) {
15661566
#if 0
15671567
printk(KERN_DEBUG "%s: need to reallocate buffer for %d bytes "
15681568
"of headroom\n", dev->name, head_need);
15691569
#endif
15701570

1571-
if (skb_header_cloned(skb))
1571+
if (skb_cloned(skb))
15721572
I802_DEBUG_INC(local->tx_expand_skb_head_cloned);
15731573
else
15741574
I802_DEBUG_INC(local->tx_expand_skb_head);

0 commit comments

Comments
 (0)