linux/drivers/net/wireless/ath/ath6kl
Vasanthakumar Thiagarajan 11f6e40d9f ath6kl: Fix lockdep warning
The following is the lockdep warning which detects possible
deadlock condition with the way ar->lock and ar->list_lock
are being used.

  (&(&ar->lock)->rlock){+.-...}, at: [<ffffffffa0492d13>] ath6kl_indicate_tx_activity+0x83/0x110 [ath6kl]
 but this lock took another, SOFTIRQ-unsafe lock in the past:
  (&(&ar->list_lock)->rlock){+.+...}

 and interrupts could create inverse lock ordering between them.

 other info that might help us debug this:
  Possible interrupt unsafe locking scenario:

        CPU0                    CPU1
        ----                    ----
   lock(&(&ar->list_lock)->rlock);
                                local_irq_disable();
                                lock(&(&ar->lock)->rlock);
                                lock(&(&ar->list_lock)->rlock);
   <Interrupt>
     lock(&(&ar->lock)->rlock);

  *** DEADLOCK ***

softirqs have to be disabled when acquiring ar->list_lock to avoid
the above deadlock condition. When the above warning printed the
interface is still up and running without issue.

Reported-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2011-11-11 12:59:00 +02:00
..
bmi.c ath6kl: power down hardware when interface is down 2011-11-11 12:58:59 +02:00
bmi.h ath6kl: power down hardware when interface is down 2011-11-11 12:58:59 +02:00
cfg80211.c ath6kl: Fix lockdep warning 2011-11-11 12:59:00 +02:00
cfg80211.h ath6kl: cut power during suspend 2011-11-11 12:59:00 +02:00
common.h ath6kl: move all credit distribution code to htc.c 2011-11-11 12:58:54 +02:00
core.h ath6kl: cut power during suspend 2011-11-11 12:59:00 +02:00
debug.c ath6kl: Implement support for power parameter control from userspace 2011-11-11 12:58:55 +02:00
debug.h ath6kl: cut power during suspend 2011-11-11 12:59:00 +02:00
hif-ops.h ath6kl: create ath6kl_hif_stop() 2011-11-11 12:58:58 +02:00
hif.c ath6kl: print firmware crashes always 2011-11-11 12:58:59 +02:00
hif.h ath6kl: create ath6kl_hif_stop() 2011-11-11 12:58:58 +02:00
htc.c ath6kl: print seqno in htc debug logs 2011-11-11 12:58:59 +02:00
htc.h ath6kl: use ath6kl_credit prefix consistently 2011-11-11 12:58:54 +02:00
init.c ath6kl: Fix lockdep warning 2011-11-11 12:59:00 +02:00
Kconfig ath6kl: remove dependency to wireless extensions 2011-08-09 19:45:22 +03:00
main.c ath6kl: Fix lockdep warning 2011-11-11 12:59:00 +02:00
Makefile ath6kl: move htc_hif to hif.c 2011-11-11 12:50:55 +02:00
sdio.c ath6kl: cut power during suspend 2011-11-11 12:59:00 +02:00
target.h ath6kl: Configure inteface information at init time 2011-11-11 12:58:52 +02:00
testmode.c ath6kl: add testmode support 2011-09-01 10:14:21 +03:00
testmode.h ath6kl: fix compilation when NL80211_TESTMODE is disabled 2011-09-01 12:04:59 +03:00
txrx.c ath6kl: Fix lockdep warning 2011-11-11 12:59:00 +02:00
wmi.c ath6kl: Fix lockdep warning 2011-11-11 12:59:00 +02:00
wmi.h ath6kl: add aborted parameter to ath6kl_cfg80211_scan_complete_event() 2011-11-11 12:58:59 +02:00