2011-05-06 22:24:39

by Ben Greear

[permalink] [raw]
Subject: [PATCH] ath5k: Fix lockup due to un-init spinlock.

From: Ben Greear <[email protected]>

This was introduced in 2.6.39-rc1 it seems.

Signed-off-by: Ben Greear <[email protected]>
---
:100644 100644 203243b... 2204762... M drivers/net/wireless/ath/ath5k/base.c
drivers/net/wireless/ath/ath5k/base.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index 203243b..2204762 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -2394,7 +2394,7 @@ ath5k_init_softc(struct ath5k_softc *sc, const struct ath_bus_ops *bus_ops)
spin_lock_init(&sc->rxbuflock);
spin_lock_init(&sc->txbuflock);
spin_lock_init(&sc->block);
-
+ spin_lock_init(&sc->irqlock);

/* Setup interrupt handler */
ret = request_irq(sc->irq, ath5k_intr, IRQF_SHARED, "ath", sc);
--
1.7.3.4



2011-05-10 19:53:35

by Ben Greear

[permalink] [raw]
Subject: Re: [PATCH] ath5k: Fix lockup due to un-init spinlock.

On 05/10/2011 12:42 PM, John W. Linville wrote:
> When applied to wireless-2.6, I get this:
>
> CC [M] drivers/net/wireless/ath/ath5k/base.o
> drivers/net/wireless/ath/ath5k/base.c: In function ‘ath5k_init_softc’:
> drivers/net/wireless/ath/ath5k/base.c:2357:2: error: ‘struct ath5k_softc’ has no member named ‘irqlock’
> drivers/net/wireless/ath/ath5k/base.c:2357:2: error: ‘struct ath5k_softc’ has no member named ‘irqlock’
>
> Is this only for -next?

This is against wireless-testing. Maybe I was confused about this being in 2.6.39-rcX.

Bug was caused by this commit as far as I can tell:

Author: Felix Fietkau <[email protected]> 2011-04-10 09:32:19
Committer: John W. Linville <[email protected]> 2011-04-12 13:59:27
Parent: 5b7916ad8c29da9f30fbf03a8b61862acdba00ce (ath5k: clean up debugfs code)
Child: 8962d87129ec0a820d17ac44cbf3f51010ad8db8 (ath5k: improve comments for optimized tx descriptor setup)
Child: 1d4af019d920c838e4de81afa0b5d67879090fd5 (Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6)
Branches: master, remotes/origin/master
Follows: v2.6.37-rc1
Precedes:


Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com


2011-05-10 19:45:54

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH] ath5k: Fix lockup due to un-init spinlock.

When applied to wireless-2.6, I get this:

CC [M] drivers/net/wireless/ath/ath5k/base.o
drivers/net/wireless/ath/ath5k/base.c: In function ‘ath5k_init_softc’:
drivers/net/wireless/ath/ath5k/base.c:2357:2: error: ‘struct ath5k_softc’ has no member named ‘irqlock’
drivers/net/wireless/ath/ath5k/base.c:2357:2: error: ‘struct ath5k_softc’ has no member named ‘irqlock’

Is this only for -next?

On Fri, May 06, 2011 at 03:24:34PM -0700, [email protected] wrote:
> From: Ben Greear <[email protected]>
>
> This was introduced in 2.6.39-rc1 it seems.
>
> Signed-off-by: Ben Greear <[email protected]>
> ---
> :100644 100644 203243b... 2204762... M drivers/net/wireless/ath/ath5k/base.c
> drivers/net/wireless/ath/ath5k/base.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
> index 203243b..2204762 100644
> --- a/drivers/net/wireless/ath/ath5k/base.c
> +++ b/drivers/net/wireless/ath/ath5k/base.c
> @@ -2394,7 +2394,7 @@ ath5k_init_softc(struct ath5k_softc *sc, const struct ath_bus_ops *bus_ops)
> spin_lock_init(&sc->rxbuflock);
> spin_lock_init(&sc->txbuflock);
> spin_lock_init(&sc->block);
> -
> + spin_lock_init(&sc->irqlock);
>
> /* Setup interrupt handler */
> ret = request_irq(sc->irq, ath5k_intr, IRQF_SHARED, "ath", sc);
> --
> 1.7.3.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.

2011-05-10 19:48:07

by Sedat Dilek

[permalink] [raw]
Subject: Re: [PATCH] ath5k: Fix lockup due to un-init spinlock.

On Sat, May 7, 2011 at 12:24 AM, <[email protected]> wrote:
> From: Ben Greear <[email protected]>
>
> This was introduced in 2.6.39-rc1 it seems.
>
> Signed-off-by: Ben Greear <[email protected]>
> ---
> :100644 100644 203243b... 2204762... M  drivers/net/wireless/ath/ath5k/base.c
>  drivers/net/wireless/ath/ath5k/base.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
> index 203243b..2204762 100644
> --- a/drivers/net/wireless/ath/ath5k/base.c
> +++ b/drivers/net/wireless/ath/ath5k/base.c
> @@ -2394,7 +2394,7 @@ ath5k_init_softc(struct ath5k_softc *sc, const struct ath_bus_ops *bus_ops)
>        spin_lock_init(&sc->rxbuflock);
>        spin_lock_init(&sc->txbuflock);
>        spin_lock_init(&sc->block);
> -
> +       spin_lock_init(&sc->irqlock);
>
>        /* Setup interrupt handler */
>        ret = request_irq(sc->irq, ath5k_intr, IRQF_SHARED, "ath", sc);
> --
> 1.7.3.4
>
>

Tested against linux-next (next-20110510).

- Sedat -