1. 07 3月, 2016 8 次提交
    • L
      wil6210: fix race conditions in p2p listen and search · 280ab987
      Lior David 提交于
      Fix 2 race conditions found during test runs of P2P discovery:
      1. Because wil_p2p_cancel_listen was not protected, user space
      could start a new P2P listen/search before wmi_stop_discovery
      completed. This caused a crash in the firmware.
      2. In P2P listen, when listen timer expires and user space calls
      cancel_remain_on_channel at the same time, code could send the
      cfg80211_remain_on_channel_expired notification twice.
      
      Added protections with wil->mutex to several places that call
      wmi_stop_discovery.
      Signed-off-by: NLior David <qca_liord@qca.qualcomm.com>
      Signed-off-by: NMaya Erez <qca_merez@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      280ab987
    • L
      wil6210: P2P_DEVICE virtual interface support · 4332cac1
      Lior David 提交于
      Added support for the P2P_DEVICE virtual interface. This interface
      is intended for P2P management operations such as discovery and
      GO negotiation. Normally it is implemented by drivers to allow
      a separate interface for P2P management with its own MAC address,
      but for 11ad drivers it is needed to support P2P search, since it
      cannot otherwise be separated from normal scan.
      
      Since we only support a single interface/MAC address, we can't
      easily separate between primary and P2P_DEVICE interfaces.
      For example when a management packet arrives we can't tell for
      which interface it is intended. To work around this, we store
      a pointer to the interface where the last "radio operation" was
      triggered such as scan or remain on channel, and we forward
      management packets and scan results to this interface.
      Signed-off-by: NLior David <qca_liord@qca.qualcomm.com>
      Signed-off-by: NMaya Erez <qca_merez@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      4332cac1
    • D
      wil6210: p2p initial support · e6d68341
      Dedy Lansky 提交于
      supporting p2p_find, p2p_listen and p2p_connect
      Use updated cfg80211_get_bss API (additional argument)
      Signed-off-by: NDedy Lansky <qca_dlansky@qca.qualcomm.com>
      Signed-off-by: NLior David <qca_liord@qca.qualcomm.com>
      Signed-off-by: NMaya Erez <qca_merez@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      e6d68341
    • L
      wil6210: basic PBSS/PCP support · eabb03b4
      Lior David 提交于
      PBSS (Personal Basic Service Set) is a new BSS type for DMG
      networks. It is similar to infrastructure BSS, having an AP-like
      entity called PCP (PBSS Control Point), but it has few differences.
      For example, stations inside a PBSS can communicate directly, and
      the PCP role can be transferred between stations.
      
      This change adds PBSS support, and has 2 main parts:
      1. When starting an AP, add an option to start as a PCP instead.
      This is implemented by a new PBSS flag which is passed as part of
      the cfg80211_ap_settings structure.
      2. When connecting to a BSS, add an option to connect to a PCP
      instead of an AP. This is again implemented by a new PBSS flag,
      added to the cfg80211_connect_params structure.
      Signed-off-by: NLior David <qca_liord@qca.qualcomm.com>
      Signed-off-by: NMaya Erez <qca_merez@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      eabb03b4
    • L
      wil6210: switch to generated wmi.h · b874ddec
      Lior David 提交于
      Switch to auto-generated version of wmi.h which is maintained
      by FW team. This will allow better sync between teams in the
      future and avoid bugs because of unexpected API changes.
      The wmi.h will have many differences but most are cosmetic.
      It also includes these real differences:
      1. is_go parameter added to BCON_CTRL and START_PCP commands.
      2. max_rx_pl_per_desc added to CFG_RX_CHAIN command.
      3. various small API updates that are not currently used by
      driver.
      Signed-off-by: NLior David <qca_liord@qca.qualcomm.com>
      Signed-off-by: NMaya Erez <qca_merez@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      b874ddec
    • L
      wil6210: add support for discovery mode during scan · 74997a53
      Lior David 提交于
      Add support for discovery mode during scan. When discovery mode
      is active, station transmits special beacons while scanning.
      This can optimize the scan mainly when there is only one AP/PCP
      around.
      Discovery mode is implicitly used by firmware during P2P search.
      Since there is currently no use case where user space has a
      reason to directly control discovery mode, we expose it only
      through a debugfs flag.
      Also fix name confusion in the wmi_scan_type enumeration.
      The type previously called WMI_LONG_SCAN is actually
      WMI_ACTIVE_SCAN.
      Signed-off-by: NLior David <qca_liord@qca.qualcomm.com>
      Signed-off-by: NMaya Erez <qca_merez@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      74997a53
    • V
      wil6210: replay attack detection · 58527421
      Vladimir Kondratiev 提交于
      Check PN for encrypted frames.
      Maintain PN data for Rx keys, pairwise per TID and group.
      Print PN's in the debugfs "stations" entry, like:
      
      [0] 04:ce:14:0a:3c:3d connected
        [ 0] ([32]   0 TU) 0x0fe [____________________________|___] total 252 drop 0 (dup 0 + old 0) last 0x000
        [ 0] PN [0+]000000000000 [1-]000000000000 [2-]000000000000 [3-]000000000000
        [GR] PN [0-]000000000000 [1+]000000000000 [2+]000000000000 [3-]000000000000
      Rx invalid frame: non-data 0, short 0, large 0, replay 0
      Rx/MCS: 0 110 65 65 65 0 12 0 0 0 0 0 0
      [1] 00:00:00:00:00:00 unused
      [2] 00:00:00:00:00:00 unused
      [3] 00:00:00:00:00:00 unused
      [4] 00:00:00:00:00:00 unused
      [5] 00:00:00:00:00:00 unused
      [6] 00:00:00:00:00:00 unused
      [7] 00:00:00:00:00:00 unused
      Signed-off-by: NVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
      Signed-off-by: NHamad Kadmany <qca_hkadmany@qca.qualcomm.com>
      Signed-off-by: NMaya Erez <qca_merez@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      58527421
    • M
      wil6210: remove BACK RX and TX workers · 361486b2
      Maya Erez 提交于
      WMI synchronous handling has changed and WMI calls that provide
      a buffer for the reply are completed in the WMI interrupt context.
      This allows sending the RX and TX BACK commands from the WMI event
      handler without the need for the worker thread.
      This is a better approach as it can decrease the handshake time
      in the connect flow and prevent race conditions in case of fast
      disconnects. An example for such a race is handling of wil_back_rx_handle
      during a disconnect event, as wil_back_rx_handle is not protected by
      the wil mutex and a disconnect can be handled after sta->status is
      verified as connected.
      Signed-off-by: NMaya Erez <qca_merez@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      361486b2
  2. 02 2月, 2016 2 次提交
  3. 26 1月, 2016 1 次提交
    • M
      wil6210: handle multiple connect/disconnect events · 0916d9f2
      Maya Erez 提交于
      In the current solution wil6210 configures the vring in a worker
      and holds only one pending CID. This implementation may lead to
      race conditions between connect and disconnect events of multiple
      stations or fast connect/disconnect events of the same station.
      
      In order to allow the removal of the connect worker and handling of
      WMI_VRING_CFG_DONE_EVENTID in the connect event, the WMI replies
      that provide the reply in a given buffer needs to be handled
      immediately in the WMI event interrupt thread.
      To prevent deadlocks, WMI replies that requires additional
      handling are still handled via the events list.
      Signed-off-by: NMaya Erez <qca_merez@qca.qualcomm.com>
      Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
      0916d9f2
  4. 07 1月, 2016 1 次提交
  5. 29 10月, 2015 1 次提交
  6. 09 10月, 2015 4 次提交
  7. 06 8月, 2015 6 次提交
  8. 30 6月, 2015 1 次提交
  9. 09 6月, 2015 4 次提交
  10. 05 5月, 2015 2 次提交
  11. 29 4月, 2015 2 次提交
  12. 20 3月, 2015 2 次提交
  13. 13 3月, 2015 1 次提交
  14. 27 2月, 2015 5 次提交