1. 14 Jul, 2008 4 commits
  2. 08 Jul, 2008 5 commits
  3. 27 Jun, 2008 4 commits
    • Ivo van Doorn's avatar
      rt2x00: Fix lock dependency errror · 980dfcb9
      Ivo van Doorn authored
      
      
      This fixes a circular locking dependency in the workqueue handling.
      The interface work task uses the mac80211 function
      ieee80211_iterate_active_interfaces() which grabs the RTNL lock.
      
      However when the interface is brough down, this happens under the RTNL
      lock as well, this causes problems because mac80211 will flush the workqueue
      during the ifdown event. This causes mac80211 to wait until the driver has
      completed all work which can't finish because it is waiting on the RTNL lock.
      
      This is fixed by moving rt2x00 workqueue tasks on a different workqueue,
      this workqueue can be flushed when the ieee80211_hw structure is removed
      by the driver (when the driver is unloaded) which does not happen under the
      RTNL lock.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      980dfcb9
    • John W. Linville's avatar
      wireless: remove RFKILL_STATE_HARD_BLOCKED warnings · ff28bd94
      John W. Linville authored
      
      
        CC [M]  drivers/net/wireless/b43/rfkill.o
      drivers/net/wireless/b43/rfkill.c: In function ‘b43_rfkill_soft_toggle’:
      drivers/net/wireless/b43/rfkill.c:90: warning: enumeration value ‘RFKILL_STATE_HARD_BLOCKED’ not handled in switch
      
        CC [M]  drivers/net/wireless/b43legacy/rfkill.o
      drivers/net/wireless/b43legacy/rfkill.c: In function ‘b43legacy_rfkill_soft_toggle’:
      drivers/net/wireless/b43legacy/rfkill.c:92: warning: enumeration value ‘RFKILL_STATE_HARD_BLOCKED’ not handled in switch
      
        CC [M]  drivers/net/wireless/iwlwifi/iwl-rfkill.o
      drivers/net/wireless/iwlwifi/iwl-rfkill.c: In function ‘iwl_rfkill_soft_rf_kill’:
      drivers/net/wireless/iwlwifi/iwl-rfkill.c:56: warning: enumeration value ‘RFKILL_STATE_HARD_BLOCKED’ not handled in switch
      
      Also handle RFKILL_STATE_{ON,OFF} -> RFKILL_STATE_{UNBLOCKED,SOFT_BLOCKED}
      conversion since I'm already here...
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      ff28bd94
    • Ivo van Doorn's avatar
      rt2x00: kill URB for all TX queues during disable_radio() · 40af48ce
      Ivo van Doorn authored
      
      
      During rt2x00usb_disable_radio() all pending urb's should
      be killed and not only those from the RX queue.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      40af48ce
    • Ivo van Doorn's avatar
      rt2x00: Remove duplicate deinitialization · 61243d8e
      Ivo van Doorn authored
      
      
      When rt2x00queue_alloc_rxskbs() fails rt2x00queue_unitialize()
      will be called which will free all rxskb. So we don't need
      to do this in the rt2x00queue_alloc_rxskb() function as well.
      
      rt2x00queue_free_skb() unmaps the DMA but doesn't clear the
      allocation flag. Since the code is copied from rt2x00queue_unmap_skb()
      anyway (and that function does clear the flag) we might as well
      use that function directly.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      61243d8e
  4. 26 Jun, 2008 9 commits
  5. 25 Jun, 2008 1 commit
    • Ivo van Doorn's avatar
      rt2x00: Fix unbalanced mutex locking · 99ade259
      Ivo van Doorn authored
      
      
      The usb_cache_mutex was not correctly released
      under all circumstances. Both rt73usb as rt2500usb
      didn't release the mutex under certain conditions
      when the register access failed. Obviously such
      failure would lead to deadlocks.
      
      In addition under similar circumstances when the
      bbp register couldn't be read the value must be
      set to 0xff to indicate that the value is wrong.
      This too didn't happen under all circumstances.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      99ade259
  6. 14 Jun, 2008 17 commits