2008-10-29 23:19:49

by John W. Linville

[permalink] [raw]
Subject: pull request: wireless-2.6 2008-10-29

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(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 16202c8..185b84a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -738,6 +738,8 @@ P: Nick Kossifidis
M: [email protected]
P: Luis R. Rodriguez
M: [email protected]
+P: Bob Copeland
+M: [email protected]
L: [email protected]
L: [email protected]
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,
--
John W. Linville Linux should be at the core
[email protected] of your literate lifestyle.


2008-10-29 23:40:40

by Elias Oltmanns

[permalink] [raw]
Subject: Re: pull request: wireless-2.6 2008-10-29

"John W. Linville" <[email protected]> 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

2008-10-30 01:19:02

by Bob Copeland

[permalink] [raw]
Subject: Re: pull request: wireless-2.6 2008-10-29

On Wed, Oct 29, 2008 at 7:33 PM, John W. Linville
<[email protected]> 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" <[email protected]> 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...

--
Bob Copeland %% http://www.bobcopeland.com

2008-10-30 16:17:49

by Bob Copeland

[permalink] [raw]
Subject: Re: pull request: wireless-2.6 2008-10-29

On Thu, Oct 30, 2008 at 10:48 AM, Stefan Hellermann
<[email protected]> 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...
--
Bob Copeland %% http://www.bobcopeland.com

2008-10-31 06:50:20

by David Miller

[permalink] [raw]
Subject: Re: pull request: wireless-2.6 2008-10-29

From: "John W. Linville" <[email protected]>
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.

2008-10-30 03:59:47

by Arjan van de Ven

[permalink] [raw]
Subject: Re: pull request: wireless-2.6 2008-10-29

On Wed, 29 Oct 2008 21:19:01 -0400
"Bob Copeland" <[email protected]> wrote:

> On Wed, Oct 29, 2008 at 7:33 PM, John W. Linville
> <[email protected]> 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" <[email protected]> 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 ;-)

>


--
Arjan van de Ven Intel Open Source Technology Centre
For development, discussion and tips for power savings,
visit http://www.lesswatts.org

2008-10-30 15:58:21

by Stefan Hellermann

[permalink] [raw]
Subject: Re: pull request: wireless-2.6 2008-10-29

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" <[email protected]> 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 ]---


2008-10-29 23:22:58

by Arjan van de Ven

[permalink] [raw]
Subject: Re: pull request: wireless-2.6 2008-10-29

On Wed, 29 Oct 2008 19:18:55 -0400
"John W. Linville" <[email protected]> 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 ?

2008-10-29 23:34:49

by John W. Linville

[permalink] [raw]
Subject: Re: pull request: wireless-2.6 2008-10-29

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" <[email protected]> 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... :-)

--
John W. Linville Linux should be at the core
[email protected] of your literate lifestyle.