1. 05 1月, 2011 7 次提交
    • C
      carl9170: fix usb pm suspend->resume woes · 97e2c402
      Christian Lamparter 提交于
      This patch revamps some common code-paths which are
      shared between (re-)initialization and suspend/resume
      subroutines. It also adds some helpful comments
      about quirks and associated difficulties.
      
      It's quite big, but it should fix #25382:
      <https://bugzilla.kernel.org/show_bug.cgi?id=25382>
      
      And hopefully the code is robust enough to deal with
      all possible suspend/resume scenarios without requiring
      the user to do any sort of manual and possibly
      dangerous work.
      Signed-off-by: NChristian Lamparter <chunkeey@googlemail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      97e2c402
    • C
      carl9170: reduce channel change delay · 3b386510
      Christian Lamparter 提交于
      By removing two "safety" msleeps (and an echo nop), the
      channel change delay is effectively halved. Previously,
      the delay could be as long as 260 ms and the device
      could not go off-channel without risking to miss the
      next DTIM beacon [interval ~307 ms].
      Signed-off-by: NChristian Lamparter <chunkeey@googlemail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3b386510
    • C
      carl9170: add missing return-value check · c9e57f0f
      Christian Lamparter 提交于
      This patch adds a forgotten bail-out path.
      Signed-off-by: NChristian Lamparter <chunkeey@googlemail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c9e57f0f
    • B
      ath5k: fix cycle counter inconsistent locking · bb007554
      Bob Copeland 提交于
      ath5k_reset is called from process context and takes the cc_lock
      with plain spin_lock(), but cc_lock can also be taken from tasklets
      in softirq context.  Thus we need to at least use spin_lock_bh.
      
      This fixes the following lockdep warning:
      
      [   19.967874] sky2 0000:01:00.0: eth0: enabling interface
      [   19.982761] ieee80211 phy0: device now idle
      [   20.904809] NET: Registered protocol family 17
      [   21.243857] ieee80211 phy0: device no longer idle - scanning
      [   21.404343]
      [   21.404346] =================================
      [   21.404450] [ INFO: inconsistent lock state ]
      [   21.404518] 2.6.37-rc7-wl+ #242
      [   21.404582] ---------------------------------
      [   21.404650] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
      [   21.404721] kworker/u:4/982 [HC0[0]:SC1[3]:HE1:SE0] takes:
      [   21.404792]  (&(&common->cc_lock)->rlock){+.?...}, at: [<f8115780>] ath5k_ani_calibration+0x29/0x5d9 [ath5k]
      [   21.405011] {SOFTIRQ-ON-W} state was registered at:
      [   21.405011]   [<c105cadd>] __lock_acquire+0x62f/0x13c1
      [   21.405011]   [<c105d944>] lock_acquire+0xd5/0xf1
      [   21.405011]   [<c12c978d>] _raw_spin_lock+0x45/0x72
      [   21.405011]   [<f8111533>] ath5k_reset+0x2c0/0x349 [ath5k]
      [   21.405011]   [<f8111a7a>] ath5k_start+0xb8/0x139 [ath5k]
      [   21.405011]   [<f849c714>] ieee80211_do_open+0x13f/0x819 [mac80211]
      [   21.405011]   [<f849ce51>] ieee80211_open+0x63/0x66 [mac80211]
      [   21.405011]   [<c1258b2e>] __dev_open+0x8d/0xb6
      [   21.405011]   [<c1255c64>] __dev_change_flags+0x9d/0x114
      [   21.405011]   [<c1258a75>] dev_change_flags+0x18/0x44
      [   21.405011]   [<c1262990>] do_setlink+0x23f/0x521
      [   21.405011]   [<c1262d58>] rtnl_setlink+0xe6/0xea
      [   21.405011]   [<c126347c>] rtnetlink_rcv_msg+0x18a/0x1a0
      [   21.405011]   [<c126d5f0>] netlink_rcv_skb+0x35/0x7b
      [   21.405011]   [<c12632eb>] rtnetlink_rcv+0x20/0x27
      [   21.405011]   [<c126d370>] netlink_unicast+0x1bb/0x21e
      [   21.405011]   [<c126db21>] netlink_sendmsg+0x23b/0x288
      [   21.405011]   [<c124823c>] sock_sendmsg+0xac/0xc4
      [   21.405011]   [<c1248680>] sys_sendmsg+0x152/0x1a2
      [   21.405011]   [<c1249b0d>] sys_socketcall+0x214/0x275
      [   21.405011]   [<c10029d0>] sysenter_do_call+0x12/0x36
      [   21.405011] irq event stamp: 138032
      [   21.405011] hardirqs last  enabled at (138032): [<c12ca252>] _raw_spin_unlock_irqrestore+0x3b/0x5e
      [   21.405011] hardirqs last disabled at (138031): [<c12c98cc>] _raw_spin_lock_irqsave+0x18/0x7e
      [   21.405011] softirqs last  enabled at (138024): [<f84a570e>] ieee80211_tx_skb+0x47/0x49 [mac80211]
      [   21.405011] softirqs last disabled at (138027): [<c100452b>] do_softirq+0x63/0xb4
      [   21.405011]
      [   21.405011] other info that might help us debug this:
      [   21.405011] 3 locks held by kworker/u:4/982:
      [   21.405011]  #0:  (name){+.+.+.}, at: [<c1046158>] process_one_work+0x1b8/0x41b
      [   21.405011]  #1:  ((&(&local->scan_work)->work)){+.+.+.}, at: [<c1046158>] process_one_work+0x1b8/0x41b
      [   21.405011]  #2:  (&local->mtx){+.+.+.}, at: [<f84920fb>] ieee80211_scan_work+0x32/0x4a4 [mac80211]
      [   21.405011]
      [   21.405011] stack backtrace:
      [   21.405011] Pid: 982, comm: kworker/u:4 Not tainted 2.6.37-rc7-wl+ #242
      [   21.405011] Call Trace:
      [   21.405011]  [<c12c6e68>] ? printk+0x1d/0x25
      [   21.405011]  [<c105a742>] print_usage_bug+0x181/0x18b
      [   21.405011]  [<c105b196>] ? check_usage_forwards+0x0/0xb6
      [   21.405011]  [<c105a9ec>] mark_lock+0x2a0/0x4aa
      [   21.405011]  [<c1059f6d>] ? trace_hardirqs_off+0xb/0xd
      [   21.405011]  [<c105ca68>] __lock_acquire+0x5ba/0x13c1
      [   21.405011]  [<c1059eed>] ? trace_hardirqs_off_caller+0x18/0x8d
      [   21.405011]  [<c1059f6d>] ? trace_hardirqs_off+0xb/0xd
      [   21.405011]  [<c1050411>] ? local_clock+0x2c/0x4f
      [   21.405011]  [<c1059e00>] ? save_trace+0x2/0xa0
      [   21.405011]  [<c105ac39>] ? mark_held_locks+0x43/0x5b
      [   21.405011]  [<c12ca252>] ? _raw_spin_unlock_irqrestore+0x3b/0x5e
      [   21.405011]  [<f8115780>] ? ath5k_ani_calibration+0x29/0x5d9 [ath5k]
      [   21.405011]  [<c105d944>] lock_acquire+0xd5/0xf1
      [   21.405011]  [<f8115780>] ? ath5k_ani_calibration+0x29/0x5d9 [ath5k]
      [   21.405011]  [<c12c9b1a>] _raw_spin_lock_bh+0x4a/0x77
      [   21.405011]  [<f8115780>] ? ath5k_ani_calibration+0x29/0x5d9 [ath5k]
      [   21.405011]  [<f8115780>] ath5k_ani_calibration+0x29/0x5d9 [ath5k]
      [   21.405011]  [<c105ac39>] ? mark_held_locks+0x43/0x5b
      [   21.405011]  [<f8113496>] ath5k_tasklet_ani+0x1d/0x27 [ath5k]
      [   21.405011]  [<c1037304>] tasklet_action+0x96/0x137
      [   21.405011]  [<c10379b5>] __do_softirq+0xde/0x1c3
      [   21.405011]  [<c10b0cef>] ? arch_get_unmapped_area_topdown+0x3b/0x127
      [   21.405011]  [<c10378d7>] ? __do_softirq+0x0/0x1c3
      [   21.405011]  <IRQ>  [<c1036dee>] ? irq_exit+0x3d/0x49
      [   21.405011]  [<c1003b4f>] ? do_IRQ+0x98/0xac
      [   21.405011]  [<c1002eee>] ? common_interrupt+0x2e/0x34
      [   21.405011]  [<c103007b>] ? sys_unshare+0x57/0x226
      [   21.405011]  [<c1047fee>] ? queue_delayed_work+0x1/0x27
      [   21.405011]  [<f84a83a0>] ? ieee80211_queue_delayed_work+0x2e/0x33 [mac80211]
      [   21.405011]  [<f8492528>] ? ieee80211_scan_work+0x45f/0x4a4 [mac80211]
      [   21.405011]  [<c104620e>] ? process_one_work+0x26e/0x41b
      [   21.405011]  [<c1046158>] ? process_one_work+0x1b8/0x41b
      [   21.405011]  [<f84920c9>] ? ieee80211_scan_work+0x0/0x4a4 [mac80211]
      [   21.405011]  [<c10466b6>] ? worker_thread+0x18a/0x2a5
      [   21.405011]  [<c12ca25e>] ? _raw_spin_unlock_irqrestore+0x47/0x5e
      [   21.405011]  [<c104652c>] ? worker_thread+0x0/0x2a5
      [   21.405011]  [<c104abe7>] ? kthread+0x67/0x6c
      [   21.405011]  [<c104ab80>] ? kthread+0x0/0x6c
      [   21.405011]  [<c1002efa>] ? kernel_thread_helper+0x6/0x10
      Signed-off-by: NBob Copeland <me@bobcopeland.com>
      Acked-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      bb007554
    • B
      ath9k: fix spur mitigation no-spur case for AR9002 · 44cefead
      Brian Prodoehl 提交于
      For the AR9002, the spur frequency read from the EEPROM is mangled
      before being compared against AR_NO_SPUR.  This results in the driver
      trying to set up the spur mitigation for bogus spurs, rather than
      cleanly breaking out.
      Signed-off-by: NBrian Prodoehl <bprodoehl@nomadio.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      44cefead
    • S
      ath9k: spin_lock_bh is not required within tasklet context. · 52671e43
      Senthil Balasubramanian 提交于
      Disabling BH is not required while running from a tasklet context
      and so replace spin_lock_bh with just spin_lock.
      Signed-off-by: NSenthil Balasubramanian <senthilkumar@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      52671e43
    • B
      ath5k: Move mac80211 functions into new file · cd2c5486
      Bruno Randolf 提交于
      Move mac80211 functions into new file mac80211-ops.c to have a better
      separation and to make base.c smaller.
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      cd2c5486
  2. 23 12月, 2010 13 次提交
  3. 21 12月, 2010 6 次提交
  4. 17 12月, 2010 9 次提交
  5. 16 12月, 2010 4 次提交
  6. 14 12月, 2010 1 次提交