iwlwifi: set HT flags after channel in rxon
authorDan Halperin <dhalperi@cs.washington.edu>
Fri, 19 Feb 2010 06:01:39 +0000 (22:01 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 19 Feb 2010 20:35:29 +0000 (15:35 -0500)
commit5e2f75b8993a0d83d469388b50716dd5551f2eb4
treef1e3de04fb2fd6394af553a95700f1a552e6df92
parent5affcd6ba2036b59a4dee3f0576ae3584e92e4f1
iwlwifi: set HT flags after channel in rxon

The HT extension channel settings require priv->staging_rxon.channel to be
accurate. However, iwl_set_rxon_ht was being called before iwl_set_rxon_channel
and thus HT40 could be broken unless another call to iwl_mac_config came in.

This problem was recently introduced by "iwlwifi: Fix to set correct ht
configuration"

The particular setting in which I noticed this was monitor mode:

iwconfig wlan0 mode monitor
ifconfig wlan0 up
./iw wlan0 set channel 64 HT40-
#./iw wlan0 set channel 64 HT40-
tcpdump -i wlan0 -y IEEE802_11_RADIO

would only catch HT40 packets if I issued the IW command twice.

From visual inspection, iwl_set_rxon_channel does not depend on
iwl_set_rxon_ht, so simply swapping them should be safe and fixes this problem.

Signed-off-by: Daniel Halperin <dhalperi@cs.washington.edu>
Acked-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
CC: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-core.c