1. 13 2月, 2014 24 次提交
  2. 08 2月, 2014 3 次提交
  3. 06 2月, 2014 3 次提交
  4. 05 2月, 2014 10 次提交
    • J
      mac80211: order IEs in association request correctly · 3de3802c
      Johannes Berg 提交于
      In association request frames, there may be IEs passed from
      userspace (such as interworking IEs) between HT and VHT, so
      add code to insert those inbetween them.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      3de3802c
    • J
      mac80211: order IEs in probe request correctly · 4d952300
      Johannes Berg 提交于
      In probe request frames, the VHT IEs should come before any
      vendor IEs, but after interworking and similar, so add code
      to order them correctly wrt. the IEs passed from userspace.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      4d952300
    • M
      mac80211: update opmode when adding new station · b1bce14a
      Marek Kwaczynski 提交于
      Update the operating mode field is needed when an association
      request contains the operating mode notification element and
      it's not just changed later on the fly.
      Signed-off-by: NMarek Kwaczynski <marek.kwaczynski@tieto.com>
      [clarify commit log, comments & fix whitespace]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      b1bce14a
    • J
      cfg80211: regulatory introduce maximum bandwidth calculation · 97524820
      Janusz Dziedzic 提交于
      In case we will get regulatory request with rule
      where max_bandwidth_khz is set to 0 handle this
      case as a special one.
      
      If max_bandwidth_khz == 0 we should calculate maximum
      available bandwidth base on all frequency contiguous rules.
      In case we need auto calculation we just have to set:
      
      country PL: DFS-ETSI
              (2402 - 2482 @ 40), (N/A, 20)
              (5170 - 5250 @ AUTO), (N/A, 20)
              (5250 - 5330 @ AUTO), (N/A, 20), DFS
              (5490 - 5710 @ 80), (N/A, 27), DFS
      
      This mean we will calculate maximum bw for rules where
      AUTO (N/A) were set, 160MHz (5330 - 5170) in example above.
      So we will get:
              (5170 - 5250 @ 160), (N/A, 20)
              (5250 - 5330 @ 160), (N/A, 20), DFS
      
      In other case:
      country FR: DFS-ETSI
              (2402 - 2482 @ 40), (N/A, 20)
              (5170 - 5250 @ AUTO), (N/A, 20)
              (5250 - 5330 @ 80), (N/A, 20), DFS
              (5490 - 5710 @ 80), (N/A, 27), DFS
      
      We will get 80MHz (5250 - 5170):
              (5170 - 5250 @ 80), (N/A, 20)
              (5250 - 5330 @ 80), (N/A, 20), DFS
      
      Base on this calculations we will set correct channel
      bandwidth flags (eg. IEEE80211_CHAN_NO_80MHZ).
      
      We don't need any changes in CRDA or internal regulatory.
      Signed-off-by: NJanusz Dziedzic <janusz.dziedzic@tieto.com>
      [extend nl80211 description a bit, fix typo]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      97524820
    • M
      cfg80211: consider existing DFS interfaces · 9e0e2961
      Michal Kazior 提交于
      It was possible to break interface combinations in
      the following way:
      
       combo 1: iftype = AP, num_ifaces = 2, num_chans = 2,
       combo 2: iftype = AP, num_ifaces = 1, num_chans = 1, radar = HT20
      
      With the above interface combinations it was
      possible to:
      
       step 1. start AP on DFS channel by matching combo 2
       step 2. start AP on non-DFS channel by matching combo 1
      
      This was possible beacuse (step 2) did not consider
      if other interfaces require radar detection.
      
      The patch changes how cfg80211 tracks channels -
      instead of channel itself now a complete chandef
      is stored.
      Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      9e0e2961
    • A
      cfg80211: fix channel configuration in IBSS join · fe94f3a4
      Antonio Quartulli 提交于
      When receiving an IBSS_JOINED event select the BSS object
      based on the {bssid, channel} couple rather than the bssid
      only.
      With the current approach if another cell having the same
      BSSID (but using a different channel) exists then cfg80211
      picks up the wrong BSS object.
      The result is a mismatching channel configuration between
      cfg80211 and the driver, that can lead to any sort of
      problem.
      
      The issue can be triggered by having an IBSS sitting on
      given channel and then asking the driver to create a new
      cell using the same BSSID but with a different frequency.
      By passing the channel to cfg80211_get_bss() we can solve
      this ambiguity and retrieve/create the correct BSS object.
      All the users of cfg80211_ibss_joined() have been changed
      accordingly.
      
      Moreover WARN when cfg80211_ibss_joined() gets a NULL
      channel as argument and remove a bogus call of the same
      function in ath6kl (it does not make sense to call
      cfg80211_ibss_joined() with a zero BSSID on ibss-leave).
      
      Cc: Kalle Valo <kvalo@qca.qualcomm.com>
      Cc: Arend van Spriel <arend@broadcom.com>
      Cc: Bing Zhao <bzhao@marvell.com>
      Cc: Jussi Kivilinna <jussi.kivilinna@iki.fi>
      Cc: libertas-dev@lists.infradead.org
      Acked-by: NKalle Valo <kvalo@qca.qualcomm.com>
      Signed-off-by: NAntonio Quartulli <antonio@open-mesh.com>
      [minor code cleanup in ath6kl]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      fe94f3a4
    • S
      net: rfkill: move poll work to power efficient workqueue · 67235cbc
      Shaibal Dutta 提交于
      This patch moves the rfkill poll_work to the power efficient workqueue.
      This work does not have to be bound to the CPU that scheduled it, hence
      the selection of CPU that executes it would be left to the scheduler.
      Net result is that CPU idle times would be extended, resulting in power
      savings.
      
      This behaviour is enabled when CONFIG_WQ_POWER_EFFICIENT is selected.
      
      Cc: "John W. Linville" <linville@tuxdriver.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NShaibal Dutta <shaibal.dutta@broadcom.com>
      [zoran.markovic@linaro.org: Rebased to latest kernel, added commit message.
      Fixed workqueue selection after suspend/resume cycle.]
      Signed-off-by: NZoran Markovic <zoran.markovic@linaro.org>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      67235cbc
    • S
      net: wireless: move regulatory timeout work to power efficient workqueue · 845f3351
      Shaibal Dutta 提交于
      For better use of CPU idle time, allow the scheduler to select the CPU
      on which the timeout work of regulatory settings would be executed.
      This extends CPU idle residency time and saves power.
      
      This functionality is enabled when CONFIG_WQ_POWER_EFFICIENT is selected.
      
      Cc: "John W. Linville" <linville@tuxdriver.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NShaibal Dutta <shaibal.dutta@broadcom.com>
      [zoran.markovic@linaro.org: Rebased to latest kernel. Added commit message.]
      Signed-off-by: NZoran Markovic <zoran.markovic@linaro.org>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      845f3351
    • J
      mac80211: fix bufferable MMPDU RX handling · b4ba544c
      Johannes Berg 提交于
      Action, disassoc and deauth frames are bufferable, and as such don't
      have the PM bit in the frame control field reserved which means we
      need to react to the bit when receiving in such a frame.
      
      Fix this by introducing a new helper ieee80211_is_bufferable_mmpdu()
      and using it for the RX path that currently ignores the PM bit in
      any non-data frames for doze->wake transitions, but listens to it in
      all frames for wake->doze transitions, both of which are wrong.
      
      Also use the new helper in the TX path to clean up the code.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      b4ba544c
    • J
      mac80211: remove set but unused variables · 953467d3
      Johannes Berg 提交于
      Compiling with W=1 found a few variables that are set
      but not used (-Wunused-but-set-variable), remove them.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      953467d3