2008-07-16 19:30:03 +03:00
|
|
|
--- a/ath/if_ath.c
|
|
|
|
+++ b/ath/if_ath.c
|
2008-12-04 21:54:16 +02:00
|
|
|
@@ -6507,7 +6507,7 @@ ath_capture(struct net_device *dev, cons
|
2008-07-16 19:30:03 +03:00
|
|
|
|
|
|
|
/* Never copy the SKB, as it is ours on the RX side, and this is the
|
|
|
|
* last process on the TX side and we only modify our own headers. */
|
|
|
|
- tskb = ath_skb_removepad(skb, 0 /* Copy SKB */);
|
|
|
|
+ tskb = ath_skb_removepad(skb, !tx /* Copy SKB */);
|
|
|
|
if (tskb == NULL) {
|
|
|
|
DPRINTF(sc, ATH_DEBUG_ANY,
|
|
|
|
"Dropping; ath_skb_removepad failed!\n");
|
2008-12-04 21:54:16 +02:00
|
|
|
@@ -6515,6 +6515,8 @@ ath_capture(struct net_device *dev, cons
|
2008-07-16 19:30:03 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
ieee80211_input_monitor(ic, tskb, bf, tx, tsf, sc);
|
|
|
|
+ if (tskb != skb)
|
|
|
|
+ ieee80211_dev_kfree_skb(&tskb);
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|