diff options
author | David S. Miller <davem@davemloft.net> | 2009-05-08 15:46:17 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-05-08 15:46:17 -0400 |
commit | a8679be2073392cf22a910bc25da0c7d36459845 (patch) | |
tree | 0d25750ea4ba3a85fe683f285261083d77080976 /net/mac80211/tx.c | |
parent | 22f6dacdfcfdc792d068e9c41234808860498d04 (diff) | |
parent | 9dfd6ba353b993d648dcda72480c7ce92cd27c7e (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r-- | net/mac80211/tx.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index e5b148fe24bb..5f9a8d7af83d 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <asm/unaligned.h> | 25 | #include <asm/unaligned.h> |
26 | 26 | ||
27 | #include "ieee80211_i.h" | 27 | #include "ieee80211_i.h" |
28 | #include "driver-ops.h" | ||
28 | #include "led.h" | 29 | #include "led.h" |
29 | #include "mesh.h" | 30 | #include "mesh.h" |
30 | #include "wep.h" | 31 | #include "wep.h" |
@@ -557,6 +558,10 @@ ieee80211_tx_h_rate_ctrl(struct ieee80211_tx_data *tx) | |||
557 | if (unlikely(!info->control.rates[0].count)) | 558 | if (unlikely(!info->control.rates[0].count)) |
558 | info->control.rates[0].count = 1; | 559 | info->control.rates[0].count = 1; |
559 | 560 | ||
561 | if (WARN_ON_ONCE((info->control.rates[0].count > 1) && | ||
562 | (info->flags & IEEE80211_TX_CTL_NO_ACK))) | ||
563 | info->control.rates[0].count = 1; | ||
564 | |||
560 | if (is_multicast_ether_addr(hdr->addr1)) { | 565 | if (is_multicast_ether_addr(hdr->addr1)) { |
561 | /* | 566 | /* |
562 | * XXX: verify the rate is in the basic rateset | 567 | * XXX: verify the rate is in the basic rateset |
@@ -1162,7 +1167,7 @@ static int __ieee80211_tx(struct ieee80211_local *local, | |||
1162 | 1167 | ||
1163 | next = skb->next; | 1168 | next = skb->next; |
1164 | len = skb->len; | 1169 | len = skb->len; |
1165 | ret = local->ops->tx(local_to_hw(local), skb); | 1170 | ret = drv_tx(local, skb); |
1166 | if (WARN_ON(ret != NETDEV_TX_OK && skb->len != len)) { | 1171 | if (WARN_ON(ret != NETDEV_TX_OK && skb->len != len)) { |
1167 | dev_kfree_skb(skb); | 1172 | dev_kfree_skb(skb); |
1168 | ret = NETDEV_TX_OK; | 1173 | ret = NETDEV_TX_OK; |
@@ -2132,7 +2137,7 @@ struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw, | |||
2132 | memcpy(mgmt->sa, sdata->dev->dev_addr, ETH_ALEN); | 2137 | memcpy(mgmt->sa, sdata->dev->dev_addr, ETH_ALEN); |
2133 | /* BSSID is left zeroed, wildcard value */ | 2138 | /* BSSID is left zeroed, wildcard value */ |
2134 | mgmt->u.beacon.beacon_int = | 2139 | mgmt->u.beacon.beacon_int = |
2135 | cpu_to_le16(local->hw.conf.beacon_int); | 2140 | cpu_to_le16(sdata->vif.bss_conf.beacon_int); |
2136 | mgmt->u.beacon.capab_info = 0x0; /* 0x0 for MPs */ | 2141 | mgmt->u.beacon.capab_info = 0x0; /* 0x0 for MPs */ |
2137 | 2142 | ||
2138 | pos = skb_put(skb, 2); | 2143 | pos = skb_put(skb, 2); |