commit b49ba04a3a0382e7314d990707c21094c410425a Dave, Here are a couple of "one-liner" fixes intended for 3.3. A mac80211 fix from Eliad Peller fixes a regression from an earlier patche that accidentally removed a necessary line of code. The other one from Eliad adds an overlooked assignment necessary for proper management of some state information. Finally, the fix from Johannes moves an unlock to include an additional operation within the critical section. Pleae let me know if there are problems! Thanks, John --- The following changes since commit 9018e93948c6f8f95fbcc9fa05f6c403d6adb406: net: explicitly add jump_label.h header to sock.h (2012-01-26 17:13:26 -0500) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless.git master Eliad Peller (2): mac80211: update oper_channel on ibss join mac80211: set bss_conf.idle when vif is connected Johannes Berg (1): iwlwifi: fix PCI-E transport "inta" race drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c | 4 ++-- net/mac80211/ibss.c | 1 + net/mac80211/iface.c | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c index 752493f..65d1f05 100644 --- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c +++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c @@ -972,11 +972,11 @@ void iwl_irq_tasklet(struct iwl_trans *trans) } #endif - spin_unlock_irqrestore(&trans->shrd->lock, flags); - /* saved interrupt in inta variable now we can reset trans_pcie->inta */ trans_pcie->inta = 0; + spin_unlock_irqrestore(&trans->shrd->lock, flags); + /* Now service all interrupt bits discovered above. */ if (inta & CSR_INT_BIT_HW_ERR) { IWL_ERR(trans, "Hardware error detected. Restarting.\n"); diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index b3d76b7..a464396 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c @@ -106,6 +106,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata, sdata->drop_unencrypted = capability & WLAN_CAPABILITY_PRIVACY ? 1 : 0; + local->oper_channel = chan; channel_type = ifibss->channel_type; if (channel_type > NL80211_CHAN_HT20 && !cfg80211_can_beacon_sec_chan(local->hw.wiphy, chan, channel_type)) diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index e47768c..01a21c2 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c @@ -1314,6 +1314,7 @@ u32 __ieee80211_recalc_idle(struct ieee80211_local *local) continue; } /* count everything else */ + sdata->vif.bss_conf.idle = false; count++; } -- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready.