aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-11-18 19:08:30 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-11-19 11:08:56 -0500
commit7351c6bd482712e5e3ec9dffc547de0e0863efb0 (patch)
tree1847c0470af79727b58611a69fa82384bd904d60 /net
parentad4bb6f8883a13bb0f65b194dae36c62a02ac779 (diff)
mac80211: request TX status where needed
Right now all frames mac80211 hands to the driver have the IEEE80211_TX_CTL_REQ_TX_STATUS flag set to request TX status. This isn't really necessary, only the injected frames need TX status (the latter for hostapd) so move setting this flag. The rate control algorithms also need TX status, but they don't require it. Also, rt2x00 uses that bit for its own purposes and seems to require it being set for all frames, but that can be fixed in rt2x00. This doesn't really change anything for any drivers but in the future drivers using hw-rate control may opt to not report TX status for frames that don't have the IEEE80211_TX_CTL_REQ_TX_STATUS flag set. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> [rt2x00 bits] Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to '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 5af2f40ea4db..943def2b07df 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1443,8 +1443,6 @@ static void ieee80211_xmit(struct ieee80211_sub_if_data *sdata,
1443 msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout)); 1443 msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout));
1444 } 1444 }
1445 1445
1446 info->flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
1447
1448 rcu_read_lock(); 1446 rcu_read_lock();
1449 1447
1450 if (unlikely(sdata->vif.type == NL80211_IFTYPE_MONITOR)) { 1448 if (unlikely(sdata->vif.type == NL80211_IFTYPE_MONITOR)) {
@@ -1575,6 +1573,8 @@ netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb,
1575 1573
1576 memset(info, 0, sizeof(*info)); 1574 memset(info, 0, sizeof(*info));
1577 1575
1576 info->flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
1577
1578 /* pass the radiotap header up to xmit */ 1578 /* pass the radiotap header up to xmit */
1579 ieee80211_xmit(IEEE80211_DEV_TO_SUB_IF(dev), skb); 1579 ieee80211_xmit(IEEE80211_DEV_TO_SUB_IF(dev), skb);
1580 return NETDEV_TX_OK; 1580 return NETDEV_TX_OK;