linux/drivers/net/wireless/ath9k
Sujith d22b0022e7 ath9k: Fix lockdep warning
This patch fixes the lockdep warning shown below, and also
initializes the starting sequence number when starting a TX
aggregation session.

 =============================================
 [ INFO: possible recursive locking detected ]
 2.6.29-rc2-wl #21
 ---------------------------------------------
 swapper/0 is trying to acquire lock:
  (_xmit_IEEE80211#2){-+..}, at: [<ffffffff80456d71>] __qdisc_run+0x221/0x290

 but task is already holding lock:
  (_xmit_IEEE80211#2){-+..}, at: [<ffffffff80456d71>] __qdisc_run+0x221/0x290

 other info that might help us debug this:
 7 locks held by swapper/0:
  #0:  (rcu_read_lock){..--}, at: [<ffffffff80442a63>] dev_queue_xmit+0x53/0x620
  #1:  (_xmit_ETHER#2){-+..}, at: [<ffffffff80456d71>] __qdisc_run+0x221/0x290
  #2:  (rcu_read_lock){..--}, at: [<ffffffff80442a63>] dev_queue_xmit+0x53/0x620
  #3:  (_xmit_IEEE80211#2){-+..}, at: [<ffffffff80456d71>] __qdisc_run+0x221/0x290
  #4:  (rcu_read_lock){..--}, at: [<ffffffffa0154919>] ieee80211_master_start_xmit+0x219/0x6c0 [mac80211]
  #5:  (rcu_read_lock){..--}, at: [<ffffffffa01427c6>] ieee80211_start_tx_ba_session+0x66/0x4e0 [mac80211]
  #6:  (rcu_read_lock){..--}, at: [<ffffffff80442a63>] dev_queue_xmit+0x53/0x620

 stack backtrace:
 Pid: 0, comm: swapper Not tainted 2.6.29-rc2-wl #21
 Call Trace:
  <IRQ>  [<ffffffff8026c329>] __lock_acquire+0x1be9/0x1c40
  [<ffffffff80442af1>] dev_queue_xmit+0xe1/0x620
  [<ffffffff8026a8cc>] __lock_acquire+0x18c/0x1c40
  [<ffffffff8026c3d5>] lock_acquire+0x55/0x70
  [<ffffffff80456d71>] __qdisc_run+0x221/0x290
  [<ffffffff804dbeb9>] _spin_lock+0x39/0x50
  [<ffffffff80456d71>] __qdisc_run+0x221/0x290
  [<ffffffff804dbd2f>] _spin_unlock+0x1f/0x50
  [<ffffffff80456d71>] __qdisc_run+0x221/0x290
  [<ffffffff80442d18>] dev_queue_xmit+0x308/0x620
  [<ffffffff80442a63>] dev_queue_xmit+0x53/0x620
  [<ffffffffa0142a63>] ieee80211_start_tx_ba_session+0x303/0x4e0 [mac80211]
  [<ffffffffa01427c6>] ieee80211_start_tx_ba_session+0x66/0x4e0 [mac80211]
  [<ffffffffa0149dae>] rate_control_get_rate+0xae/0xc0 [mac80211]
  [<ffffffffa01526b5>] invoke_tx_handlers+0x655/0x1000 [mac80211]
  [<ffffffff802699fd>] mark_held_locks+0x4d/0x90
  [<ffffffff804dbcf5>] _spin_unlock_irqrestore+0x65/0x80
  [<ffffffffa0151aaa>] __ieee80211_tx_prepare+0x16a/0x310 [mac80211]
  [<ffffffffa0151adc>] __ieee80211_tx_prepare+0x19c/0x310 [mac80211]
  [<ffffffff80439cc2>] pskb_expand_head+0x112/0x190
  [<ffffffffa0154986>] ieee80211_master_start_xmit+0x286/0x6c0 [mac80211]
  [<ffffffffa0154919>] ieee80211_master_start_xmit+0x219/0x6c0 [mac80211]
  [<ffffffff8026a8cc>] __lock_acquire+0x18c/0x1c40
  [<ffffffff80456d8e>] __qdisc_run+0x23e/0x290
  [<ffffffff80442d18>] dev_queue_xmit+0x308/0x620
  [<ffffffff80442a63>] dev_queue_xmit+0x53/0x620
  [<ffffffffa0154221>] ieee80211_subif_start_xmit+0x4a1/0x980 [mac80211]
  [<ffffffffa0153f18>] ieee80211_subif_start_xmit+0x198/0x980 [mac80211]
  [<ffffffff80456d8e>] __qdisc_run+0x23e/0x290
  [<ffffffff80442d18>] dev_queue_xmit+0x308/0x620
  [<ffffffff80442a63>] dev_queue_xmit+0x53/0x620
  [<ffffffffa028ecfd>] ip6_output+0x62d/0x1230 [ipv6]
  [<ffffffff8024ca00>] __mod_timer+0xb0/0xd0
  [<ffffffffa02ad25a>] mld_sendpack+0x3fa/0x4a0 [ipv6]
  [<ffffffffa02ace60>] mld_sendpack+0x0/0x4a0 [ipv6]
  [<ffffffffa02adf90>] mld_ifc_timer_expire+0x0/0x340 [ipv6]
  [<ffffffffa02ae219>] mld_ifc_timer_expire+0x289/0x340 [ipv6]
  [<ffffffffa02adf90>] mld_ifc_timer_expire+0x0/0x340 [ipv6]
  [<ffffffff8024c097>] run_timer_softirq+0x147/0x220
  [<ffffffff802473fb>] __do_softirq+0x9b/0x180
  [<ffffffff80265516>] tick_dev_program_event+0x36/0xb0
  [<ffffffff8020d77c>] call_softirq+0x1c/0x30
  [<ffffffff8020f2c5>] do_softirq+0x65/0xb0
  [<ffffffff80246ebd>] irq_exit+0x9d/0xc0
  [<ffffffff80221db6>] smp_apic_timer_interrupt+0x86/0xd0
  [<ffffffff8020d1b3>] apic_timer_interrupt+0x13/0x20

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-02-09 15:03:35 -05:00
..
ahb.c ath9k: get EEPROM contents from platform data on AHB bus 2009-01-29 16:00:33 -05:00
ani.c ath9k: fix null pointer dereference in ani monitor code 2009-01-29 16:00:34 -05:00
ath9k.h ath9k: Clean up the way the eeprom antenna configuration is read 2009-01-29 16:01:25 -05:00
beacon.c ath9k: Merge queue draining functions 2009-01-29 16:00:40 -05:00
calib.c ath9k: Fix AR9285 specific noise floor eeprom reads. 2009-01-29 16:01:49 -05:00
core.h mac80211: Generic TSF debugging 2009-01-29 16:01:46 -05:00
debug.c mac80211: Generic TSF debugging 2009-01-29 16:01:46 -05:00
eeprom.c ath9k: Clean up the way the eeprom antenna configuration is read 2009-01-29 16:01:25 -05:00
hw.c ath9k: Fix AR9285 specific noise floor eeprom reads. 2009-01-29 16:01:49 -05:00
hw.h ath9k: Enable dynamic power save in ath9k. 2009-01-29 16:01:03 -05:00
initvals.h ath9k: fix ar5416Addac_9100 values 2009-01-29 16:00:34 -05:00
Kconfig ath9k: Enforce module build if rfkill is a module 2009-01-12 14:24:50 -05:00
mac.c ath9k: Fix bug in TX DMA termination 2009-01-30 13:38:27 -05:00
main.c ath9k: Setup short preamble properly in rate registration 2009-01-30 13:38:25 -05:00
Makefile ath9k: introduce platform driver for AHB bus support 2009-01-29 16:00:32 -05:00
pci.c ath9k: get EEPROM contents from platform data on AHB bus 2009-01-29 16:00:33 -05:00
phy.c ath9k: Use cleaner debug masks 2008-12-05 09:35:08 -05:00
phy.h ath9k: Adding support for Atheros AR9285 chipset. 2008-12-12 13:48:26 -05:00
rc.c ath9k: Fix lockdep warning 2009-02-09 15:03:35 -05:00
rc.h ath9k: rateCodeToIndex is not used, remove it 2009-01-29 16:00:38 -05:00
recv.c ath9k: Enable dynamic power save in ath9k. 2009-01-29 16:01:03 -05:00
reg.h ath9k: remove (u16) casts from rtc register access 2009-01-29 16:00:33 -05:00
regd_common.h ath9k: simplify regulatory code 2009-01-29 16:01:20 -05:00
regd.c ath9k: fix debug print on regd 2009-01-29 16:01:48 -05:00
regd.h ath9k: simplify regulatory code 2009-01-29 16:01:20 -05:00
xmit.c ath9k: Fix lockdep warning 2009-02-09 15:03:35 -05:00