In the RX path, the SKB needs to be copied if padding needs to be removed. Doing so causes correct operation of monitor mode interfaces to be restored, but is somewhat inefficient. Will tidy up the code in following revisions.

git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3711 0192ed92-7a03-0410-a25b-9323aeb14dbd
This commit is contained in:
mentor 2008-06-07 03:24:30 +00:00
parent 76cade5dac
commit 785ca93999

View File

@ -6370,7 +6370,7 @@ ath_capture(struct net_device *dev, const struct ath_buf *bf,
/* 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");
@ -6378,6 +6378,8 @@ ath_capture(struct net_device *dev, const struct ath_buf *bf,
}
ieee80211_input_monitor(ic, tskb, bf, tx, tsf, sc);
if (tskb != skb)
ieee80211_dev_kfree_skb(&tskb);
}
/*