aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlegacy/common.c
diff options
context:
space:
mode:
authorStanislaw Gruszka <sgruszka@redhat.com>2013-06-12 10:44:49 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-06-12 15:06:57 -0400
commit8cdbab7f07e82f26c48adcc761391c1c7ff339ff (patch)
treeeb820eb32a6bcf5d2f8f079f019bc73021f35ff5 /drivers/net/wireless/iwlegacy/common.c
parentc6af8074fd3654b2a8d7b31304d686519b062e14 (diff)
iwl4965: workaround for firmware frame tx rejection
Firmware can reject to transmit frame on passive channel, when it did not yet received any frame with valid CRC on that channel. Workaround this problem in the driver. Tested-by: Jake Edge <jake@lwn.net> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlegacy/common.c')
-rw-r--r--drivers/net/wireless/iwlegacy/common.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlegacy/common.c b/drivers/net/wireless/iwlegacy/common.c
index e9a3cbc409ae..3195aad440dd 100644
--- a/drivers/net/wireless/iwlegacy/common.c
+++ b/drivers/net/wireless/iwlegacy/common.c
@@ -5307,6 +5307,17 @@ il_mac_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
5307 D_MAC80211("BSSID %pM\n", bss_conf->bssid); 5307 D_MAC80211("BSSID %pM\n", bss_conf->bssid);
5308 5308
5309 /* 5309 /*
5310 * On passive channel we wait with blocked queues to see if
5311 * there is traffic on that channel. If no frame will be
5312 * received (what is very unlikely since scan detects AP on
5313 * that channel, but theoretically possible), mac80211 associate
5314 * procedure will time out and mac80211 will call us with NULL
5315 * bssid. We have to unblock queues on such condition.
5316 */
5317 if (is_zero_ether_addr(bss_conf->bssid))
5318 il_wake_queues_by_reason(il, IL_STOP_REASON_PASSIVE);
5319
5320 /*
5310 * If there is currently a HW scan going on in the background, 5321 * If there is currently a HW scan going on in the background,
5311 * then we need to cancel it, otherwise sometimes we are not 5322 * then we need to cancel it, otherwise sometimes we are not
5312 * able to authenticate (FIXME: why ?) 5323 * able to authenticate (FIXME: why ?)