diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-3945-rs.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945-rs.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-rs.c b/drivers/net/wireless/iwlwifi/iwl-3945-rs.c index f63a9c5ba262..814afaf6d10b 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945-rs.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945-rs.c | |||
@@ -683,11 +683,10 @@ static void rs_get_rate(void *priv_r, struct ieee80211_sta *sta, | |||
683 | if (sta) | 683 | if (sta) |
684 | rate_mask = sta->supp_rates[sband->band]; | 684 | rate_mask = sta->supp_rates[sband->band]; |
685 | 685 | ||
686 | /* Send management frames and broadcast/multicast data using lowest | 686 | /* Send management frames and NO_ACK data using lowest rate. */ |
687 | * rate. */ | ||
688 | fc = le16_to_cpu(hdr->frame_control); | 687 | fc = le16_to_cpu(hdr->frame_control); |
689 | if ((fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA || | 688 | if ((fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA || |
690 | is_multicast_ether_addr(hdr->addr1) || | 689 | info->flags & IEEE80211_TX_CTL_NO_ACK || |
691 | !sta || !priv_sta) { | 690 | !sta || !priv_sta) { |
692 | IWL_DEBUG_RATE(priv, "leave: No STA priv data to update!\n"); | 691 | IWL_DEBUG_RATE(priv, "leave: No STA priv data to update!\n"); |
693 | if (!rate_mask) | 692 | if (!rate_mask) |
@@ -696,6 +695,8 @@ static void rs_get_rate(void *priv_r, struct ieee80211_sta *sta, | |||
696 | else | 695 | else |
697 | info->control.rates[0].idx = | 696 | info->control.rates[0].idx = |
698 | rate_lowest_index(sband, sta); | 697 | rate_lowest_index(sband, sta); |
698 | if (info->flags & IEEE80211_TX_CTL_NO_ACK) | ||
699 | info->control.rates[0].count = 1; | ||
699 | return; | 700 | return; |
700 | } | 701 | } |
701 | 702 | ||