1. 15 7月, 2008 2 次提交
    • J
      mac80211: revamp beacon configuration · 9d139c81
      Johannes Berg 提交于
      This patch changes mac80211's beacon configuration handling
      to never pass skbs to the driver directly but rather always
      require the driver to use ieee80211_beacon_get(). Additionally,
      it introduces "change flags" on the config_interface() call
      to enable drivers to figure out what is changing. Finally, it
      removes the beacon_update() driver callback in favour of
      having IBSS beacon delivered by ieee80211_beacon_get() as well.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9d139c81
    • I
      rt2x00: Fix NULL pointer error in adhoc/master mode · 9a613195
      Ivo van Doorn 提交于
      As soon as an interface is enabled, and that interface is in adhoc or master mode,
      the device will start raising beacondone interrupts. But before the first interrupt is
      raised, mac80211 will probably not have send any beacons to the device yet, which
      results in a NULL pointer error when the skb is being freed.
      
      Note that the "raise beacondone interrupts without a beacon" is also a bug,
      and will be addressed later. The more important bug however is preventing
      the NULL pointer failt itself, since there might be other conditions that could trigger
      it as well.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9a613195
  2. 09 7月, 2008 5 次提交
  3. 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
  4. 27 6月, 2008 12 次提交
  5. 25 6月, 2008 1 次提交
    • I
      rt2x00: Fix unbalanced mutex locking · 99ade259
      Ivo van Doorn 提交于
      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: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      99ade259
  6. 15 6月, 2008 19 次提交