1. 25 9月, 2010 1 次提交
    • J
      mac80211: fix use-after-free · cd87a2d3
      Johannes Berg 提交于
      commit 8c0c709e
      Author: Johannes Berg <johannes@sipsolutions.net>
      Date:   Wed Nov 25 17:46:15 2009 +0100
      
          mac80211: move cmntr flag out of rx flags
      
      moved the CMTR flag into the skb's status, and
      in doing so introduced a use-after-free -- when
      the skb has been handed to cooked monitors the
      status setting will touch now invalid memory.
      
      Additionally, moving it there has effectively
      discarded the optimisation -- since the bit is
      only ever set on freed SKBs, and those were a
      copy, it could never be checked.
      
      For the current release, fixing this properly
      is a bit too involved, so let's just remove the
      problematic code and leave userspace with one
      copy of each frame for each virtual interface.
      
      Cc: stable@kernel.org [2.6.33+]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      cd87a2d3
  2. 31 8月, 2010 1 次提交
    • J
      mac80211: delete work timer · 071249b1
      Johannes Berg 提交于
      The new workqueue changes helped me find this bug
      that's been lingering since the changes to the work
      processing in mac80211 -- the work timer is never
      deleted properly. Do that to avoid having it fire
      after all data structures have been freed. It can't
      be re-armed because all it will do, if running, is
      schedule the work, but that gets flushed later and
      won't have anything to do since all work items are
      gone by now (by way of interface removal).
      
      Cc: stable@kernel.org [2.6.34+]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      071249b1
  3. 05 8月, 2010 2 次提交
  4. 30 7月, 2010 1 次提交
  5. 29 7月, 2010 3 次提交
    • F
      mac80211: inform drivers about the off-channel status on channel changes · 45521245
      Felix Fietkau 提交于
      For some drivers it can be useful to know whether the channel they're
      supposed to switch to is going to be used for short off-channel work or
      scanning, or whether the hardware is expected to stay on it for a while
      longer. This is important for various kinds of calibration work, which
      takes longer to complete and should keep some persistent state, even if
      the channel temporarily changes.
      Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      45521245
    • L
      Revert "mac80211: fix sw scan bracketing" · a0daa0e7
      Luis R. Rodriguez 提交于
      This reverts this commit. While in theory the change is
      correct the patch does not address current assumptions made
      by some drivers, one which is definitley affected is ath9k.
      
      Prior to this change the scan complete callback would be
      called after we returned to the home channel and configured
      the hardware RX filters. After this change we call the scan
      complete callback prior to both the hw config and the config
      filter. At least for ath9k this breaks quite a few assumptions
      on the callback, leading to disconnects to the AP after every scan
      making the driver pretty useless on STA mode. The goal behind
      this commit was to address the now understood spurious warnings
      from ath9k and mac80211_hwsim on scanning on two wiphys at the
      same time but we have now supressed these and will address this
      issue in the next kernel release.
      
      When fixing this for good next we must first review the other
      driver's dependence on this logic and perhaps consider removal
      of the scan complete callback all together.
      
      Cc: Johannes Berg <johannes.berg@intel.com>
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      a0daa0e7
    • Y
      mac80211: Put some code under MESH macro · e4ab7eb0
      Yuri Ershov 提交于
      In the function ieee80211_subif_start_xmit the logic related with
      meshdrlen is under CONFIG_MAC80211_MESH macro, but in one place it isn't.
      This is some update for this
      Signed-off-by: NYuri Ershov <ext-yuri.ershov@nokia.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e4ab7eb0
  6. 28 7月, 2010 1 次提交
    • J
      mac80211: Fix key freeing to handle unlinked keys · 32162a4d
      Jouni Malinen 提交于
      Key locking simplification removed key->sdata != NULL verification from
      ieee80211_key_free(). While that is fine for most use cases, there is one
      path where this function can be called with an unlinked key (i.e.,
      key->sdata == NULL && key->local == NULL). This results in a NULL pointer
      dereference with the current implementation. This is known to happen at
      least with FT protocol when wpa_supplicant tries to configure the key
      before association.
      
      Avoid the issue by passing in the local pointer to
      ieee80211_key_free(). In addition, do not clear the key from hw_accel
      or debugfs if it has not yet been added. At least the hw_accel one could
      trigger another NULL pointer dereference.
      Signed-off-by: NJouni Malinen <j@w1.fi>
      Reviewed-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      32162a4d
  7. 27 7月, 2010 6 次提交
  8. 22 7月, 2010 3 次提交
  9. 21 7月, 2010 4 次提交
  10. 17 7月, 2010 2 次提交
  11. 09 7月, 2010 1 次提交
    • J
      mac80211: remove wep dependency · 3473187d
      John W. Linville 提交于
      The current mac80211 code assumes that WEP is always available.  If WEP
      fails to initialize, ieee80211_register_hw will always fail.
      
      In some cases (e.g. FIPS certification), the cryptography used by WEP is
      unavailable.  However, in such cases there is no good reason why CCMP
      encryption (or even no link level encryption) cannot be used.  So, this
      patch removes mac80211's assumption that WEP (and TKIP) will always be
      available for use.
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3473187d
  12. 03 7月, 2010 2 次提交
  13. 01 7月, 2010 1 次提交
  14. 30 6月, 2010 2 次提交
  15. 29 6月, 2010 3 次提交
  16. 25 6月, 2010 4 次提交
  17. 24 6月, 2010 1 次提交
  18. 22 6月, 2010 2 次提交
    • J
      mac80211: Add interface for driver to temporarily disable dynamic ps · f90754c1
      Juuso Oikarinen 提交于
      This mechanism introduced in this patch applies (at least) for hardware
      designs using a single shared antenna for both WLAN and BT. In these designs,
      the antenna must be toggled between WLAN and BT.
      
      In those hardware, managing WLAN co-existence with Bluetooth requires WLAN
      full power save whenever there is Bluetooth activity in order for WLAN to be
      able to periodically relinquish the antenna to be used for BT. This is because
      BT can only access the shared antenna when WLAN is idle or asleep.
      
      Some hardware, for instance the wl1271, are able to indicate to the host
      whenever there is BT traffic. In essence, the hardware will send an indication
      to the host whenever there is, for example, SCO traffic or A2DP traffic, and
      will send another indication when the traffic is over.
      
      The hardware gets information of Bluetooth traffic via hardware co-existence
      control lines - these lines are used to negotiate the shared antenna
      ownership. The hardware will give the antenna to BT whenever WLAN is sleeping.
      
      This patch adds the interface to mac80211 to facilitate temporarily disabling
      of dynamic power save as per request of the WLAN driver. This interface will
      immediately force WLAN to full powersave, hence allowing BT coexistence as
      described above.
      
      In these kind of shared antenna desings, when WLAN powersave is fully disabled,
      Bluetooth will not work simultaneously with WLAN at all. This patch does not
      address that problem. This interface will not change PSM state, so if PSM is
      disabled it will remain so. Solving this problem requires knowledge about BT
      state, and is best done in user-space.
      Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f90754c1
    • G
      mac80211: Fix compile warning in scan.c. · fb63bc41
      Gertjan van Wingerde 提交于
      Fix the following compile warning:
      
      CC [M]  net/mac80211/scan.o
      net/mac80211/scan.c: In function 'ieee80211_request_internal_scan':
      net/mac80211/scan.c:749:23: warning: comparison between 'enum nl80211_band' and 'enum ieee80211_band'
      
      caused by the local variable band not being of the proper 'ieee80211_band' type.
      Signed-off-by: NGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      fb63bc41