1. 08 2月, 2017 1 次提交
  2. 13 12月, 2016 1 次提交
  3. 09 12月, 2016 1 次提交
    • J
      cfg80211/mac80211: fix BSS leaks when abandoning assoc attempts · e6f462df
      Johannes Berg 提交于
      When mac80211 abandons an association attempt, it may free
      all the data structures, but inform cfg80211 and userspace
      about it only by sending the deauth frame it received, in
      which case cfg80211 has no link to the BSS struct that was
      used and will not cfg80211_unhold_bss() it.
      
      Fix this by providing a way to inform cfg80211 of this with
      the BSS entry passed, so that it can clean up properly, and
      use this ability in the appropriate places in mac80211.
      
      This isn't ideal: some code is more or less duplicated and
      tracing is missing. However, it's a fairly small change and
      it's thus easier to backport - cleanups can come later.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      e6f462df
  4. 27 10月, 2016 4 次提交
  5. 19 10月, 2016 1 次提交
  6. 15 9月, 2016 1 次提交
    • J
      mac80211: fix possible out-of-bounds access · 93db1d9e
      Johannes Berg 提交于
      In the unlikely situation that the supplicant has negotiated
      admission for the background AC (which it has no reason to as
      it's not supposed to be requiring admission control to start
      with, and we'd ignore such a requirement anyway), the loop
      here may terminate with non_acm_ac == 4, which leads to an
      array overrun.
      
      Check this explicitly just for completeness.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      93db1d9e
  7. 12 5月, 2016 1 次提交
  8. 12 4月, 2016 1 次提交
  9. 06 4月, 2016 2 次提交
    • J
      mac80211: add fast-rx path · 49ddf8e6
      Johannes Berg 提交于
      The regular RX path has a lot of code, but with a few
      assumptions on the hardware it's possible to reduce the
      amount of code significantly. Currently the assumptions
      on the driver are the following:
       * hardware/driver reordering buffer (if supporting aggregation)
       * hardware/driver decryption & PN checking (if using encryption)
       * hardware/driver did de-duplication
       * hardware/driver did A-MSDU deaggregation
       * AP_LINK_PS is used (in AP mode)
       * no client powersave handling in mac80211 (in client mode)
      
      of which some are actually checked per packet:
       * de-duplication
       * PN checking
       * decryption
      and additionally packets must
       * not be A-MSDU (have been deaggregated by driver/device)
       * be data packets
       * not be fragmented
       * be unicast
       * have RFC 1042 header
      
      Additionally dynamically we assume:
       * no encryption or CCMP/GCMP, TKIP/WEP/other not allowed
       * station must be authorized
       * 4-addr format not enabled
      
      Some data needed for the RX path is cached in a new per-station
      "fast_rx" structure, so that we only need to look at this and
      the packet, no other memory when processing packets on the fast
      RX path.
      
      After doing the above per-packet checks, the data path collapses
      down to a pretty simple conversion function taking advantage of
      the data cached in the small fast_rx struct.
      
      This should speed up the RX processing, and will make it easier
      to reason about parallelizing RX (for which statistics will need
      to be per-CPU still.)
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      49ddf8e6
    • J
      mac80211: avoid useless memory write on each frame RX · b100e5d6
      Johannes Berg 提交于
      In the likely case that probe_count is 0, don't write to the
      memory there.
      
      Also use ifmgd consistently in the function, instead of using
      sdata->u.mgd as well.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      b100e5d6
  10. 24 2月, 2016 3 次提交
  11. 26 1月, 2016 1 次提交
  12. 14 1月, 2016 2 次提交
  13. 15 12月, 2015 2 次提交
  14. 04 12月, 2015 1 次提交
  15. 03 11月, 2015 4 次提交
  16. 21 10月, 2015 1 次提交
  17. 15 10月, 2015 1 次提交
  18. 13 10月, 2015 1 次提交
  19. 29 9月, 2015 2 次提交
  20. 22 9月, 2015 4 次提交
    • J
      mac80211: use DECLARE_EWMA for ave_beacon_signal · 338c17ae
      Johannes Berg 提交于
      It doesn't seem problematic to change the weight for the average
      beacon signal from 3 to 4, so use DECLARE_EWMA. This also makes
      the code easier to maintain since bugs like the one fixed in the
      previous patch can't happen as easily.
      
      With a fix from Avraham Stern to invert the sign since EMWA uses
      unsigned values only.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      338c17ae
    • J
      mac80211: fix driver RSSI event calculations · 8ec6d978
      Johannes Berg 提交于
      The ifmgd->ave_beacon_signal value cannot be taken as is for
      comparisons, it must be divided by since it's represented
      like that for better accuracy of the EWMA calculations. This
      would lead to invalid driver RSSI events. Fix the used value.
      
      Fixes: 615f7b9b ("mac80211: add driver RSSI threshold events")
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      8ec6d978
    • J
      mac80211: remove last_beacon/ave_beacon debugfs files · 8e0d7fe0
      Johannes Berg 提交于
      These file aren't really useful:
       - if per beacon data is required then you need to use
         radiotap or similar anyway, debugfs won't help much
       - average beacon signal is reported in station info in
         nl80211 and can be looked up with iw
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      8e0d7fe0
    • J
      mac80211: remove direct probe step before authentication · 46cad4b7
      Johannes Berg 提交于
      The direct probe step before authentication was done mostly for
      two reasons:
       1) the BSS data could be stale
       2) the beacon might not have included all IEs
      
      The concern (1) doesn't really seem to be relevant any more as
      we time out BSS information after about 30 seconds, and in fact
      the original patch only did the direct probe if the data was
      older than the BSS timeout to begin with. This condition got
      (likely inadvertedly) removed later though.
      
      Analysing this in more detail shows that since we mostly use
      data from the association response, the only real reason for
      needing the probe response was that the code validates the WMM
      parameters, and those are optional in beacons. As the previous
      patches removed that behaviour, we can now remove the direct
      probe step entirely.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      46cad4b7
  21. 04 9月, 2015 1 次提交
  22. 17 7月, 2015 3 次提交
  23. 10 6月, 2015 1 次提交
    • J
      mac80211: convert HW flags to unsigned long bitmap · 30686bf7
      Johannes Berg 提交于
      As we're running out of hardware capability flags pretty quickly,
      convert them to use the regular test_bit() style unsigned long
      bitmaps.
      
      This introduces a number of helper functions/macros to set and to
      test the bits, along with new debugfs code.
      
      The occurrences of an explicit __clear_bit() are intentional, the
      drivers were never supposed to change their supported bits on the
      fly. We should investigate changing this to be a per-frame flag.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      30686bf7