1. 16 9月, 2008 2 次提交
    • 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
    • L
      cfg80211: Add new wireless regulatory infrastructure · b2e1b302
      Luis R. Rodriguez 提交于
      This adds the new wireless regulatory infrastructure. The
      main motiviation behind this was to centralize regulatory
      code as each driver was implementing their own regulatory solution,
      and to replace the initial centralized code we have where:
      
      * only 3 regulatory domains are supported: US, JP and EU
      * regulatory domains can only be changed through module parameter
      * all rules were built statically in the kernel
      
      We now have support for regulatory domains for many countries
      and regulatory domains are now queried through a userspace agent
      through udev allowing distributions to update regulatory rules
      without updating the kernel.
      
      Each driver can regulatory_hint() a regulatory domain
      based on either their EEPROM mapped regulatory domain value to a
      respective ISO/IEC 3166-1 country code or pass an internally built
      regulatory domain. We also add support to let the user set the
      regulatory domain through userspace in case of faulty EEPROMs to
      further help compliance.
      
      Support for world roaming will be added soon for cards capable of
      this.
      
      For more information see:
      
      http://wireless.kernel.org/en/developers/Regulatory/CRDA
      
      For now we leave an option to enable the old module parameter,
      ieee80211_regdom, and to build the 3 old regdomains statically
      (US, JP and EU). This option is CONFIG_WIRELESS_OLD_REGULATORY.
      These old static definitions and the module parameter is being
      scheduled for removal for 2.6.29. Note that if you use this
      you won't make use of a world regulatory domain as its pointless.
      If you leave this option enabled and if CRDA is present and you
      use US or JP we will try to ask CRDA to update us a regulatory
      domain for us.
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b2e1b302
  2. 12 9月, 2008 1 次提交
  3. 30 8月, 2008 1 次提交
  4. 23 8月, 2008 3 次提交
  5. 18 8月, 2008 1 次提交
  6. 05 8月, 2008 2 次提交
  7. 30 7月, 2008 2 次提交
  8. 18 7月, 2008 1 次提交
  9. 15 7月, 2008 4 次提交
  10. 09 7月, 2008 1 次提交
  11. 08 7月, 2008 1 次提交
  12. 01 7月, 2008 2 次提交
  13. 27 6月, 2008 2 次提交
  14. 15 6月, 2008 2 次提交
  15. 22 5月, 2008 5 次提交
  16. 17 5月, 2008 1 次提交
    • I
      mac80211: Add RTNL version of ieee80211_iterate_active_interfaces · 2f561feb
      Ivo van Doorn 提交于
      Since commit e38bad47
      	mac80211: make ieee80211_iterate_active_interfaces not need rtnl
      rt2500usb and rt73usb broke down due to attempting register access
      in atomic context (which is not possible for USB hardware).
      
      This patch restores ieee80211_iterate_active_interfaces() to use RTNL lock,
      and provides the non-RTNL version under a new name:
      	ieee80211_iterate_active_interfaces_atomic()
      
      So far only rt2x00 uses ieee80211_iterate_active_interfaces(), and those
      drivers require the RTNL version of ieee80211_iterate_active_interfaces().
      Since they already call that function directly, this patch will automatically
      fix the USB rt2x00 drivers.
      
      v2: Rename ieee80211_iterate_active_interfaces_rtnl
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2f561feb
  17. 15 5月, 2008 1 次提交
    • B
      mac80211: use hardware flags for signal/noise units · 566bfe5a
      Bruno Randolf 提交于
      trying to clean up the signal/noise code. the previous code in mac80211 had
      confusing names for the related variables, did not have much definition of
      what units of signal and noise were provided and used implicit mechanisms from
      the wireless extensions.
      
      this patch introduces hardware capability flags to let the hardware specify
      clearly if it can provide signal and noise level values and which units it can
      provide. this also anticipates possible new units like RCPI in the future.
      
      for signal:
      
        IEEE80211_HW_SIGNAL_UNSPEC - unspecified, unknown, hw specific
        IEEE80211_HW_SIGNAL_DB     - dB difference to unspecified reference point
        IEEE80211_HW_SIGNAL_DBM    - dBm, difference to 1mW
      
      for noise we currently only have dBm:
      
        IEEE80211_HW_NOISE_DBM     - dBm, difference to 1mW
      
      if IEEE80211_HW_SIGNAL_UNSPEC or IEEE80211_HW_SIGNAL_DB is used the driver has
      to provide the maximum value (max_signal) it reports in order for applications
      to make sense of the signal values.
      
      i tried my best to find out for each driver what it can provide and update it
      but i'm not sure (?) for some of them and used the more conservative guess in
      doubt. this can be fixed easily after this patch has been merged by changing
      the hardware flags of the driver.
      
      DRIVER          SIGNAL    MAX	NOISE   QUAL
      -----------------------------------------------------------------
      adm8211         unspec(?) 100   n/a     missing
      at76_usb        unspec(?) (?)   unused  missing
      ath5k           dBm             dBm     percent rssi
      b43legacy       dBm             dBm     percent jssi(?)
      b43             dBm             dBm     percent jssi(?)
      iwl-3945        dBm             dBm     percent snr+more
      iwl-4965        dBm             dBm     percent snr+more
      p54             unspec    127   n/a     missing
      rt2x00          dBm	        n/a     percent rssi+tx/rx frame success
        rt2400        dBm             n/a
        rt2500pci     dBm             n/a
        rt2500usb     dBm             n/a
        rt61pci       dBm             n/a
        rt73usb       dBm             n/a
      rtl8180         unspec(?) 65    n/a     (?)
      rtl8187         unspec(?) 65    (?)     noise(?)
      zd1211          dB(?)     100   n/a     percent
      
      drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      566bfe5a
  18. 08 5月, 2008 5 次提交
  19. 17 4月, 2008 1 次提交
  20. 09 4月, 2008 2 次提交