Patchwork pull request: wireless-2.6 2008-10-29

login
register
mail settings
Submitter John W. Linville
Date Oct. 29, 2008, 11:18 p.m.
Message ID <20081029231855.GD3485@tuxdriver.com>
Download mbox | patch
Permalink /patch/6387/
State Accepted
Delegated to: David Miller
Headers show

Comments

John W. Linville - Oct. 29, 2008, 11:18 p.m.
Dave,

Another quick round of fixes intended for 2.6.28...

This includes fixes for bugs 11749 and 11845, fixes a reset-related
regression in ath5k, fixes a Kconfig-related error for rt2x00, and
fixes some sparse warnings and a possible buffer overrun in libertas.
Also, it corrects a spelling error and marks Bob Copeland as an
ath5k maintainer.

Please let me know if there are problems!

Thanks,

John

---

Individual patches are available here:

	http://www.kernel.org/pub/linux/kernel/people/linville/wireless-2.6/

---

The following changes since commit 882716604ecf388b2ff09bc76eb2a752aa9cc76b:
  Jesse Brandeburg (1):
        pktgen: fix multiple queue warning

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git master

Bob Copeland (3):
      ath5k: correct misspelling in debug help
      ath5k: honor FIF_BCN_PRBRESP_PROMISC in STA mode
      ath5k: add self to MAINTAINERS

Elias Oltmanns (1):
      ath5k: Fix reset sequence for AR5212 in general and RF5111 in particular

Holger Schurig (1):
      libertas: remove two libertas sparse warning

Ivo van Doorn (1):
      rt2x00: Fix build error when mac80211=M rt2x00=Y

Johannes Berg (1):
      libertas: fix buffer overrun

Tomas Winkler (1):
      iwlwifi: fix suspend to RAM in iwlwifi

 MAINTAINERS                            |    2 ++
 drivers/net/wireless/ath5k/base.c      |    4 +---
 drivers/net/wireless/ath5k/debug.c     |    2 +-
 drivers/net/wireless/ath5k/initvals.c  |    2 ++
 drivers/net/wireless/ath5k/reset.c     |   22 +++++++---------------
 drivers/net/wireless/iwlwifi/iwl-agn.c |    2 +-
 drivers/net/wireless/libertas/cmd.c    |    4 ++--
 drivers/net/wireless/libertas/scan.c   |    4 ++--
 drivers/net/wireless/rt2x00/Kconfig    |    2 +-
 9 files changed, 19 insertions(+), 25 deletions(-)
Arjan van de Ven - Oct. 29, 2008, 11:23 p.m.
On Wed, 29 Oct 2008 19:18:55 -0400
"John W. Linville" <linville@tuxdriver.com> wrote:

> Dave,
> 
> Another quick round of fixes intended for 2.6.28...
> 
> This includes fixes for bugs 11749 and 11845, fixes a reset-related
> regression in ath5k, fixes a Kconfig-related error for rt2x00, and
> fixes some sparse warnings and a possible buffer overrun in libertas.
> Also, it corrects a spelling error and marks Bob Copeland as an
> ath5k maintainer.

speaking of ath5k:

http://www.kerneloops.org/version.php?start=1835008&end=1867775&version=28-rc

it seems to have added a few WARN_ON()s which now end up at the top of
the list .. are these known or should I spend some time writing reports
for netdev ?
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
John W. Linville - Oct. 29, 2008, 11:33 p.m.
On Wed, Oct 29, 2008 at 04:23:24PM -0700, Arjan van de Ven wrote:
> On Wed, 29 Oct 2008 19:18:55 -0400
> "John W. Linville" <linville@tuxdriver.com> wrote:
> 
> > Dave,
> > 
> > Another quick round of fixes intended for 2.6.28...
> > 
> > This includes fixes for bugs 11749 and 11845, fixes a reset-related
> > regression in ath5k, fixes a Kconfig-related error for rt2x00, and
> > fixes some sparse warnings and a possible buffer overrun in libertas.
> > Also, it corrects a spelling error and marks Bob Copeland as an
> > ath5k maintainer.
> 
> speaking of ath5k:
> 
> http://www.kerneloops.org/version.php?start=1835008&end=1867775&version=28-rc
> 
> it seems to have added a few WARN_ON()s which now end up at the top of
> the list .. are these known or should I spend some time writing reports
> for netdev ?

I wasn't aware of them -- thanks... :-)
Elias Oltmanns - Oct. 29, 2008, 11:40 p.m.
"John W. Linville" <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org> wrote:
> Dave,
>
> Another quick round of fixes intended for 2.6.28...
>
> This includes fixes for bugs 11749 and 11845, fixes a reset-related
> regression in ath5k, fixes a Kconfig-related error for rt2x00, and
> fixes some sparse warnings and a possible buffer overrun in libertas.
> Also, it corrects a spelling error and marks Bob Copeland as an
> ath5k maintainer.
>
> Please let me know if there are problems!
>
> Thanks,
>
> John
>
> ---
>
> Individual patches are available here:
>
> 	http://www.kernel.org/pub/linux/kernel/people/linville/wireless-2.6/
>
> ---
>
> The following changes since commit 882716604ecf388b2ff09bc76eb2a752aa9cc76b:
[...]
> Elias Oltmanns (1):
>       ath5k: Fix reset sequence for AR5212 in general and RF5111 in particular

Pity, I just posted a *nicer* version of that patch for 2.6.28-rc2.
Well, it doesn't really matter all that much, I suppose.

Regards,

Elias
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bob Copeland - Oct. 30, 2008, 1:19 a.m.
On Wed, Oct 29, 2008 at 7:33 PM, John W. Linville
<linville@tuxdriver.com> wrote:
> On Wed, Oct 29, 2008 at 04:23:24PM -0700, Arjan van de Ven wrote:
>> On Wed, 29 Oct 2008 19:18:55 -0400
>> "John W. Linville" <linville@tuxdriver.com> wrote:
>> it seems to have added a few WARN_ON()s which now end up at the top of
>> the list .. are these known or should I spend some time writing reports
>> for netdev ?

Pavel Roskin posted one such WARN_ON to ath5k-devel a few days ago.
Seems related to setup of the rate tables, but I haven't reproduced it
here yet.  I'll see if he has more info...
Arjan van de Ven - Oct. 30, 2008, 4 a.m.
On Wed, 29 Oct 2008 21:19:01 -0400
"Bob Copeland" <me@bobcopeland.com> wrote:

> On Wed, Oct 29, 2008 at 7:33 PM, John W. Linville
> <linville@tuxdriver.com> wrote:
> > On Wed, Oct 29, 2008 at 04:23:24PM -0700, Arjan van de Ven wrote:
> >> On Wed, 29 Oct 2008 19:18:55 -0400
> >> "John W. Linville" <linville@tuxdriver.com> wrote:
> >> it seems to have added a few WARN_ON()s which now end up at the
> >> top of the list .. are these known or should I spend some time
> >> writing reports for netdev ?
> 
> Pavel Roskin posted one such WARN_ON to ath5k-devel a few days ago.
> Seems related to setup of the rate tables, but I haven't reproduced it
> here yet.  I'll see if he has more info...

if there's things that would help you diagnose such issue let me know
(always trying to make kerneloops.org more useful for developers ;-)

>
Stefan Hellermann - Oct. 30, 2008, 2:48 p.m.
John W. Linville schrieb:
> On Wed, Oct 29, 2008 at 04:23:24PM -0700, Arjan van de Ven wrote:
>   
>> On Wed, 29 Oct 2008 19:18:55 -0400
>> "John W. Linville" <linville@tuxdriver.com> wrote:
>>
>>     
>>> Dave,
>>>
>>> Another quick round of fixes intended for 2.6.28...
>>>
>>> This includes fixes for bugs 11749 and 11845, fixes a reset-related
>>> regression in ath5k, fixes a Kconfig-related error for rt2x00, and
>>> fixes some sparse warnings and a possible buffer overrun in libertas.
>>> Also, it corrects a spelling error and marks Bob Copeland as an
>>> ath5k maintainer.
>>>       
>> speaking of ath5k:
>>
>> http://www.kerneloops.org/version.php?start=1835008&end=1867775&version=28-rc
>>
>> it seems to have added a few WARN_ON()s which now end up at the top of
>> the list .. are these known or should I spend some time writing reports
>> for netdev ?
>>     
>
> I wasn't aware of them -- thanks... :-)
>
>   
I think some of the reports on kerneloops are from my machine, I'm
running wireless-testing#master in the hope to get my card fully
working. It's a AR2425 chip (MAC: 0xe2, PHY: 0x70), in a Lenovo Notebook.

The wireless-connection is nearly unusable. I can provide access to this
machine or test patches if anyone can help.

I get many warnings like

WARNING: at /srv/devel/kernel/net/mac80211/rx.c:2203
ath5k_tasklet_rx+0x318/0x5c0()
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.28-rc1-wl #46
Call Trace:
 [<c014744f>] warn_on_slowpath+0x5f/0xa0
 [<c013ef69>] enqueue_task_fair+0xb9/0x100
 [<c013ef69>] enqueue_task_fair+0xb9/0x100
 [<c0137835>] default_spin_lock_flags+0x5/0x10
 [<c0574fbb>] _spin_lock_irqsave+0x2b/0x40
 [<c0151347>] lock_timer_base+0x27/0x60
 [<c01514e0>] __mod_timer+0x90/0xa0
 [<c03e8dea>] rexmit_timer+0x36a/0x3d0
 [<c03aebe8>] ath5k_tasklet_rx+0x318/0x5c0
 [<c014bfb0>] tasklet_action+0x70/0x100
 [<c014ca97>] __do_softirq+0x97/0x160
 [<c014ca00>] __do_softirq+0x0/0x160
 <IRQ>  [<c0170c50>] handle_fasteoi_irq+0x0/0xe0
 [<c014c7bd>] irq_exit+0x5d/0x80
 [<c012297c>] do_IRQ+0xcc/0x100
 [<c0120aeb>] common_interrupt+0x23/0x28
 [<c0334f88>] acpi_idle_enter_bm+0x315/0x39e
 [<c04346c4>] cpuidle_idle_call+0x74/0xc0
 [<c011eded>] cpu_idle+0x6d/0xd0
---[ end trace 8ac847f454371229 ]---

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bob Copeland - Oct. 30, 2008, 4:17 p.m.
On Thu, Oct 30, 2008 at 10:48 AM, Stefan Hellermann
<stefan@the2masters.de> wrote:
> I think some of the reports on kerneloops are from my machine, I'm
> running wireless-testing#master in the hope to get my card fully
> working. It's a AR2425 chip (MAC: 0xe2, PHY: 0x70), in a Lenovo Notebook.

Okay, I just added a bugzilla for this:

http://bugzilla.kernel.org/show_bug.cgi?id=11901

I can reproduce it here after all...
David Miller - Oct. 31, 2008, 6:49 a.m.
From: "John W. Linville" <linville@tuxdriver.com>
Date: Wed, 29 Oct 2008 19:18:55 -0400

> Another quick round of fixes intended for 2.6.28...
> 
> This includes fixes for bugs 11749 and 11845, fixes a reset-related
> regression in ath5k, fixes a Kconfig-related error for rt2x00, and
> fixes some sparse warnings and a possible buffer overrun in libertas.
> Also, it corrects a spelling error and marks Bob Copeland as an
> ath5k maintainer.
> 
> Please let me know if there are problems!

Pulled, thanks a lot John.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 16202c8..185b84a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -738,6 +738,8 @@  P:	Nick Kossifidis
 M:	mickflemm@gmail.com
 P:	Luis R. Rodriguez
 M:	mcgrof@gmail.com
+P:	Bob Copeland
+M:	me@bobcopeland.com
 L:	linux-wireless@vger.kernel.org
 L:	ath5k-devel@lists.ath5k.org
 S:	Maintained
diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c
index cfd4d05..9e47d72 100644
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -2942,10 +2942,8 @@  static void ath5k_configure_filter(struct ieee80211_hw *hw,
 		sc->opmode != NL80211_IFTYPE_MESH_POINT &&
 		test_bit(ATH_STAT_PROMISC, sc->status))
 		rfilt |= AR5K_RX_FILTER_PROM;
-	if (sc->opmode == NL80211_IFTYPE_STATION ||
-		sc->opmode == NL80211_IFTYPE_ADHOC) {
+	if (sc->opmode == NL80211_IFTYPE_ADHOC)
 		rfilt |= AR5K_RX_FILTER_BEACON;
-	}
 
 	/* Set filters */
 	ath5k_hw_set_rx_filter(ah,rfilt);
diff --git a/drivers/net/wireless/ath5k/debug.c b/drivers/net/wireless/ath5k/debug.c
index 8f92d67..19980cb 100644
--- a/drivers/net/wireless/ath5k/debug.c
+++ b/drivers/net/wireless/ath5k/debug.c
@@ -339,7 +339,7 @@  static struct {
 	{ ATH5K_DEBUG_BEACON,	"beacon",	"beacon handling" },
 	{ ATH5K_DEBUG_CALIBRATE, "calib",	"periodic calibration" },
 	{ ATH5K_DEBUG_TXPOWER,	"txpower",	"transmit power setting" },
-	{ ATH5K_DEBUG_LED,	"led",		"LED mamagement" },
+	{ ATH5K_DEBUG_LED,	"led",		"LED management" },
 	{ ATH5K_DEBUG_DUMP_RX,	"dumprx",	"print received skb content" },
 	{ ATH5K_DEBUG_DUMP_TX,	"dumptx",	"print transmit skb content" },
 	{ ATH5K_DEBUG_DUMPBANDS, "dumpbands",	"dump bands" },
diff --git a/drivers/net/wireless/ath5k/initvals.c b/drivers/net/wireless/ath5k/initvals.c
index ea2e1a2..ceaa6c4 100644
--- a/drivers/net/wireless/ath5k/initvals.c
+++ b/drivers/net/wireless/ath5k/initvals.c
@@ -806,6 +806,8 @@  static const struct ath5k_ini_mode ar5212_rf5111_ini_mode_end[] = {
 		{ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 } },
 	{ AR5K_PHY(642),
 		{ 0xd03e6788, 0xd03e6788, 0xd03e6788, 0xd03e6788, 0xd03e6788 } },
+	{ 0xa228,
+		{ 0x000001b5, 0x000001b5, 0x000001b5, 0x000001b5, 0x000001b5 } },
 	{ 0xa23c,
 		{ 0x13c889af, 0x13c889af, 0x13c889af, 0x13c889af, 0x13c889af } },
 };
diff --git a/drivers/net/wireless/ath5k/reset.c b/drivers/net/wireless/ath5k/reset.c
index 8f18868..1b6d45b 100644
--- a/drivers/net/wireless/ath5k/reset.c
+++ b/drivers/net/wireless/ath5k/reset.c
@@ -537,9 +537,10 @@  int ath5k_hw_reset(struct ath5k_hw *ah, enum nl80211_iftype op_mode,
 		mdelay(1);
 
 		/*
-		 * Write some more initial register settings
+		 * Write some more initial register settings for revised chips
 		 */
-		if (ah->ah_version == AR5K_AR5212) {
+		if (ah->ah_version == AR5K_AR5212 &&
+		    ah->ah_phy_revision > 0x41) {
 			ath5k_hw_reg_write(ah, 0x0002a002, 0x982c);
 
 			if (channel->hw_value == CHANNEL_G)
@@ -558,19 +559,10 @@  int ath5k_hw_reset(struct ath5k_hw *ah, enum nl80211_iftype op_mode,
 			else
 				ath5k_hw_reg_write(ah, 0x00000000, 0x994c);
 
-			/* Some bits are disabled here, we know nothing about
-			 * register 0xa228 yet, most of the times this ends up
-			 * with a value 0x9b5 -haven't seen any dump with
-			 * a different value- */
-			/* Got this from decompiling binary HAL */
-			data = ath5k_hw_reg_read(ah, 0xa228);
-			data &= 0xfffffdff;
-			ath5k_hw_reg_write(ah, data, 0xa228);
-
-			data = ath5k_hw_reg_read(ah, 0xa228);
-			data &= 0xfffe03ff;
-			ath5k_hw_reg_write(ah, data, 0xa228);
-			data = 0;
+			/* Got this from legacy-hal */
+			AR5K_REG_DISABLE_BITS(ah, 0xa228, 0x200);
+
+			AR5K_REG_MASKED_BITS(ah, 0xa228, 0x800, 0xfffe03ff);
 
 			/* Just write 0x9b5 ? */
 			/* ath5k_hw_reg_write(ah, 0x000009b5, 0xa228); */
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 24a1aeb..321dbc8 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2090,7 +2090,6 @@  static void iwl_alive_start(struct iwl_priv *priv)
 		iwl4965_error_recovery(priv);
 
 	iwl_power_update_mode(priv, 1);
-	ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC);
 
 	if (test_and_clear_bit(STATUS_MODE_PENDING, &priv->status))
 		iwl4965_set_mode(priv, priv->iw_mode);
@@ -2342,6 +2341,7 @@  static void iwl_bg_alive_start(struct work_struct *data)
 	mutex_lock(&priv->mutex);
 	iwl_alive_start(priv);
 	mutex_unlock(&priv->mutex);
+	ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC);
 }
 
 static void iwl4965_bg_rf_kill(struct work_struct *work)
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c
index 297696d..8265c7d 100644
--- a/drivers/net/wireless/libertas/cmd.c
+++ b/drivers/net/wireless/libertas/cmd.c
@@ -605,9 +605,9 @@  int lbs_get_tx_power(struct lbs_private *priv, s16 *curlevel, s16 *minlevel,
 	if (ret == 0) {
 		*curlevel = le16_to_cpu(cmd.curlevel);
 		if (minlevel)
-			*minlevel = le16_to_cpu(cmd.minlevel);
+			*minlevel = cmd.minlevel;
 		if (maxlevel)
-			*maxlevel = le16_to_cpu(cmd.maxlevel);
+			*maxlevel = cmd.maxlevel;
 	}
 
 	lbs_deb_leave(LBS_DEB_CMD);
diff --git a/drivers/net/wireless/libertas/scan.c b/drivers/net/wireless/libertas/scan.c
index 8f66903..22c4c61 100644
--- a/drivers/net/wireless/libertas/scan.c
+++ b/drivers/net/wireless/libertas/scan.c
@@ -598,8 +598,8 @@  static int lbs_process_bss(struct bss_descriptor *bss,
 
 		switch (elem->id) {
 		case MFIE_TYPE_SSID:
-			bss->ssid_len = elem->len;
-			memcpy(bss->ssid, elem->data, elem->len);
+			bss->ssid_len = min_t(int, 32, elem->len);
+			memcpy(bss->ssid, elem->data, bss->ssid_len);
 			lbs_deb_scan("got SSID IE: '%s', len %u\n",
 			             escape_essid(bss->ssid, bss->ssid_len),
 			             bss->ssid_len);
diff --git a/drivers/net/wireless/rt2x00/Kconfig b/drivers/net/wireless/rt2x00/Kconfig
index f839ce0..95511ac 100644
--- a/drivers/net/wireless/rt2x00/Kconfig
+++ b/drivers/net/wireless/rt2x00/Kconfig
@@ -1,5 +1,5 @@ 
 menuconfig RT2X00
-	bool "Ralink driver support"
+	tristate "Ralink driver support"
 	depends on MAC80211 && WLAN_80211 && EXPERIMENTAL
 	---help---
 	  This will enable the experimental support for the Ralink drivers,