Subject: pull request: wireless 2012-01-27

From: "John W. Linville" <[email-masked]>
Date: Fri, 27 Jan 2012 15:10:23 -0500

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
[email-masked]			might be all we have.  Be ready.