* [PATCH 1/3] ath9k: serialize ath9k_hw_setpower calls
@ 2009-06-21 15:47 Gabor Juhos
2009-06-21 15:47 ` [PATCH 2/3] ath9k: uninline ath9k_ps_{wakeup,restore} functions Gabor Juhos
2009-06-21 15:47 ` [PATCH 3/3] ath9k: serialize ath9k_ps_{wakeup,restore} calls Gabor Juhos
0 siblings, 2 replies; 7+ messages in thread
From: Gabor Juhos @ 2009-06-21 15:47 UTC (permalink / raw)
To: John Linville
Cc: Luis R. Rodriguez, Jouni Malinen, Sujith Manoharan,
Vasanthakumar Thiagarajan, Senthil Balasubramanian,
ath9k-devel@lists.ath9k.org, linux-wireless@vger.kernel.org,
Gabor Juhos
Because ath9k_setpower is called from various contexts, we have to
protect it against concurrent calls.
Changes-licensed-under: ISC
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
---
drivers/net/wireless/ath/ath9k/ath9k.h | 1 +
drivers/net/wireless/ath/ath9k/hw.c | 15 ++++++++++++++-
drivers/net/wireless/ath/ath9k/main.c | 1 +
3 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 7425a1f..902dfed 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -544,6 +544,7 @@ struct ath_softc {
int irq;
spinlock_t sc_resetlock;
spinlock_t sc_serial_rw;
+ spinlock_t sc_pm_lock;
struct mutex mutex;
u8 curbssid[ETH_ALEN];
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index 34935a8..7ade05e 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -2728,7 +2728,8 @@ static bool ath9k_hw_set_power_awake(struct ath_hw *ah, int setChip)
return true;
}
-bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode)
+static bool ath9k_hw_setpower_nolock(struct ath_hw *ah,
+ enum ath9k_power_mode mode)
{
int status = true, setChip = true;
static const char *modes[] = {
@@ -2762,6 +2763,18 @@ bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode)
return status;
}
+bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode)
+{
+ unsigned long flags;
+ bool ret;
+
+ spin_lock_irqsave(&ah->ah_sc->sc_pm_lock, flags);
+ ret = ath9k_hw_setpower_nolock(ah, mode);
+ spin_unlock_irqrestore(&ah->ah_sc->sc_pm_lock, flags);
+
+ return ret;
+}
+
/*
* Helper for ASPM support.
*
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 66a6c1f..3cb4831 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -1311,6 +1311,7 @@ static int ath_init(u16 devid, struct ath_softc *sc)
spin_lock_init(&sc->wiphy_lock);
spin_lock_init(&sc->sc_resetlock);
spin_lock_init(&sc->sc_serial_rw);
+ spin_lock_init(&sc->sc_pm_lock);
mutex_init(&sc->mutex);
tasklet_init(&sc->intr_tq, ath9k_tasklet, (unsigned long)sc);
tasklet_init(&sc->bcon_tasklet, ath_beacon_tasklet,
--
1.5.3.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] ath9k: uninline ath9k_ps_{wakeup,restore} functions
2009-06-21 15:47 [PATCH 1/3] ath9k: serialize ath9k_hw_setpower calls Gabor Juhos
@ 2009-06-21 15:47 ` Gabor Juhos
2009-06-21 15:47 ` [PATCH 3/3] ath9k: serialize ath9k_ps_{wakeup,restore} calls Gabor Juhos
1 sibling, 0 replies; 7+ messages in thread
From: Gabor Juhos @ 2009-06-21 15:47 UTC (permalink / raw)
To: John Linville
Cc: Luis R. Rodriguez, Jouni Malinen, Sujith Manoharan,
Vasanthakumar Thiagarajan, Senthil Balasubramanian,
ath9k-devel@lists.ath9k.org, linux-wireless@vger.kernel.org,
Gabor Juhos
Uninline these functions before we add functional changes to them.
Changes-licensed-under: ISC
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
---
drivers/net/wireless/ath/ath9k/ath9k.h | 23 ++---------------------
drivers/net/wireless/ath/ath9k/hw.c | 21 +++++++++++++++++++++
2 files changed, 23 insertions(+), 21 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 902dfed..9865452 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -658,27 +658,8 @@ static inline int ath_ahb_init(void) { return 0; };
static inline void ath_ahb_exit(void) {};
#endif
-static inline void ath9k_ps_wakeup(struct ath_softc *sc)
-{
- if (atomic_inc_return(&sc->ps_usecount) == 1)
- if (sc->sc_ah->power_mode != ATH9K_PM_AWAKE) {
- sc->sc_ah->restore_mode = sc->sc_ah->power_mode;
- ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_AWAKE);
- }
-}
-
-static inline void ath9k_ps_restore(struct ath_softc *sc)
-{
- if (atomic_dec_and_test(&sc->ps_usecount))
- if ((sc->hw->conf.flags & IEEE80211_CONF_PS) &&
- !(sc->sc_flags & (SC_OP_WAIT_FOR_BEACON |
- SC_OP_WAIT_FOR_CAB |
- SC_OP_WAIT_FOR_PSPOLL_DATA |
- SC_OP_WAIT_FOR_TX_ACK)))
- ath9k_hw_setpower(sc->sc_ah,
- sc->sc_ah->restore_mode);
-}
-
+void ath9k_ps_wakeup(struct ath_softc *sc);
+void ath9k_ps_restore(struct ath_softc *sc);
void ath9k_set_bssid_mask(struct ieee80211_hw *hw);
int ath9k_wiphy_add(struct ath_softc *sc);
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index 7ade05e..acf5256 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -2775,6 +2775,27 @@ bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode)
return ret;
}
+void ath9k_ps_wakeup(struct ath_softc *sc)
+{
+ if (atomic_inc_return(&sc->ps_usecount) == 1)
+ if (sc->sc_ah->power_mode != ATH9K_PM_AWAKE) {
+ sc->sc_ah->restore_mode = sc->sc_ah->power_mode;
+ ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_AWAKE);
+ }
+}
+
+void ath9k_ps_restore(struct ath_softc *sc)
+{
+ if (atomic_dec_and_test(&sc->ps_usecount))
+ if ((sc->hw->conf.flags & IEEE80211_CONF_PS) &&
+ !(sc->sc_flags & (SC_OP_WAIT_FOR_BEACON |
+ SC_OP_WAIT_FOR_CAB |
+ SC_OP_WAIT_FOR_PSPOLL_DATA |
+ SC_OP_WAIT_FOR_TX_ACK)))
+ ath9k_hw_setpower(sc->sc_ah,
+ sc->sc_ah->restore_mode);
+}
+
/*
* Helper for ASPM support.
*
--
1.5.3.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] ath9k: serialize ath9k_ps_{wakeup,restore} calls
2009-06-21 15:47 [PATCH 1/3] ath9k: serialize ath9k_hw_setpower calls Gabor Juhos
2009-06-21 15:47 ` [PATCH 2/3] ath9k: uninline ath9k_ps_{wakeup,restore} functions Gabor Juhos
@ 2009-06-21 15:47 ` Gabor Juhos
2009-06-21 19:49 ` Gabor Juhos
1 sibling, 1 reply; 7+ messages in thread
From: Gabor Juhos @ 2009-06-21 15:47 UTC (permalink / raw)
To: John Linville
Cc: Luis R. Rodriguez, Jouni Malinen, Sujith Manoharan,
Vasanthakumar Thiagarajan, Senthil Balasubramanian,
ath9k-devel@lists.ath9k.org, linux-wireless@vger.kernel.org,
Gabor Juhos
These functions are changing the power mode of the chip, but this may
have unpredictable effects, if another code are trying to set the power
mode via 'ath9k_hw_setpower' in the same time from another context.
Changes-licensed-under: ISC
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
---
drivers/net/wireless/ath/ath9k/ath9k.h | 2 +-
drivers/net/wireless/ath/ath9k/hw.c | 42 ++++++++++++++++++++++----------
2 files changed, 30 insertions(+), 14 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 9865452..23b5586 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -561,7 +561,7 @@ struct ath_softc {
u32 keymax;
DECLARE_BITMAP(keymap, ATH_KEYMAX);
u8 splitmic;
- atomic_t ps_usecount;
+ unsigned long ps_usecount;
enum ath9k_int imask;
enum ath9k_ht_extprotspacing ht_extprotspacing;
enum ath9k_ht_macmode tx_chan_width;
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index acf5256..b321209 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -2777,23 +2777,39 @@ bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode)
void ath9k_ps_wakeup(struct ath_softc *sc)
{
- if (atomic_inc_return(&sc->ps_usecount) == 1)
- if (sc->sc_ah->power_mode != ATH9K_PM_AWAKE) {
- sc->sc_ah->restore_mode = sc->sc_ah->power_mode;
- ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_AWAKE);
- }
+ unsigned long flags;
+
+ spin_lock_irqsave(&sc->sc_pm_lock, flags);
+ if (++sc->ps_usecount != 1)
+ goto unlock;
+
+ if (sc->sc_ah->power_mode != ATH9K_PM_AWAKE) {
+ sc->sc_ah->restore_mode = sc->sc_ah->power_mode;
+ ath9k_hw_setpower_nolock(sc->sc_ah, ATH9K_PM_AWAKE);
+ }
+
+ unlock:
+ spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
}
void ath9k_ps_restore(struct ath_softc *sc)
{
- if (atomic_dec_and_test(&sc->ps_usecount))
- if ((sc->hw->conf.flags & IEEE80211_CONF_PS) &&
- !(sc->sc_flags & (SC_OP_WAIT_FOR_BEACON |
- SC_OP_WAIT_FOR_CAB |
- SC_OP_WAIT_FOR_PSPOLL_DATA |
- SC_OP_WAIT_FOR_TX_ACK)))
- ath9k_hw_setpower(sc->sc_ah,
- sc->sc_ah->restore_mode);
+ unsigned long flags;
+
+ spin_lock_irqsave(&sc->sc_pm_lock, flags);
+ if (--sc->ps_usecount != 0)
+ goto unlock;
+
+ if ((sc->hw->conf.flags & IEEE80211_CONF_PS) &&
+ !(sc->sc_flags & (SC_OP_WAIT_FOR_BEACON |
+ SC_OP_WAIT_FOR_CAB |
+ SC_OP_WAIT_FOR_PSPOLL_DATA |
+ SC_OP_WAIT_FOR_TX_ACK)))
+ ath9k_hw_setpower_nolock(sc->sc_ah,
+ sc->sc_ah->restore_mode);
+
+ unlock:
+ spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
}
/*
--
1.5.3.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] ath9k: serialize ath9k_ps_{wakeup,restore} calls
2009-06-21 15:47 ` [PATCH 3/3] ath9k: serialize ath9k_ps_{wakeup,restore} calls Gabor Juhos
@ 2009-06-21 19:49 ` Gabor Juhos
2009-06-22 8:36 ` Gabor Juhos
2009-06-22 11:23 ` Johannes Berg
0 siblings, 2 replies; 7+ messages in thread
From: Gabor Juhos @ 2009-06-21 19:49 UTC (permalink / raw)
To: John Linville
Cc: Luis R. Rodriguez, Jouni Malinen, Sujith Manoharan,
Vasanthakumar Thiagarajan, Senthil Balasubramanian,
ath9k-devel@lists.ath9k.org, linux-wireless@vger.kernel.org
Gabor Juhos írta:
> These functions are changing the power mode of the chip, but this may
> have unpredictable effects, if another code are trying to set the power
> mode via 'ath9k_hw_setpower' in the same time from another context.
>
> Changes-licensed-under: ISC
> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
> ---
> drivers/net/wireless/ath/ath9k/ath9k.h | 2 +-
> drivers/net/wireless/ath/ath9k/hw.c | 42 ++++++++++++++++++++++----------
> 2 files changed, 30 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
> index 9865452..23b5586 100644
> --- a/drivers/net/wireless/ath/ath9k/ath9k.h
> +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
> @@ -561,7 +561,7 @@ struct ath_softc {
> u32 keymax;
> DECLARE_BITMAP(keymap, ATH_KEYMAX);
> u8 splitmic;
> - atomic_t ps_usecount;
> + unsigned long ps_usecount;
> enum ath9k_int imask;
> enum ath9k_ht_extprotspacing ht_extprotspacing;
> enum ath9k_ht_macmode tx_chan_width;
> diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
> index acf5256..b321209 100644
> --- a/drivers/net/wireless/ath/ath9k/hw.c
> +++ b/drivers/net/wireless/ath/ath9k/hw.c
> @@ -2777,23 +2777,39 @@ bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode)
>
> void ath9k_ps_wakeup(struct ath_softc *sc)
> {
> - if (atomic_inc_return(&sc->ps_usecount) == 1)
> - if (sc->sc_ah->power_mode != ATH9K_PM_AWAKE) {
> - sc->sc_ah->restore_mode = sc->sc_ah->power_mode;
> - ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_AWAKE);
> - }
> + unsigned long flags;
> +
> + spin_lock_irqsave(&sc->sc_pm_lock, flags);
> + if (++sc->ps_usecount != 1)
> + goto unlock;
> +
> + if (sc->sc_ah->power_mode != ATH9K_PM_AWAKE) {
> + sc->sc_ah->restore_mode = sc->sc_ah->power_mode;
> + ath9k_hw_setpower_nolock(sc->sc_ah, ATH9K_PM_AWAKE);
> + }
> +
> + unlock:
> + spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
> }
>
> void ath9k_ps_restore(struct ath_softc *sc)
> {
> - if (atomic_dec_and_test(&sc->ps_usecount))
> - if ((sc->hw->conf.flags & IEEE80211_CONF_PS) &&
> - !(sc->sc_flags & (SC_OP_WAIT_FOR_BEACON |
> - SC_OP_WAIT_FOR_CAB |
> - SC_OP_WAIT_FOR_PSPOLL_DATA |
> - SC_OP_WAIT_FOR_TX_ACK)))
> - ath9k_hw_setpower(sc->sc_ah,
> - sc->sc_ah->restore_mode);
> + unsigned long flags;
> +
> + spin_lock_irqsave(&sc->sc_pm_lock, flags);
> + if (--sc->ps_usecount != 0)
> + goto unlock;
> +
> + if ((sc->hw->conf.flags & IEEE80211_CONF_PS) &&
> + !(sc->sc_flags & (SC_OP_WAIT_FOR_BEACON |
> + SC_OP_WAIT_FOR_CAB |
> + SC_OP_WAIT_FOR_PSPOLL_DATA |
> + SC_OP_WAIT_FOR_TX_ACK)))
> + ath9k_hw_setpower_nolock(sc->sc_ah,
> + sc->sc_ah->restore_mode);
> +
> + unlock:
> + spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
> }
>
> /*
John,
Please wait with these 3 patches, I got this while the interface is in Master mode:
=========================================================
[ INFO: possible irq lock inversion dependency detected ]
2.6.30 #37
---------------------------------------------------------
swapper/0 just changed the state of lock:
(&local->sta_lock){..-...}, at: [<c0252f3c>] ieee80211_beacon_get+0x148/0x518 [mac80211]
but this lock took another, SOFTIRQ-unsafe lock in the past:
(todo_lock){+.+...}
and interrupts could create inverse lock ordering between them.
other info that might help us debug this:
1 lock held by swapper/0:
#0: (rcu_read_lock){.+.+..}, at: [<c0252df4>] ieee80211_beacon_get+0x0/0x518 [mac80211]
the first lock's dependencies:
-> (&local->sta_lock){..-...} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0252f3c>] ieee80211_beacon_get+0x148/0x518 [mac80211]
[<c0c87168>] ath_beacon_tasklet+0x248/0x528 [ath9k]
[<8008f710>] tasklet_action+0x84/0xf0
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<80060b00>] r4k_wait+0x20/0x40
[<8006ce1c>] cpu_idle+0x20/0x40
[<8031e9f0>] start_kernel+0x36c/0x388
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c023a784>] sta_info_insert+0xb0/0x1ec [mac80211]
[<c0243fd4>] ieee80211_beacon_loss_work+0x7a0/0xcc8 [mac80211]
}
... key at: [<c0271250>] __this_module+0x1a0/0xffff27fc [mac80211]
-> (&local->key_lock){......} ops: 0 {
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0253ce8>] ieee80211_key_todo+0x88/0x114 [mac80211]
}
... key at: [<c0271220>] __this_module+0x170/0xffff27fc [mac80211]
-> (todo_lock){+.+...} ops: 0 {
HARDIRQ-ON-W at:
[<800b3cfc>] __lock_acquire+0x630/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
SOFTIRQ-ON-W at:
[<800b3d20>] __lock_acquire+0x654/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
}
... key at: [<c0270f00>] mac80211_config_ops+0xf0/0xffff2a9c [mac80211]
-> (&cwq->lock){..-...} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<800949e0>] run_timer_softirq+0x174/0x204
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<8009c38c>] call_usermodehelper_exec+0x104/0x144
[<801861fc>] kobject_uevent_env+0x370/0x3dc
[<80185538>] kset_register+0x44/0x5c
[<801ba354>] bus_register+0xb0/0x260
[<8032e288>] platform_bus_init+0x38/0x64
[<8032e504>] driver_init+0x30/0x44
[<8031e5f8>] kernel_init+0x80/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a1a320>] __key.20477+0x0/0x8
-> (&q->lock){..-.-.} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800829e0>] __wake_up+0x30/0x74
[<8008f710>] tasklet_action+0x84/0xf0
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<8006aff4>] _spin_unlock_irqrestore+0x74/0x8c
[<801b16cc>] uart_write+0xf0/0x120
[<801aa19c>] n_tty_write+0x290/0x3fc
[<801a76a4>] tty_write+0x1b0/0x26c
[<800ecd2c>] sys_write+0x54/0x98
[<80062778>] stack_done+0x20/0x3c
IN-RECLAIM_FS-W at:
[<800b3d64>] __lock_acquire+0x698/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a1584>] prepare_to_wait+0x34/0x80
[<800d03d4>] kswapd+0xc0/0x4bc
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006ae7c>] _spin_lock_irq+0x48/0x60
[<80067944>] wait_for_common+0x3c/0x188
[<800a10f8>] kthread_create+0x80/0xe8
[<80339b7c>] cpu_callback+0x68/0xd0
[<80324cbc>] spawn_ksoftirqd+0x1c/0x4c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e5c4>] kernel_init+0x4c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a1a6a0>] __key.15349+0x0/0x10
-> (&rq->lock){-.-.-.} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80086f6c>] scheduler_tick+0x24/0xc4
[<8009523c>] update_process_times+0x58/0x70
[<800ae16c>] tick_handle_periodic+0x20/0x140
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<8008a940>] vprintk+0x434/0x460
[<8008a990>] printk+0x24/0x30
[<80326004>] lockdep_info+0x34/0xac
[<8031e8e4>] start_kernel+0x260/0x388
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80084670>] task_rq_lock+0x2c/0x40
[<8008492c>] try_to_wake_up+0x40/0x15c
[<8008f178>] __do_softirq+0xf8/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800a8a0c>] sysctl_check_lookup+0xb8/0x164
[<800a8cf0>] sysctl_check_table+0x1c4/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<8009273c>] __register_sysctl_paths+0x114/0x2f8
[<80331c00>] inet_init+0x6c/0x26c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
IN-RECLAIM_FS-W at:
[<800b3d64>] __lock_acquire+0x698/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006ae7c>] _spin_lock_irq+0x48/0x60
[<80067b80>] __schedule+0x68/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800d03f4>] kswapd+0xe0/0x4bc
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<803399d4>] init_idle+0x2c/0xc4
[<80324708>] sched_init+0x254/0x290
[<8031e78c>] start_kernel+0x108/0x388
}
... key at: [<80a146cc>] __key.35967+0x0/0x8
-> (&rt_b->rt_runtime_lock){-.-...} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<8008496c>] try_to_wake_up+0x80/0x15c
[<800bda80>] softlockup_tick+0xe4/0x1a8
[<80095210>] update_process_times+0x2c/0x70
[<800aebc0>] tick_sched_timer+0x308/0x35c
[<800a4724>] __run_hrtimer+0x6c/0xc8
[<800a5654>] hrtimer_interrupt+0x224/0x2d0
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<80060b00>] r4k_wait+0x20/0x40
[<8006ce1c>] cpu_idle+0x20/0x40
[<8031e9f0>] start_kernel+0x36c/0x388
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<8008496c>] try_to_wake_up+0x80/0x15c
[<800bda80>] softlockup_tick+0xe4/0x1a8
[<80095210>] update_process_times+0x2c/0x70
[<800aebc0>] tick_sched_timer+0x308/0x35c
[<800a4724>] __run_hrtimer+0x6c/0xc8
[<800a5654>] hrtimer_interrupt+0x224/0x2d0
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<c0c8a6f8>] ath_reset+0x4c4/0x5f8 [ath9k]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a146d4>] __key.32178+0x0/0x8
-> (&cpu_base->lock){-.-...} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<800a4894>] hrtimer_run_queues+0x114/0x1b0
[<800950f8>] run_local_timers+0x10/0x24
[<80095210>] update_process_times+0x2c/0x70
[<800ae16c>] tick_handle_periodic+0x20/0x140
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<8008a940>] vprintk+0x434/0x460
[<8008a990>] printk+0x24/0x30
[<801ddfd0>] sock_register+0x94/0xac
[<8033071c>] netlink_proto_init+0x134/0x180
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800a5158>] hrtimer_start_range_ns+0x24/0x30
[<800ae874>] tick_setup_sched_timer+0x224/0x268
[<800a5c24>] hrtimer_run_pending+0xdc/0x15c
[<80094894>] run_timer_softirq+0x28/0x204
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800a8a0c>] sysctl_check_lookup+0xb8/0x164
[<800a8cf0>] sysctl_check_table+0x1c4/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<8009273c>] __register_sysctl_paths+0x114/0x2f8
[<80331c00>] inet_init+0x6c/0x26c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800853f8>] __enqueue_rt_entity+0x1ac/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a1a6e0>] __key.16951+0x0/0x8
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800853f8>] __enqueue_rt_entity+0x1ac/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
-> (&rt_rq->rt_runtime_lock){......} ops: 0 {
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80082488>] update_curr_rt+0x124/0x234
[<800866d8>] dequeue_task_rt+0x1c/0x4c
[<800810e8>] dequeue_task+0x9c/0xb8
[<800811b0>] deactivate_task+0x48/0x64
[<80067c24>] __schedule+0x10c/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800bdb8c>] watchdog+0x48/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a146dc>] __key.35951+0x0/0xc
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80082488>] update_curr_rt+0x124/0x234
[<800866d8>] dequeue_task_rt+0x1c/0x4c
[<800810e8>] dequeue_task+0x9c/0xb8
[<800811b0>] deactivate_task+0x48/0x64
[<80067c24>] __schedule+0x10c/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800bdb8c>] watchdog+0x48/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80084670>] task_rq_lock+0x2c/0x40
[<8008492c>] try_to_wake_up+0x40/0x15c
[<80081380>] __wake_up_common+0x54/0xc0
[<800828ec>] complete+0x4c/0x6c
[<800a119c>] kthread+0x3c/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800829e0>] __wake_up+0x30/0x74
[<8009d224>] __queue_work+0x34/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<8009c38c>] call_usermodehelper_exec+0x104/0x144
[<801861fc>] kobject_uevent_env+0x370/0x3dc
[<80185538>] kset_register+0x44/0x5c
[<801ba354>] bus_register+0xb0/0x260
[<8032e288>] platform_bus_init+0x38/0x64
[<8032e504>] driver_init+0x30/0x44
[<8031e5f8>] kernel_init+0x80/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<c0253288>] ieee80211_beacon_get+0x494/0x518 [mac80211]
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253218>] ieee80211_beacon_get+0x424/0x518 [mac80211]
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0253b18>] ieee80211_key_free+0x78/0xe0 [mac80211]
[<c0239824>] ieee80211_alloc_hw+0x1240/0x13ec [mac80211]
-> (&sta->flaglock){..-...} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c024bd14>] ieee80211_rx_irqsafe+0x298/0x3568 [mac80211]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0243d04>] ieee80211_beacon_loss_work+0x4d0/0xcc8 [mac80211]
}
... key at: [<c0271260>] __this_module+0x1b0/0xffff27fc [mac80211]
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c023988c>] ieee80211_alloc_hw+0x12a8/0x13ec [mac80211]
-> (&txq->axq_lock){+.-...} ops: 0 {
HARDIRQ-ON-W at:
[<800b3cfc>] __lock_acquire+0x630/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a9c8>] _spin_lock_bh+0x40/0x58
[<c0c8f2e4>] ath_draintxq+0x54/0x2f4 [ath9k]
[<c0c90c4c>] ath_drain_all_txq+0x164/0x194 [ath9k]
[<c0c89c38>] ath_set_channel+0x84/0x5a0 [ath9k]
[<c0c8c278>] ath_descdma_setup+0x550/0x5d4 [ath9k]
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a9c8>] _spin_lock_bh+0x40/0x58
[<c0c90570>] ath_tx_tasklet+0xf0/0x4c0 [ath9k]
[<c0c8a7a0>] ath_reset+0x56c/0x5f8 [ath9k]
[<8006a820>] _spin_unlock+0x20/0x34
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a9c8>] _spin_lock_bh+0x40/0x58
[<c0c8f2e4>] ath_draintxq+0x54/0x2f4 [ath9k]
[<c0c90c4c>] ath_drain_all_txq+0x164/0x194 [ath9k]
[<c0c89c38>] ath_set_channel+0x84/0x5a0 [ath9k]
[<c0c8c278>] ath_descdma_setup+0x550/0x5d4 [ath9k]
}
... key at: [<c0cb41b8>] btcoex_enable+0x614/0xfffe2ff0 [ath9k]
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0c914ac>] ath_tx_node_cleanup+0x64/0x190 [ath9k]
[<c0239938>] ieee80211_alloc_hw+0x1354/0x13ec [mac80211]
the second lock's dependencies:
-> (todo_lock){+.+...} ops: 0 {
HARDIRQ-ON-W at:
[<800b3cfc>] __lock_acquire+0x630/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
SOFTIRQ-ON-W at:
[<800b3d20>] __lock_acquire+0x654/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
}
... key at: [<c0270f00>] mac80211_config_ops+0xf0/0xffff2a9c [mac80211]
-> (&cwq->lock){..-...} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<800949e0>] run_timer_softirq+0x174/0x204
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<8009c38c>] call_usermodehelper_exec+0x104/0x144
[<801861fc>] kobject_uevent_env+0x370/0x3dc
[<80185538>] kset_register+0x44/0x5c
[<801ba354>] bus_register+0xb0/0x260
[<8032e288>] platform_bus_init+0x38/0x64
[<8032e504>] driver_init+0x30/0x44
[<8031e5f8>] kernel_init+0x80/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a1a320>] __key.20477+0x0/0x8
-> (&q->lock){..-.-.} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800829e0>] __wake_up+0x30/0x74
[<8008f710>] tasklet_action+0x84/0xf0
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<8006aff4>] _spin_unlock_irqrestore+0x74/0x8c
[<801b16cc>] uart_write+0xf0/0x120
[<801aa19c>] n_tty_write+0x290/0x3fc
[<801a76a4>] tty_write+0x1b0/0x26c
[<800ecd2c>] sys_write+0x54/0x98
[<80062778>] stack_done+0x20/0x3c
IN-RECLAIM_FS-W at:
[<800b3d64>] __lock_acquire+0x698/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a1584>] prepare_to_wait+0x34/0x80
[<800d03d4>] kswapd+0xc0/0x4bc
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006ae7c>] _spin_lock_irq+0x48/0x60
[<80067944>] wait_for_common+0x3c/0x188
[<800a10f8>] kthread_create+0x80/0xe8
[<80339b7c>] cpu_callback+0x68/0xd0
[<80324cbc>] spawn_ksoftirqd+0x1c/0x4c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e5c4>] kernel_init+0x4c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a1a6a0>] __key.15349+0x0/0x10
-> (&rq->lock){-.-.-.} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80086f6c>] scheduler_tick+0x24/0xc4
[<8009523c>] update_process_times+0x58/0x70
[<800ae16c>] tick_handle_periodic+0x20/0x140
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<8008a940>] vprintk+0x434/0x460
[<8008a990>] printk+0x24/0x30
[<80326004>] lockdep_info+0x34/0xac
[<8031e8e4>] start_kernel+0x260/0x388
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80084670>] task_rq_lock+0x2c/0x40
[<8008492c>] try_to_wake_up+0x40/0x15c
[<8008f178>] __do_softirq+0xf8/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800a8a0c>] sysctl_check_lookup+0xb8/0x164
[<800a8cf0>] sysctl_check_table+0x1c4/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<8009273c>] __register_sysctl_paths+0x114/0x2f8
[<80331c00>] inet_init+0x6c/0x26c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
IN-RECLAIM_FS-W at:
[<800b3d64>] __lock_acquire+0x698/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006ae7c>] _spin_lock_irq+0x48/0x60
[<80067b80>] __schedule+0x68/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800d03f4>] kswapd+0xe0/0x4bc
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<803399d4>] init_idle+0x2c/0xc4
[<80324708>] sched_init+0x254/0x290
[<8031e78c>] start_kernel+0x108/0x388
}
... key at: [<80a146cc>] __key.35967+0x0/0x8
-> (&rt_b->rt_runtime_lock){-.-...} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<8008496c>] try_to_wake_up+0x80/0x15c
[<800bda80>] softlockup_tick+0xe4/0x1a8
[<80095210>] update_process_times+0x2c/0x70
[<800aebc0>] tick_sched_timer+0x308/0x35c
[<800a4724>] __run_hrtimer+0x6c/0xc8
[<800a5654>] hrtimer_interrupt+0x224/0x2d0
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<80060b00>] r4k_wait+0x20/0x40
[<8006ce1c>] cpu_idle+0x20/0x40
[<8031e9f0>] start_kernel+0x36c/0x388
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<8008496c>] try_to_wake_up+0x80/0x15c
[<800bda80>] softlockup_tick+0xe4/0x1a8
[<80095210>] update_process_times+0x2c/0x70
[<800aebc0>] tick_sched_timer+0x308/0x35c
[<800a4724>] __run_hrtimer+0x6c/0xc8
[<800a5654>] hrtimer_interrupt+0x224/0x2d0
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<c0c8a6f8>] ath_reset+0x4c4/0x5f8 [ath9k]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a146d4>] __key.32178+0x0/0x8
-> (&cpu_base->lock){-.-...} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<800a4894>] hrtimer_run_queues+0x114/0x1b0
[<800950f8>] run_local_timers+0x10/0x24
[<80095210>] update_process_times+0x2c/0x70
[<800ae16c>] tick_handle_periodic+0x20/0x140
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<8008a940>] vprintk+0x434/0x460
[<8008a990>] printk+0x24/0x30
[<801ddfd0>] sock_register+0x94/0xac
[<8033071c>] netlink_proto_init+0x134/0x180
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800a5158>] hrtimer_start_range_ns+0x24/0x30
[<800ae874>] tick_setup_sched_timer+0x224/0x268
[<800a5c24>] hrtimer_run_pending+0xdc/0x15c
[<80094894>] run_timer_softirq+0x28/0x204
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800a8a0c>] sysctl_check_lookup+0xb8/0x164
[<800a8cf0>] sysctl_check_table+0x1c4/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<8009273c>] __register_sysctl_paths+0x114/0x2f8
[<80331c00>] inet_init+0x6c/0x26c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800853f8>] __enqueue_rt_entity+0x1ac/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a1a6e0>] __key.16951+0x0/0x8
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800853f8>] __enqueue_rt_entity+0x1ac/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
-> (&rt_rq->rt_runtime_lock){......} ops: 0 {
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80082488>] update_curr_rt+0x124/0x234
[<800866d8>] dequeue_task_rt+0x1c/0x4c
[<800810e8>] dequeue_task+0x9c/0xb8
[<800811b0>] deactivate_task+0x48/0x64
[<80067c24>] __schedule+0x10c/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800bdb8c>] watchdog+0x48/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a146dc>] __key.35951+0x0/0xc
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80082488>] update_curr_rt+0x124/0x234
[<800866d8>] dequeue_task_rt+0x1c/0x4c
[<800810e8>] dequeue_task+0x9c/0xb8
[<800811b0>] deactivate_task+0x48/0x64
[<80067c24>] __schedule+0x10c/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800bdb8c>] watchdog+0x48/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80084670>] task_rq_lock+0x2c/0x40
[<8008492c>] try_to_wake_up+0x40/0x15c
[<80081380>] __wake_up_common+0x54/0xc0
[<800828ec>] complete+0x4c/0x6c
[<800a119c>] kthread+0x3c/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800829e0>] __wake_up+0x30/0x74
[<8009d224>] __queue_work+0x34/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<8009c38c>] call_usermodehelper_exec+0x104/0x144
[<801861fc>] kobject_uevent_env+0x370/0x3dc
[<80185538>] kset_register+0x44/0x5c
[<801ba354>] bus_register+0xb0/0x260
[<8032e288>] platform_bus_init+0x38/0x64
[<8032e504>] driver_init+0x30/0x44
[<8031e5f8>] kernel_init+0x80/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<c0253288>] ieee80211_beacon_get+0x494/0x518 [mac80211]
stack backtrace:
Call Trace:
[<800706e4>] dump_stack+0x8/0x34
[<800b065c>] print_irq_inversion_bug+0x1a0/0x1c4
[<800b4918>] check_usage_forwards+0xd0/0xf0
[<800b0c74>] mark_lock+0x408/0x6f0
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0252f3c>] ieee80211_beacon_get+0x148/0x518 [mac80211]
[<c0c87168>] ath_beacon_tasklet+0x248/0x528 [ath9k]
[<8008f710>] tasklet_action+0x84/0xf0
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<80060b00>] r4k_wait+0x20/0x40
[<8006ce1c>] cpu_idle+0x20/0x40
[<8031e9f0>] start_kernel+0x36c/0x388
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] ath9k: serialize ath9k_ps_{wakeup,restore} calls
2009-06-21 19:49 ` Gabor Juhos
@ 2009-06-22 8:36 ` Gabor Juhos
2009-06-22 11:23 ` Johannes Berg
1 sibling, 0 replies; 7+ messages in thread
From: Gabor Juhos @ 2009-06-22 8:36 UTC (permalink / raw)
To: John Linville
Cc: Luis R. Rodriguez, Jouni Malinen, Sujith Manoharan,
Vasanthakumar Thiagarajan, Senthil Balasubramanian,
ath9k-devel@lists.ath9k.org, linux-wireless@vger.kernel.org
Gabor Juhos írta:
> Gabor Juhos írta:
>> These functions are changing the power mode of the chip, but this may
>> have unpredictable effects, if another code are trying to set the power
>> mode via 'ath9k_hw_setpower' in the same time from another context.
>>
>> Changes-licensed-under: ISC
>> Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
>> ---
>> drivers/net/wireless/ath/ath9k/ath9k.h | 2 +-
>> drivers/net/wireless/ath/ath9k/hw.c | 42 ++++++++++++++++++++++----------
>> 2 files changed, 30 insertions(+), 14 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
>> index 9865452..23b5586 100644
>> --- a/drivers/net/wireless/ath/ath9k/ath9k.h
>> +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
>> @@ -561,7 +561,7 @@ struct ath_softc {
>> u32 keymax;
>> DECLARE_BITMAP(keymap, ATH_KEYMAX);
>> u8 splitmic;
>> - atomic_t ps_usecount;
>> + unsigned long ps_usecount;
>> enum ath9k_int imask;
>> enum ath9k_ht_extprotspacing ht_extprotspacing;
>> enum ath9k_ht_macmode tx_chan_width;
>> diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
>> index acf5256..b321209 100644
>> --- a/drivers/net/wireless/ath/ath9k/hw.c
>> +++ b/drivers/net/wireless/ath/ath9k/hw.c
>> @@ -2777,23 +2777,39 @@ bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode)
>>
>> void ath9k_ps_wakeup(struct ath_softc *sc)
>> {
>> - if (atomic_inc_return(&sc->ps_usecount) == 1)
>> - if (sc->sc_ah->power_mode != ATH9K_PM_AWAKE) {
>> - sc->sc_ah->restore_mode = sc->sc_ah->power_mode;
>> - ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_AWAKE);
>> - }
>> + unsigned long flags;
>> +
>> + spin_lock_irqsave(&sc->sc_pm_lock, flags);
>> + if (++sc->ps_usecount != 1)
>> + goto unlock;
>> +
>> + if (sc->sc_ah->power_mode != ATH9K_PM_AWAKE) {
>> + sc->sc_ah->restore_mode = sc->sc_ah->power_mode;
>> + ath9k_hw_setpower_nolock(sc->sc_ah, ATH9K_PM_AWAKE);
>> + }
>> +
>> + unlock:
>> + spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
>> }
>>
>> void ath9k_ps_restore(struct ath_softc *sc)
>> {
>> - if (atomic_dec_and_test(&sc->ps_usecount))
>> - if ((sc->hw->conf.flags & IEEE80211_CONF_PS) &&
>> - !(sc->sc_flags & (SC_OP_WAIT_FOR_BEACON |
>> - SC_OP_WAIT_FOR_CAB |
>> - SC_OP_WAIT_FOR_PSPOLL_DATA |
>> - SC_OP_WAIT_FOR_TX_ACK)))
>> - ath9k_hw_setpower(sc->sc_ah,
>> - sc->sc_ah->restore_mode);
>> + unsigned long flags;
>> +
>> + spin_lock_irqsave(&sc->sc_pm_lock, flags);
>> + if (--sc->ps_usecount != 0)
>> + goto unlock;
>> +
>> + if ((sc->hw->conf.flags & IEEE80211_CONF_PS) &&
>> + !(sc->sc_flags & (SC_OP_WAIT_FOR_BEACON |
>> + SC_OP_WAIT_FOR_CAB |
>> + SC_OP_WAIT_FOR_PSPOLL_DATA |
>> + SC_OP_WAIT_FOR_TX_ACK)))
>> + ath9k_hw_setpower_nolock(sc->sc_ah,
>> + sc->sc_ah->restore_mode);
>> +
>> + unlock:
>> + spin_unlock_irqrestore(&sc->sc_pm_lock, flags);
>> }
>>
>> /*
>
> John,
>
> Please wait with these 3 patches, I got this while the interface is in Master mode:
>
> =========================================================
> [ INFO: possible irq lock inversion dependency detected ]
> 2.6.30 #37
> ---------------------------------------------------------
> swapper/0 just changed the state of lock:
> (&local->sta_lock){..-...}, at: [<c0252f3c>] ieee80211_beacon_get+0x148/0x518 [mac80211]
> but this lock took another, SOFTIRQ-unsafe lock in the past:
> (todo_lock){+.+...}
> <...>
Weird, I'm getting similar results without my patches when i change the
interface type from Managed to Master with the following steps:
cat << EOF > /var/run/wpa_supplicant-wlan0.conf
ctrl_interface=/var/run/wpa_supplicant-wlan0
network={
scan_ssid=1
ssid="FOOBAR"
key_mgmt=WPA-PSK
proto=RSN
psk="foobarbaz"
}
EOF
cat << EOF > /var/run/hostapd-wlan0.conf
ctrl_interface=/var/run/hostapd-wlan0
driver=nl80211
interface=wlan0
hw_mode=g
channel=5
bridge=br-lan
ssid=FOO
debug=0
wpa=0
EOF
wpa_supplicant -ddd -b br-lan -B -D wext -i wlan0 -c /var/run/wpa_supplicant-wlan0.conf
sleep 10
killall wpa_supplicant
hostapd -B /var/run/hostapd-wlan0.conf
---
=========================================================
[ INFO: possible irq lock inversion dependency detected ]
2.6.30 #41
---------------------------------------------------------
hotplug-call/1161 just changed the state of lock:
(&local->sta_lock){..-...}, at: [<c0252f3c>] ieee80211_beacon_get+0x148/0x518 [mac80211]
but this lock took another, SOFTIRQ-unsafe lock in the past:
(todo_lock){+.+...}
and interrupts could create inverse lock ordering between them.
other info that might help us debug this:
1 lock held by hotplug-call/1161:
#0: (rcu_read_lock){.+.+..}, at: [<c0252df4>] ieee80211_beacon_get+0x0/0x518 [mac80211]
the first lock's dependencies:
-> (&local->sta_lock){..-...} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0252f3c>] ieee80211_beacon_get+0x148/0x518 [mac80211]
[<c03ad168>] ath_beacon_tasklet+0x248/0x528 [ath9k]
[<8008f710>] tasklet_action+0x84/0xf0
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c023a784>] sta_info_insert+0xb0/0x1ec [mac80211]
[<c0243fd4>] ieee80211_beacon_loss_work+0x7a0/0xcc8 [mac80211]
}
... key at: [<c0271250>] __this_module+0x1a0/0xffff27fc [mac80211]
-> (&local->key_lock){......} ops: 0 {
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0253ce8>] ieee80211_key_todo+0x88/0x114 [mac80211]
}
... key at: [<c0271220>] __this_module+0x170/0xffff27fc [mac80211]
-> (todo_lock){+.+...} ops: 0 {
HARDIRQ-ON-W at:
[<800b3cfc>] __lock_acquire+0x630/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
SOFTIRQ-ON-W at:
[<800b3d20>] __lock_acquire+0x654/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
}
... key at: [<c0270f00>] mac80211_config_ops+0xf0/0xffff2a9c [mac80211]
-> (&cwq->lock){..-...} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<800949e0>] run_timer_softirq+0x174/0x204
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<8006aff4>] _spin_unlock_irqrestore+0x74/0x8c
[<800dee40>] sys_mprotect+0x1e0/0x20c
[<80062778>] stack_done+0x20/0x3c
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<8009c38c>] call_usermodehelper_exec+0x104/0x144
[<801861fc>] kobject_uevent_env+0x370/0x3dc
[<80185538>] kset_register+0x44/0x5c
[<801ba354>] bus_register+0xb0/0x260
[<8032e288>] platform_bus_init+0x38/0x64
[<8032e504>] driver_init+0x30/0x44
[<8031e5f8>] kernel_init+0x80/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a1a320>] __key.20477+0x0/0x8
-> (&q->lock){..-.-.} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800829e0>] __wake_up+0x30/0x74
[<8008f710>] tasklet_action+0x84/0xf0
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<8006aff4>] _spin_unlock_irqrestore+0x74/0x8c
[<801b16cc>] uart_write+0xf0/0x120
[<801aa19c>] n_tty_write+0x290/0x3fc
[<801a76a4>] tty_write+0x1b0/0x26c
[<800ecd2c>] sys_write+0x54/0x98
[<80062778>] stack_done+0x20/0x3c
IN-RECLAIM_FS-W at:
[<800b3d64>] __lock_acquire+0x698/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a1584>] prepare_to_wait+0x34/0x80
[<800d03d4>] kswapd+0xc0/0x4bc
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006ae7c>] _spin_lock_irq+0x48/0x60
[<80067944>] wait_for_common+0x3c/0x188
[<800a10f8>] kthread_create+0x80/0xe8
[<80339b7c>] cpu_callback+0x68/0xd0
[<80324cbc>] spawn_ksoftirqd+0x1c/0x4c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e5c4>] kernel_init+0x4c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a1a6a0>] __key.15349+0x0/0x10
-> (&rq->lock){-.-.-.} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80086f6c>] scheduler_tick+0x24/0xc4
[<8009523c>] update_process_times+0x58/0x70
[<800ae16c>] tick_handle_periodic+0x20/0x140
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<8008a940>] vprintk+0x434/0x460
[<8008a990>] printk+0x24/0x30
[<80326004>] lockdep_info+0x34/0xac
[<8031e8e4>] start_kernel+0x260/0x388
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80084670>] task_rq_lock+0x2c/0x40
[<8008492c>] try_to_wake_up+0x40/0x15c
[<8008f178>] __do_softirq+0xf8/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800a8b44>] sysctl_check_table+0x18/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<8009273c>] __register_sysctl_paths+0x114/0x2f8
[<80331c00>] inet_init+0x6c/0x26c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
IN-RECLAIM_FS-W at:
[<800b3d64>] __lock_acquire+0x698/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006ae7c>] _spin_lock_irq+0x48/0x60
[<80067b80>] __schedule+0x68/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800d03f4>] kswapd+0xe0/0x4bc
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<803399d4>] init_idle+0x2c/0xc4
[<80324708>] sched_init+0x254/0x290
[<8031e78c>] start_kernel+0x108/0x388
}
... key at: [<80a146cc>] __key.35967+0x0/0x8
-> (&rt_b->rt_runtime_lock){......} ops: 0 {
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a146d4>] __key.32178+0x0/0x8
-> (&cpu_base->lock){-.-...} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<800a4894>] hrtimer_run_queues+0x114/0x1b0
[<800950f8>] run_local_timers+0x10/0x24
[<80095210>] update_process_times+0x2c/0x70
[<800ae16c>] tick_handle_periodic+0x20/0x140
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<8008a940>] vprintk+0x434/0x460
[<8008a990>] printk+0x24/0x30
[<801ddfd0>] sock_register+0x94/0xac
[<8033071c>] netlink_proto_init+0x134/0x180
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800a5158>] hrtimer_start_range_ns+0x24/0x30
[<800ae874>] tick_setup_sched_timer+0x224/0x268
[<800a5c24>] hrtimer_run_pending+0xdc/0x15c
[<80094894>] run_timer_softirq+0x28/0x204
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800a8b44>] sysctl_check_table+0x18/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<8009273c>] __register_sysctl_paths+0x114/0x2f8
[<80331c00>] inet_init+0x6c/0x26c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800853f8>] __enqueue_rt_entity+0x1ac/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a1a6e0>] __key.16951+0x0/0x8
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800853f8>] __enqueue_rt_entity+0x1ac/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
-> (&rt_rq->rt_runtime_lock){......} ops: 0 {
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80082488>] update_curr_rt+0x124/0x234
[<800866d8>] dequeue_task_rt+0x1c/0x4c
[<800810e8>] dequeue_task+0x9c/0xb8
[<800811b0>] deactivate_task+0x48/0x64
[<80067c24>] __schedule+0x10c/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800bdb8c>] watchdog+0x48/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a146dc>] __key.35951+0x0/0xc
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80082488>] update_curr_rt+0x124/0x234
[<800866d8>] dequeue_task_rt+0x1c/0x4c
[<800810e8>] dequeue_task+0x9c/0xb8
[<800811b0>] deactivate_task+0x48/0x64
[<80067c24>] __schedule+0x10c/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800bdb8c>] watchdog+0x48/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80084670>] task_rq_lock+0x2c/0x40
[<8008492c>] try_to_wake_up+0x40/0x15c
[<80081380>] __wake_up_common+0x54/0xc0
[<800828ec>] complete+0x4c/0x6c
[<800a119c>] kthread+0x3c/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800829e0>] __wake_up+0x30/0x74
[<8009d224>] __queue_work+0x34/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<8009c38c>] call_usermodehelper_exec+0x104/0x144
[<801861fc>] kobject_uevent_env+0x370/0x3dc
[<80185538>] kset_register+0x44/0x5c
[<801ba354>] bus_register+0xb0/0x260
[<8032e288>] platform_bus_init+0x38/0x64
[<8032e504>] driver_init+0x30/0x44
[<8031e5f8>] kernel_init+0x80/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<c0253288>] ieee80211_beacon_get+0x494/0x518 [mac80211]
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253218>] ieee80211_beacon_get+0x424/0x518 [mac80211]
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0253b18>] ieee80211_key_free+0x78/0xe0 [mac80211]
[<c0239824>] ieee80211_alloc_hw+0x1240/0x13ec [mac80211]
-> (&sta->flaglock){..-...} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c024bd14>] ieee80211_rx_irqsafe+0x298/0x3568 [mac80211]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0243d04>] ieee80211_beacon_loss_work+0x4d0/0xcc8 [mac80211]
}
... key at: [<c0271260>] __this_module+0x1b0/0xffff27fc [mac80211]
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c023988c>] ieee80211_alloc_hw+0x12a8/0x13ec [mac80211]
-> (&txq->axq_lock){+.-...} ops: 0 {
HARDIRQ-ON-W at:
[<800b3cfc>] __lock_acquire+0x630/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a9c8>] _spin_lock_bh+0x40/0x58
[<c03b52e4>] ath_draintxq+0x54/0x2f4 [ath9k]
[<c03b6c4c>] ath_drain_all_txq+0x164/0x194 [ath9k]
[<c03afc38>] ath_set_channel+0x84/0x5a0 [ath9k]
[<c03b2278>] ath_descdma_setup+0x550/0x5d4 [ath9k]
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a9c8>] _spin_lock_bh+0x40/0x58
[<c03b6570>] ath_tx_tasklet+0xf0/0x4c0 [ath9k]
[<c03b07a0>] ath_reset+0x56c/0x5f8 [ath9k]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a9c8>] _spin_lock_bh+0x40/0x58
[<c03b52e4>] ath_draintxq+0x54/0x2f4 [ath9k]
[<c03b6c4c>] ath_drain_all_txq+0x164/0x194 [ath9k]
[<c03afc38>] ath_set_channel+0x84/0x5a0 [ath9k]
[<c03b2278>] ath_descdma_setup+0x550/0x5d4 [ath9k]
}
... key at: [<c03da1b8>] btcoex_enable+0x614/0xfffe2ff0 [ath9k]
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c03b74ac>] ath_tx_node_cleanup+0x64/0x190 [ath9k]
[<c0239938>] ieee80211_alloc_hw+0x1354/0x13ec [mac80211]
the second lock's dependencies:
-> (todo_lock){+.+...} ops: 0 {
HARDIRQ-ON-W at:
[<800b3cfc>] __lock_acquire+0x630/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
SOFTIRQ-ON-W at:
[<800b3d20>] __lock_acquire+0x654/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
}
... key at: [<c0270f00>] mac80211_config_ops+0xf0/0xffff2a9c [mac80211]
-> (&cwq->lock){..-...} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<800949e0>] run_timer_softirq+0x174/0x204
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<8006aff4>] _spin_unlock_irqrestore+0x74/0x8c
[<800dee40>] sys_mprotect+0x1e0/0x20c
[<80062778>] stack_done+0x20/0x3c
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<8009c38c>] call_usermodehelper_exec+0x104/0x144
[<801861fc>] kobject_uevent_env+0x370/0x3dc
[<80185538>] kset_register+0x44/0x5c
[<801ba354>] bus_register+0xb0/0x260
[<8032e288>] platform_bus_init+0x38/0x64
[<8032e504>] driver_init+0x30/0x44
[<8031e5f8>] kernel_init+0x80/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a1a320>] __key.20477+0x0/0x8
-> (&q->lock){..-.-.} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800829e0>] __wake_up+0x30/0x74
[<8008f710>] tasklet_action+0x84/0xf0
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<8006aff4>] _spin_unlock_irqrestore+0x74/0x8c
[<801b16cc>] uart_write+0xf0/0x120
[<801aa19c>] n_tty_write+0x290/0x3fc
[<801a76a4>] tty_write+0x1b0/0x26c
[<800ecd2c>] sys_write+0x54/0x98
[<80062778>] stack_done+0x20/0x3c
IN-RECLAIM_FS-W at:
[<800b3d64>] __lock_acquire+0x698/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a1584>] prepare_to_wait+0x34/0x80
[<800d03d4>] kswapd+0xc0/0x4bc
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006ae7c>] _spin_lock_irq+0x48/0x60
[<80067944>] wait_for_common+0x3c/0x188
[<800a10f8>] kthread_create+0x80/0xe8
[<80339b7c>] cpu_callback+0x68/0xd0
[<80324cbc>] spawn_ksoftirqd+0x1c/0x4c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e5c4>] kernel_init+0x4c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a1a6a0>] __key.15349+0x0/0x10
-> (&rq->lock){-.-.-.} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80086f6c>] scheduler_tick+0x24/0xc4
[<8009523c>] update_process_times+0x58/0x70
[<800ae16c>] tick_handle_periodic+0x20/0x140
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<8008a940>] vprintk+0x434/0x460
[<8008a990>] printk+0x24/0x30
[<80326004>] lockdep_info+0x34/0xac
[<8031e8e4>] start_kernel+0x260/0x388
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80084670>] task_rq_lock+0x2c/0x40
[<8008492c>] try_to_wake_up+0x40/0x15c
[<8008f178>] __do_softirq+0xf8/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800a8b44>] sysctl_check_table+0x18/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<8009273c>] __register_sysctl_paths+0x114/0x2f8
[<80331c00>] inet_init+0x6c/0x26c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
IN-RECLAIM_FS-W at:
[<800b3d64>] __lock_acquire+0x698/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006ae7c>] _spin_lock_irq+0x48/0x60
[<80067b80>] __schedule+0x68/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800d03f4>] kswapd+0xe0/0x4bc
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<803399d4>] init_idle+0x2c/0xc4
[<80324708>] sched_init+0x254/0x290
[<8031e78c>] start_kernel+0x108/0x388
}
... key at: [<80a146cc>] __key.35967+0x0/0x8
-> (&rt_b->rt_runtime_lock){......} ops: 0 {
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a146d4>] __key.32178+0x0/0x8
-> (&cpu_base->lock){-.-...} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<800a4894>] hrtimer_run_queues+0x114/0x1b0
[<800950f8>] run_local_timers+0x10/0x24
[<80095210>] update_process_times+0x2c/0x70
[<800ae16c>] tick_handle_periodic+0x20/0x140
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<8008a940>] vprintk+0x434/0x460
[<8008a990>] printk+0x24/0x30
[<801ddfd0>] sock_register+0x94/0xac
[<8033071c>] netlink_proto_init+0x134/0x180
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800a5158>] hrtimer_start_range_ns+0x24/0x30
[<800ae874>] tick_setup_sched_timer+0x224/0x268
[<800a5c24>] hrtimer_run_pending+0xdc/0x15c
[<80094894>] run_timer_softirq+0x28/0x204
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800a8b44>] sysctl_check_table+0x18/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<8009273c>] __register_sysctl_paths+0x114/0x2f8
[<80331c00>] inet_init+0x6c/0x26c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800853f8>] __enqueue_rt_entity+0x1ac/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a1a6e0>] __key.16951+0x0/0x8
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800853f8>] __enqueue_rt_entity+0x1ac/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
-> (&rt_rq->rt_runtime_lock){......} ops: 0 {
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80082488>] update_curr_rt+0x124/0x234
[<800866d8>] dequeue_task_rt+0x1c/0x4c
[<800810e8>] dequeue_task+0x9c/0xb8
[<800811b0>] deactivate_task+0x48/0x64
[<80067c24>] __schedule+0x10c/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800bdb8c>] watchdog+0x48/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a146dc>] __key.35951+0x0/0xc
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80082488>] update_curr_rt+0x124/0x234
[<800866d8>] dequeue_task_rt+0x1c/0x4c
[<800810e8>] dequeue_task+0x9c/0xb8
[<800811b0>] deactivate_task+0x48/0x64
[<80067c24>] __schedule+0x10c/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800bdb8c>] watchdog+0x48/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80084670>] task_rq_lock+0x2c/0x40
[<8008492c>] try_to_wake_up+0x40/0x15c
[<80081380>] __wake_up_common+0x54/0xc0
[<800828ec>] complete+0x4c/0x6c
[<800a119c>] kthread+0x3c/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800829e0>] __wake_up+0x30/0x74
[<8009d224>] __queue_work+0x34/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<8009c38c>] call_usermodehelper_exec+0x104/0x144
[<801861fc>] kobject_uevent_env+0x370/0x3dc
[<80185538>] kset_register+0x44/0x5c
[<801ba354>] bus_register+0xb0/0x260
[<8032e288>] platform_bus_init+0x38/0x64
[<8032e504>] driver_init+0x30/0x44
[<8031e5f8>] kernel_init+0x80/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<c0253288>] ieee80211_beacon_get+0x494/0x518 [mac80211]
stack backtrace:
Call Trace:
[<800706e4>] dump_stack+0x8/0x34
[<800b065c>] print_irq_inversion_bug+0x1a0/0x1c4
[<800b4918>] check_usage_forwards+0xd0/0xf0
[<800b0c74>] mark_lock+0x408/0x6f0
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0252f3c>] ieee80211_beacon_get+0x148/0x518 [mac80211]
[<c03ad168>] ath_beacon_tasklet+0x248/0x528 [ath9k]
[<8008f710>] tasklet_action+0x84/0xf0
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
-Gabor
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] ath9k: serialize ath9k_ps_{wakeup,restore} calls
2009-06-21 19:49 ` Gabor Juhos
2009-06-22 8:36 ` Gabor Juhos
@ 2009-06-22 11:23 ` Johannes Berg
2009-06-22 15:29 ` Gabor Juhos
1 sibling, 1 reply; 7+ messages in thread
From: Johannes Berg @ 2009-06-22 11:23 UTC (permalink / raw)
To: Gabor Juhos
Cc: John Linville, Luis R. Rodriguez, Jouni Malinen, Sujith Manoharan,
Vasanthakumar Thiagarajan, Senthil Balasubramanian,
ath9k-devel@lists.ath9k.org, linux-wireless@vger.kernel.org
[-- Attachment #1: Type: text/plain, Size: 726 bytes --]
On Sun, 2009-06-21 at 21:49 +0200, Gabor Juhos wrote:
> Please wait with these 3 patches, I got this while the interface is in Master mode:
>
> =========================================================
> [ INFO: possible irq lock inversion dependency detected ]
> 2.6.30 #37
> ---------------------------------------------------------
> swapper/0 just changed the state of lock:
> (&local->sta_lock){..-...}, at: [<c0252f3c>] ieee80211_beacon_get+0x148/0x518 [mac80211]
> but this lock took another, SOFTIRQ-unsafe lock in the past:
> (todo_lock){+.+...}
I don't think this is related to your patches, I think I got the same
error with hwsim. I'll look into it, but it might take a bit longer.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] ath9k: serialize ath9k_ps_{wakeup,restore} calls
2009-06-22 11:23 ` Johannes Berg
@ 2009-06-22 15:29 ` Gabor Juhos
0 siblings, 0 replies; 7+ messages in thread
From: Gabor Juhos @ 2009-06-22 15:29 UTC (permalink / raw)
To: Johannes Berg
Cc: John Linville, Luis R. Rodriguez, Jouni Malinen, Sujith Manoharan,
Vasanthakumar Thiagarajan, Senthil Balasubramanian,
ath9k-devel@lists.ath9k.org, linux-wireless@vger.kernel.org
Johannes Berg írta:
> On Sun, 2009-06-21 at 21:49 +0200, Gabor Juhos wrote:
>
>> Please wait with these 3 patches, I got this while the interface is in Master mode:
>>
>> =========================================================
>> [ INFO: possible irq lock inversion dependency detected ]
>> 2.6.30 #37
>> ---------------------------------------------------------
>> swapper/0 just changed the state of lock:
>> (&local->sta_lock){..-...}, at: [<c0252f3c>] ieee80211_beacon_get+0x148/0x518 [mac80211]
>> but this lock took another, SOFTIRQ-unsafe lock in the past:
>> (todo_lock){+.+...}
>
> I don't think this is related to your patches, I think I got the same
> error with hwsim.
You are right, the error is reproducible with hwsim as well:
cat << EOF > /var/run/hostapd-wlan2.conf
ctrl_interface=/var/run/hostapd-wlan2
driver=nl80211
interface=wlan2
hw_mode=g
channel=5
bridge=br-lan
ssid=HWSIM2
debug=0
wpa=2
wpa_pairwise=CCMP
wpa_passphrase=hwsim2pass
EOF
hostapd -B /var/run/hostapd-wlan2.conf
cat << EOF > /var/run/wpa_supplicant-wlan1.conf
ctrl_interface=/var/run/wpa_supplicant-wlan1
network={
scan_ssid=1
ssid="HWSIM2"
key_mgmt=WPA-PSK
proto=RSN
psk="hwsim2pass"
}
EOF
wpa_supplicant -B -D wext -i wlan1 -c /var/run/wpa_supplicant-wlan1.conf
sleep 10
killall wpa_supplicant
cat << EOF > /var/run/hostapd-wlan1.conf
ctrl_interface=/var/run/hostapd-wlan1
driver=nl80211
interface=wlan1
hw_mode=g
channel=5
ssid=HWSIM1
debug=0
wpa=0
EOF
hostapd -B /var/run/hostapd-wlan1.conf
Result:
=========================================================
[ INFO: possible irq lock inversion dependency detected ]
2.6.30 #49
---------------------------------------------------------
hotplug-call/1273 just changed the state of lock:
(&local->sta_lock){..-...}, at: [<c0252f3c>] ieee80211_beacon_get+0x148/0x518
[mac80211]
but this lock took another, SOFTIRQ-unsafe lock in the past:
(todo_lock){+.+...}
and interrupts could create inverse lock ordering between them.
other info that might help us debug this:
4 locks held by hotplug-call/1273:
#0: (&mm->mmap_sem){++++++}, at: [<80073194>] do_page_fault+0x8c/0x2f0
#1: (&data->beacon_timer){+.-...}, at: [<8009495c>] run_timer_softirq+0xf0/0x204
#2: (rcu_read_lock){.+.+..}, at: [<c025595c>]
ieee80211_iterate_active_interfaces_atomic+0x0/0xf4 [mac8
0211]
#3: (rcu_read_lock){.+.+..}, at: [<c0252df4>] ieee80211_beacon_get+0x0/0x518
[mac80211]
the first lock's dependencies:
-> (&local->sta_lock){..-...} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0252f3c>] ieee80211_beacon_get+0x148/0x518 [mac80211]
[<c0615190>] cleanup_module+0x1034/0x1358 [mac80211_hwsim]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0239fbc>] sta_info_flush+0x60/0x148 [mac80211]
[<c0246528>] ieee80211_if_add+0x458/0x4f4 [mac80211]
}
... key at: [<c0271250>] __this_module+0x1a0/0xffff27fc [mac80211]
-> (&local->key_lock){......} ops: 0 {
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0253bd8>] ieee80211_free_keys+0x58/0xe0 [mac80211]
[<c0246388>] ieee80211_if_add+0x2b8/0x4f4 [mac80211]
}
... key at: [<c0271220>] __this_module+0x170/0xffff27fc [mac80211]
-> (todo_lock){+.+...} ops: 0 {
HARDIRQ-ON-W at:
[<800b3cfc>] __lock_acquire+0x630/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0
[mac80211]
SOFTIRQ-ON-W at:
[<800b3d20>] __lock_acquire+0x654/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0
[mac80211]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0
[mac80211]
}
... key at: [<c0270f00>] mac80211_config_ops+0xf0/0xffff2a9c [mac80211]
-> (&cwq->lock){..-...} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<800949e0>] run_timer_softirq+0x174/0x204
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800b4dd4>] lock_acquire+0x70/0x84
[<800d9f7c>] might_fault+0x74/0xa0
[<800f04a8>] cp_new_stat+0x168/0x1a4
[<800f08b0>] sys_newfstat+0x34/0x48
[<80062778>] stack_done+0x20/0x3c
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<8009c38c>] call_usermodehelper_exec+0x104/0x144
[<801861fc>] kobject_uevent_env+0x370/0x3dc
[<80185538>] kset_register+0x44/0x5c
[<801ba354>] bus_register+0xb0/0x260
[<8032e288>] platform_bus_init+0x38/0x64
[<8032e504>] driver_init+0x30/0x44
[<8031e5f8>] kernel_init+0x80/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a9b320>] __key.20477+0x0/0x8
-> (&q->lock){..-.-.} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800829e0>] __wake_up+0x30/0x74
[<8008f710>] tasklet_action+0x84/0xf0
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<8006aff4>] _spin_unlock_irqrestore+0x74/0x8c
[<801b16cc>] uart_write+0xf0/0x120
[<801aa19c>] n_tty_write+0x290/0x3fc
[<801a76a4>] tty_write+0x1b0/0x26c
[<800ecd2c>] sys_write+0x54/0x98
[<80062778>] stack_done+0x20/0x3c
IN-RECLAIM_FS-W at:
[<800b3d64>] __lock_acquire+0x698/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a1584>] prepare_to_wait+0x34/0x80
[<800d03d4>] kswapd+0xc0/0x4bc
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006ae7c>] _spin_lock_irq+0x48/0x60
[<80067944>] wait_for_common+0x3c/0x188
[<800a10f8>] kthread_create+0x80/0xe8
[<80339b7c>] cpu_callback+0x68/0xd0
[<80324cbc>] spawn_ksoftirqd+0x1c/0x4c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e5c4>] kernel_init+0x4c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a9b6a0>] __key.15349+0x0/0x10
-> (&rq->lock){-.-.-.} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80086f6c>] scheduler_tick+0x24/0xc4
[<8009523c>] update_process_times+0x58/0x70
[<800ae16c>] tick_handle_periodic+0x20/0x140
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<8008a940>] vprintk+0x434/0x460
[<8008a990>] printk+0x24/0x30
[<80326004>] lockdep_info+0x34/0xac
[<8031e8e4>] start_kernel+0x260/0x388
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80084670>] task_rq_lock+0x2c/0x40
[<8008492c>] try_to_wake_up+0x40/0x15c
[<8008f178>] __do_softirq+0xf8/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800b4dd4>] lock_acquire+0x70/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80092a2c>] __sysctl_head_next+0x28/0xe4
[<800a8a7c>] sysctl_check_lookup+0x128/0x164
[<800a8cf0>] sysctl_check_table+0x1c4/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<8009273c>] __register_sysctl_paths+0x114/0x2f8
[<80331c00>] inet_init+0x6c/0x26c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
IN-RECLAIM_FS-W at:
[<800b3d64>] __lock_acquire+0x698/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006ae7c>] _spin_lock_irq+0x48/0x60
[<80067b80>] __schedule+0x68/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800d03f4>] kswapd+0xe0/0x4bc
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<803399d4>] init_idle+0x2c/0xc4
[<80324708>] sched_init+0x254/0x290
[<8031e78c>] start_kernel+0x108/0x388
}
... key at: [<80a956cc>] __key.35967+0x0/0x8
-> (&rt_b->rt_runtime_lock){-.....} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<8008496c>] try_to_wake_up+0x80/0x15c
[<800bda80>] softlockup_tick+0xe4/0x1a8
[<80095210>] update_process_times+0x2c/0x70
[<800aebc0>] tick_sched_timer+0x308/0x35c
[<800a4724>] __run_hrtimer+0x6c/0xc8
[<800a5654>] hrtimer_interrupt+0x224/0x2d0
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a956d4>] __key.32178+0x0/0x8
-> (&cpu_base->lock){-.-...} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<800a4894>] hrtimer_run_queues+0x114/0x1b0
[<800950f8>] run_local_timers+0x10/0x24
[<80095210>] update_process_times+0x2c/0x70
[<800ae16c>] tick_handle_periodic+0x20/0x140
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<8008a940>] vprintk+0x434/0x460
[<8008a990>] printk+0x24/0x30
[<801ddfd0>] sock_register+0x94/0xac
[<8033071c>] netlink_proto_init+0x134/0x180
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>]
__hrtimer_start_range_ns+0x44/0x298
[<800a5158>] hrtimer_start_range_ns+0x24/0x30
[<800ae874>]
tick_setup_sched_timer+0x224/0x268
[<800a5c24>] hrtimer_run_pending+0xdc/0x15c
[<80094894>] run_timer_softirq+0x28/0x204
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800b4dd4>] lock_acquire+0x70/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80092a2c>] __sysctl_head_next+0x28/0xe4
[<800a8a7c>] sysctl_check_lookup+0x128/0x164
[<800a8cf0>] sysctl_check_table+0x1c4/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<8009273c>]
__register_sysctl_paths+0x114/0x2f8
[<80331c00>] inet_init+0x6c/0x26c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>]
__hrtimer_start_range_ns+0x44/0x298
[<800853f8>] __enqueue_rt_entity+0x1ac/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a9b6e0>] __key.16951+0x0/0x8
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800853f8>] __enqueue_rt_entity+0x1ac/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
-> (&rt_rq->rt_runtime_lock){......} ops: 0 {
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80082488>] update_curr_rt+0x124/0x234
[<800866d8>] dequeue_task_rt+0x1c/0x4c
[<800810e8>] dequeue_task+0x9c/0xb8
[<800811b0>] deactivate_task+0x48/0x64
[<80067c24>] __schedule+0x10c/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800bdb8c>] watchdog+0x48/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a956dc>] __key.35951+0x0/0xc
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80082488>] update_curr_rt+0x124/0x234
[<800866d8>] dequeue_task_rt+0x1c/0x4c
[<800810e8>] dequeue_task+0x9c/0xb8
[<800811b0>] deactivate_task+0x48/0x64
[<80067c24>] __schedule+0x10c/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800bdb8c>] watchdog+0x48/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80084670>] task_rq_lock+0x2c/0x40
[<8008492c>] try_to_wake_up+0x40/0x15c
[<80081380>] __wake_up_common+0x54/0xc0
[<800828ec>] complete+0x4c/0x6c
[<800a119c>] kthread+0x3c/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800829e0>] __wake_up+0x30/0x74
[<8009d224>] __queue_work+0x34/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<8009c38c>] call_usermodehelper_exec+0x104/0x144
[<801861fc>] kobject_uevent_env+0x370/0x3dc
[<80185538>] kset_register+0x44/0x5c
[<801ba354>] bus_register+0xb0/0x260
[<8032e288>] platform_bus_init+0x38/0x64
[<8032e504>] driver_init+0x30/0x44
[<8031e5f8>] kernel_init+0x80/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<c0253288>] ieee80211_beacon_get+0x494/0x518 [mac80211]
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253218>] ieee80211_beacon_get+0x424/0x518 [mac80211]
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0253b18>] ieee80211_key_free+0x78/0xe0 [mac80211]
[<c0239824>] ieee80211_alloc_hw+0x1240/0x13ec [mac80211]
-> (&sta->flaglock){..-...} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c024cb48>] ieee80211_rx_irqsafe+0x10cc/0x3568 [mac80211]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0243d04>] ieee80211_beacon_loss_work+0x4d0/0xcc8
[mac80211]
}
... key at: [<c0271260>] __this_module+0x1b0/0xffff27fc [mac80211]
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c023988c>] ieee80211_alloc_hw+0x12a8/0x13ec [mac80211]
the second lock's dependencies:
-> (todo_lock){+.+...} ops: 0 {
HARDIRQ-ON-W at:
[<800b3cfc>] __lock_acquire+0x630/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0
[mac80211]
SOFTIRQ-ON-W at:
[<800b3d20>] __lock_acquire+0x654/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0
[mac80211]
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<c0253a68>] ieee80211_set_default_key+0x4b8/0x4f0 [mac80211]
}
... key at: [<c0270f00>] mac80211_config_ops+0xf0/0xffff2a9c [mac80211]
-> (&cwq->lock){..-...} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<800949e0>] run_timer_softirq+0x174/0x204
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800b4dd4>] lock_acquire+0x70/0x84
[<800d9f7c>] might_fault+0x74/0xa0
[<800f04a8>] cp_new_stat+0x168/0x1a4
[<800f08b0>] sys_newfstat+0x34/0x48
[<80062778>] stack_done+0x20/0x3c
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<8009c38c>] call_usermodehelper_exec+0x104/0x144
[<801861fc>] kobject_uevent_env+0x370/0x3dc
[<80185538>] kset_register+0x44/0x5c
[<801ba354>] bus_register+0xb0/0x260
[<8032e288>] platform_bus_init+0x38/0x64
[<8032e504>] driver_init+0x30/0x44
[<8031e5f8>] kernel_init+0x80/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a9b320>] __key.20477+0x0/0x8
-> (&q->lock){..-.-.} ops: 0 {
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800829e0>] __wake_up+0x30/0x74
[<8008f710>] tasklet_action+0x84/0xf0
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<8006aff4>] _spin_unlock_irqrestore+0x74/0x8c
[<801b16cc>] uart_write+0xf0/0x120
[<801aa19c>] n_tty_write+0x290/0x3fc
[<801a76a4>] tty_write+0x1b0/0x26c
[<800ecd2c>] sys_write+0x54/0x98
[<80062778>] stack_done+0x20/0x3c
IN-RECLAIM_FS-W at:
[<800b3d64>] __lock_acquire+0x698/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a1584>] prepare_to_wait+0x34/0x80
[<800d03d4>] kswapd+0xc0/0x4bc
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006ae7c>] _spin_lock_irq+0x48/0x60
[<80067944>] wait_for_common+0x3c/0x188
[<800a10f8>] kthread_create+0x80/0xe8
[<80339b7c>] cpu_callback+0x68/0xd0
[<80324cbc>] spawn_ksoftirqd+0x1c/0x4c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e5c4>] kernel_init+0x4c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a9b6a0>] __key.15349+0x0/0x10
-> (&rq->lock){-.-.-.} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80086f6c>] scheduler_tick+0x24/0xc4
[<8009523c>] update_process_times+0x58/0x70
[<800ae16c>] tick_handle_periodic+0x20/0x140
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<8008a940>] vprintk+0x434/0x460
[<8008a990>] printk+0x24/0x30
[<80326004>] lockdep_info+0x34/0xac
[<8031e8e4>] start_kernel+0x260/0x388
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80084670>] task_rq_lock+0x2c/0x40
[<8008492c>] try_to_wake_up+0x40/0x15c
[<8008f178>] __do_softirq+0xf8/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800b4dd4>] lock_acquire+0x70/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80092a2c>] __sysctl_head_next+0x28/0xe4
[<800a8a7c>] sysctl_check_lookup+0x128/0x164
[<800a8cf0>] sysctl_check_table+0x1c4/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<8009273c>] __register_sysctl_paths+0x114/0x2f8
[<80331c00>] inet_init+0x6c/0x26c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
IN-RECLAIM_FS-W at:
[<800b3d64>] __lock_acquire+0x698/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006ae7c>] _spin_lock_irq+0x48/0x60
[<80067b80>] __schedule+0x68/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800d03f4>] kswapd+0xe0/0x4bc
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<803399d4>] init_idle+0x2c/0xc4
[<80324708>] sched_init+0x254/0x290
[<8031e78c>] start_kernel+0x108/0x388
}
... key at: [<80a956cc>] __key.35967+0x0/0x8
-> (&rt_b->rt_runtime_lock){-.....} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<8008496c>] try_to_wake_up+0x80/0x15c
[<800bda80>] softlockup_tick+0xe4/0x1a8
[<80095210>] update_process_times+0x2c/0x70
[<800aebc0>] tick_sched_timer+0x308/0x35c
[<800a4724>] __run_hrtimer+0x6c/0xc8
[<800a5654>] hrtimer_interrupt+0x224/0x2d0
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a956d4>] __key.32178+0x0/0x8
-> (&cpu_base->lock){-.-...} ops: 0 {
IN-HARDIRQ-W at:
[<800b3c7c>] __lock_acquire+0x5b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<800a4894>] hrtimer_run_queues+0x114/0x1b0
[<800950f8>] run_local_timers+0x10/0x24
[<80095210>] update_process_times+0x2c/0x70
[<800ae16c>] tick_handle_periodic+0x20/0x140
[<80071530>] c0_compare_interrupt+0x54/0x64
[<800be2d0>] handle_IRQ_event+0x38/0x12c
[<800bff9c>] handle_percpu_irq+0x48/0xa0
[<8006b914>] plat_irq_dispatch+0x90/0x2a4
[<8006082c>] ret_from_irq+0x0/0x4
[<8008a940>] vprintk+0x434/0x460
[<8008a990>] printk+0x24/0x30
[<801ddfd0>] sock_register+0x94/0xac
[<8033071c>] netlink_proto_init+0x134/0x180
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
IN-SOFTIRQ-W at:
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800a5158>] hrtimer_start_range_ns+0x24/0x30
[<800ae874>] tick_setup_sched_timer+0x224/0x268
[<800a5c24>] hrtimer_run_pending+0xdc/0x15c
[<80094894>] run_timer_softirq+0x28/0x204
[<8008f0fc>] __do_softirq+0x7c/0x128
[<8008f1f4>] do_softirq+0x4c/0xa0
[<8006082c>] ret_from_irq+0x0/0x4
[<800b4dd4>] lock_acquire+0x70/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80092a2c>] __sysctl_head_next+0x28/0xe4
[<800a8a7c>] sysctl_check_lookup+0x128/0x164
[<800a8cf0>] sysctl_check_table+0x1c4/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<800a9190>] sysctl_check_table+0x664/0x6f0
[<8009273c>] __register_sysctl_paths+0x114/0x2f8
[<80331c00>] inet_init+0x6c/0x26c
[<8006b0fc>] do_one_initcall+0x64/0x1c8
[<8031e614>] kernel_init+0x9c/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800853f8>] __enqueue_rt_entity+0x1ac/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a9b6e0>] __key.16951+0x0/0x8
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800a4eb4>] __hrtimer_start_range_ns+0x44/0x298
[<800853f8>] __enqueue_rt_entity+0x1ac/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80085350>] __enqueue_rt_entity+0x104/0x1e4
[<80086690>] enqueue_task_rt+0x44/0x70
[<80081034>] enqueue_task+0x34/0x4c
[<8008114c>] activate_task+0x48/0x64
[<80084f10>] __sched_setscheduler+0x2b4/0x390
[<800bdb64>] watchdog+0x20/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
-> (&rt_rq->rt_runtime_lock){......} ops: 0 {
INITIAL USE at:
[<800b3d7c>] __lock_acquire+0x6b0/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80082488>] update_curr_rt+0x124/0x234
[<800866d8>] dequeue_task_rt+0x1c/0x4c
[<800810e8>] dequeue_task+0x9c/0xb8
[<800811b0>] deactivate_task+0x48/0x64
[<80067c24>] __schedule+0x10c/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800bdb8c>] watchdog+0x48/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
}
... key at: [<80a956dc>] __key.35951+0x0/0xc
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80082488>] update_curr_rt+0x124/0x234
[<800866d8>] dequeue_task_rt+0x1c/0x4c
[<800810e8>] dequeue_task+0x9c/0xb8
[<800811b0>] deactivate_task+0x48/0x64
[<80067c24>] __schedule+0x10c/0x3c0
[<80067ee8>] schedule+0x10/0x28
[<800bdb8c>] watchdog+0x48/0x88
[<800a11c0>] kthread+0x60/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006a974>] _spin_lock+0x34/0x48
[<80084670>] task_rq_lock+0x2c/0x40
[<8008492c>] try_to_wake_up+0x40/0x15c
[<80081380>] __wake_up_common+0x54/0xc0
[<800828ec>] complete+0x4c/0x6c
[<800a119c>] kthread+0x3c/0xa4
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<800829e0>] __wake_up+0x30/0x74
[<8009d224>] __queue_work+0x34/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<8009c38c>] call_usermodehelper_exec+0x104/0x144
[<801861fc>] kobject_uevent_env+0x370/0x3dc
[<80185538>] kset_register+0x44/0x5c
[<801ba354>] bus_register+0xb0/0x260
[<8032e288>] platform_bus_init+0x38/0x64
[<8032e504>] driver_init+0x30/0x44
[<8031e5f8>] kernel_init+0x80/0x10c
[<8006cee4>] kernel_thread_helper+0x10/0x18
... acquired at:
[<800b3310>] validate_chain+0xb44/0xf00
[<800b3ee4>] __lock_acquire+0x818/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<8009d210>] __queue_work+0x20/0x54
[<8009d2b0>] queue_work_on+0x50/0x6c
[<c0253288>] ieee80211_beacon_get+0x494/0x518 [mac80211]
stack backtrace:
Call Trace:
[<800706e4>] dump_stack+0x8/0x34
[<800b065c>] print_irq_inversion_bug+0x1a0/0x1c4
[<800b4918>] check_usage_forwards+0xd0/0xf0
[<800b0c74>] mark_lock+0x408/0x6f0
[<800b3ca0>] __lock_acquire+0x5d4/0x8b0
[<800b4dc0>] lock_acquire+0x5c/0x84
[<8006aa30>] _spin_lock_irqsave+0x50/0x74
[<c0252f3c>] ieee80211_beacon_get+0x148/0x518 [mac80211]
[<c0615190>] cleanup_module+0x1034/0x1358 [mac80211_hwsim]
> I'll look into it, but it might take a bit longer.
Thanks!
-Gabor
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-06-22 15:30 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-21 15:47 [PATCH 1/3] ath9k: serialize ath9k_hw_setpower calls Gabor Juhos
2009-06-21 15:47 ` [PATCH 2/3] ath9k: uninline ath9k_ps_{wakeup,restore} functions Gabor Juhos
2009-06-21 15:47 ` [PATCH 3/3] ath9k: serialize ath9k_ps_{wakeup,restore} calls Gabor Juhos
2009-06-21 19:49 ` Gabor Juhos
2009-06-22 8:36 ` Gabor Juhos
2009-06-22 11:23 ` Johannes Berg
2009-06-22 15:29 ` Gabor Juhos
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).