1. 22 11月, 2008 2 次提交
    • I
      rt2x00: Fix BUG_ON() with antenna handling · 6d64360a
      Ivo van Doorn 提交于
      With the new configuration handling, and more specifically
      splitting the configuration of the antenna from the normal
      configuration steps allowed a BUG_ON() to be triggered
      in the driver because the SW_DIVERSITY was send to the
      driver. This fixes that by catching the value early in
      rt2x00config.c and replacing it with a sensible value.
      
      This also fixes a problem where the antenna is not being
      initialized at all when the radio is enabled. Since it
      no longer is part of the mac80211 configuration the
      only place where rt2x00 configured it was the SW diversity
      handler. Obviously this is broken for all non-diversity
      hardware and breaks SW diversity due to a broken initialization.
      
      When the radio is enabled the antenna will be configured
      once as soon as the config() callback function is called.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6d64360a
    • I
      rt2x00: Block set_key() during suspend/shutdown · 8058409c
      Ivo van Doorn 提交于
      mac80211 will call set_key() when the device is
      shutting down. When the device is unplugged the
      keys will be lost automatically due to the power
      loss. When the device is not plugged but the module
      is only unloaded the keys can remain in the device
      hardware, when the module is loaded the keys will
      be cleaned up during initialization.
      
      This should prevent the problem reported by Johannes Berg,
      where unplugging the device while suspended resulted in
      a NULL pointer error during set_key() which was
      caused because of the CSR base address being freed.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8058409c
  2. 11 11月, 2008 2 次提交
  3. 01 11月, 2008 3 次提交
  4. 25 9月, 2008 1 次提交
  5. 16 9月, 2008 1 次提交
  6. 30 8月, 2008 3 次提交
  7. 23 8月, 2008 2 次提交
  8. 07 8月, 2008 1 次提交
  9. 02 8月, 2008 1 次提交
  10. 30 7月, 2008 4 次提交
  11. 15 7月, 2008 5 次提交
  12. 09 7月, 2008 1 次提交
  13. 28 6月, 2008 1 次提交
    • I
      rt2x00: Fix lock dependency errror · 980dfcb9
      Ivo van Doorn 提交于
      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: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      980dfcb9
  14. 15 6月, 2008 4 次提交
  15. 29 5月, 2008 1 次提交
  16. 22 5月, 2008 3 次提交
  17. 08 5月, 2008 5 次提交