summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwarmcat <andy@warmcat.com>2007-09-14 15:10:25 (GMT)
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 23:49:31 (GMT)
commit24338793eea9dcc0865826e1115af86a19af8d18 (patch)
treeb7d73e8e897cfd2311db484fc7f8b8397b823325
parent139c3a0492745192f999aaa67d11cb63983211f5 (diff)
downloadlinux-24338793eea9dcc0865826e1115af86a19af8d18.tar.xz
[MAC80211]: get STA after tx radiotap snipped
Johannes Berg noticed that in __ieee80211_tx_prepare() we try to get the STA from addr1 of the ieee80211 header when the radiotap header is actually still at the front of the packet. This patch defers doing that until the radiotap header is gone. Signed-off-by: Andy Green <andy@warmcat.com> Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/mac80211/tx.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 3d57e6d..1780c24 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -959,8 +959,6 @@ __ieee80211_tx_prepare(struct ieee80211_txrx_data *tx,
tx->dev = dev; /* use original interface */
tx->local = local;
tx->sdata = IEEE80211_DEV_TO_SUB_IF(dev);
- tx->sta = sta_info_get(local, hdr->addr1);
- tx->fc = le16_to_cpu(hdr->frame_control);
/*
* set defaults for things that can be set by
@@ -985,6 +983,8 @@ __ieee80211_tx_prepare(struct ieee80211_txrx_data *tx,
res = TXRX_QUEUED; /* indication it was monitor packet */
}
+ tx->sta = sta_info_get(local, hdr->addr1);
+ tx->fc = le16_to_cpu(hdr->frame_control);
tx->u.tx.control = control;
if (is_multicast_ether_addr(hdr->addr1)) {
tx->flags &= ~IEEE80211_TXRXD_TXUNICAST;