2008-07-17 00:30:03 +08:00
|
|
|
--- a/ath/if_ath.c
|
|
|
|
+++ b/ath/if_ath.c
|
2008-10-23 09:07:42 +08:00
|
|
|
@@ -6474,7 +6474,7 @@ ath_capture(struct net_device *dev, cons
|
2008-07-17 00:30:03 +08: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-10-23 09:07:42 +08:00
|
|
|
@@ -6482,6 +6482,8 @@ ath_capture(struct net_device *dev, cons
|
2008-07-17 00:30:03 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
ieee80211_input_monitor(ic, tskb, bf, tx, tsf, sc);
|
|
|
|
+ if (tskb != skb)
|
|
|
|
+ ieee80211_dev_kfree_skb(&tskb);
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|