1. 16 9月, 2008 3 次提交
    • J
      mac80211: fix scan vs. interface removal race · 5bc75728
      Johannes Berg 提交于
      When we remove an interface, we can currently end up having
      a pointer to it left in local->scan_sdata after it has been
      set down, and then with a hardware scan the scan completion
      can try to access it which is a bug. Alternatively, a scan
      that started as a hardware scan may terminate as though it
      was a software scan, if the timing is just right.
      
      On SMP systems, software scan also has a similar problem,
      just canceling the delayed work and setting a flag isn't
      enough since it may be running concurrently; in this case
      we would also never restore state of other interfaces.
      
      This patch hopefully fixes the problems by always invoking
      ieee80211_scan_completed or requiring it to be invoked by
      the driver, I suspect the drivers that have ->hw_scan() are
      buggy. The bug will not manifest itself unless you remove
      the interface while hw-scanning which will also turn off
      the hw, and then add a new interface which will be unusable
      until you scan once.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5bc75728
    • J
      mac80211: fix work race · b7413430
      Johannes Berg 提交于
      When we stop an interface, the work on it may still be pending
      or running. We do cancel the timer, but we do not currently
      protect against the work struct. The race is very unlikely to
      hit -- it'll happen only when the driver is using mac80211's
      workqueue to run long-running tasks and the sta/mesh works are
      delayed for quite a bit.
      
      This patch fixes it by cancelling the work explicitly.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b7413430
    • J
      mac80211: split off mesh handling entirely · 472dbc45
      Johannes Berg 提交于
      This patch splits off mesh handling from the STA/IBSS.
      Unfortunately it increases mesh code size a bit, but I
      think it makes things clearer. The patch also reduces
      per-interface run-time memory usage.
      
      Also clean up a few places where ifdef is not required.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      472dbc45
  2. 12 9月, 2008 4 次提交
  3. 06 9月, 2008 1 次提交
  4. 30 8月, 2008 1 次提交
  5. 23 8月, 2008 4 次提交
  6. 07 8月, 2008 1 次提交
  7. 05 8月, 2008 1 次提交
  8. 30 7月, 2008 2 次提交
  9. 18 7月, 2008 3 次提交
  10. 15 7月, 2008 5 次提交
    • D
      netdev: Do not use TX lock to protect address lists. · b9e40857
      David S. Miller 提交于
      Now that we have a specific lock to protect the network
      device unicast and multicast lists, remove extraneous
      grabs of the TX lock in cases where the code only needs
      address list protection.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b9e40857
    • D
      netdev: Add netdev->addr_list_lock protection. · e308a5d8
      David S. Miller 提交于
      Add netif_addr_{lock,unlock}{,_bh}() helpers.
      
      Use them to protect operations that operate on or read
      the network device unicast and multicast address lists.
      
      Also use them in cases where the code simply wants to
      block calls into the driver's ->set_rx_mode() and
      ->set_multicast_list() methods.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e308a5d8
    • 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
    • J
      mac80211: revamp virtual interface handling · 75636525
      Johannes Berg 提交于
      This patch revamps the virtual interface handling and makes the
      code much easier to follow. Fewer functions, better names, less
      spaghetti code.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      75636525
    • J
      mac80211: make master netdev handling sane · 3e122be0
      Johannes Berg 提交于
      Currently, almost every interface type has a 'bss' pointer
      pointing to BSS information. This BSS information, however,
      is for a _local_ BSS, not for the BSS we joined, so having
      it on a STA mode interface makes little sense, but now they
      have it pointing to the master device, which is an AP mode
      virtual interface. However, except for some bitrate control
      data, this pointer is only used in AP/VLAN modes (for power
      saving stations.)
      
      Overall, it is not necessary to even have the master netdev
      be a valid virtual interface, and it doesn't have to be on
      the list of interfaces either.
      
      This patch changes the master netdev to be special, it now
       - no longer is on the list of virtual interfaces, which
         lets me remove a lot of tests for that
       - no longer has sub_if_data attached, since that isn't used
      
      Additionally, this patch changes some vlan/ap mode handling
      that is related to these 'bss' pointers described above (but
      in the VLAN case they actually make sense because there they
      point to the AP they belong to); it also adds some debugging
      code to IEEE80211_DEV_TO_SUB_IF to validate it is not called
      on the master netdev any more.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3e122be0
  11. 09 7月, 2008 4 次提交
  12. 08 7月, 2008 2 次提交
  13. 03 7月, 2008 1 次提交
  14. 27 6月, 2008 1 次提交
  15. 15 6月, 2008 1 次提交
  16. 10 6月, 2008 1 次提交
  17. 04 6月, 2008 1 次提交
  18. 29 5月, 2008 1 次提交
  19. 22 5月, 2008 3 次提交