An error occurred fetching the project authors.
  1. 18 Aug, 2020 2 commits
  2. 23 Jun, 2020 2 commits
  3. 15 Jun, 2020 2 commits
  4. 11 Jun, 2020 3 commits
  5. 30 May, 2020 2 commits
  6. 12 May, 2020 1 commit
  7. 06 May, 2020 1 commit
  8. 04 May, 2020 2 commits
  9. 29 Apr, 2020 1 commit
  10. 15 Apr, 2020 3 commits
  11. 18 Mar, 2020 2 commits
    • Sriram R's avatar
      ath11k: Perform per-msdu rx processing · acc79d98
      Sriram R authored
      As Hash based reo destination selection is configured,
      the decapped packets reach different reo destintion rings
      based on the destintaion ring selected for the computed hash (based on
      the 5-tuple {ip src/ip dst/src port/dst port/protocol}) by hw and
      as configured by driver.
      
      Hence the current implementation of amsdu list based processing after all
      the subframes of amsdu are received (since all msdu's for a pdev are
      received in same reo dest ring), is not applicable here and hence is
      replaced with per msdu based handling as these subframes
      can be received in different reo dest rings.
      
      Also, as some of the rx descriptor fields might be valid only for the
      first msdu (for ex. received 80211 header, encryption type, etc),
      it might not be useful now as we cannot sync between different
      subframes received in different rings. Hence do not rely on those
      fields and replace them with fieds valid only on per msdu descriptors.
      Also cache other details such as encryption type for a peer so that
      it can be reused when a packet is received from it.
      Co-developed-by: default avatarTamizh Chelvam Raja <tamizhr@codeaurora.org>
      Signed-off-by: default avatarTamizh Chelvam Raja <tamizhr@codeaurora.org>
      Signed-off-by: default avatarSriram R <srirrama@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      acc79d98
    • Sriram R's avatar
      ath11k: Configure hash based reo destination ring selection · 26c79927
      Sriram R authored
      Current implementation of pdev based reo destination ring
      selection is replaced by hash based ring selection so as to
      ensure all the available rings are utilized for better performance.
      
      The 4 reo destination rings are selected by the HW based on the
      hash value computed from the received packet based on the 5 tuple
      {ip src/ip dst/src port/dst port/protocol}. Out of the 32 hash values
      used by the hw, the driver assigns 8 values per reo destination ring
      to each of the 4 reo destination rings.
      Signed-off-by: default avatarSriram R <srirrama@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      26c79927
  12. 17 Mar, 2020 4 commits
    • John Crispin's avatar
      ath11k: add handling for BSS color · beb2f772
      John Crispin authored
      This patch adds code to handle the BSS_CHANGED_BSS_COLOR flag. It will
      trigger the propagation of BSS color settings into the FW. Handling is
      slightly different between AP and STA interfaces.
      Signed-off-by: default avatarJohn Crispin <john@phrozen.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      beb2f772
    • John Crispin's avatar
      ath11k: set queue_len to 4096 · 107560d8
      John Crispin authored
      The driver currently does not use wake_txq_queue. This leads to the
      tx_queue_len being defaulted to 1000. Setting this parameter will
      change the queue_len to 4096 which is more fitting for HE.
      Signed-off-by: default avatarJohn Crispin <john@phrozen.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      107560d8
    • Manikanta Pubbisetty's avatar
      ath11k: enable PN offload · 1441b2f2
      Manikanta Pubbisetty authored
      Enabling PN checking in the hardware; hardware checks
      the PN of the received packets and reports the errors
      to the host for further handling; default action is to
      drop such packets. TSC (TKIP sequence counter)
      validation is also offloaded.
      
      Hardware validates PN/TSC only for unicast packets;
      for group addressed packets, PN validation is done
      in mac80211.
      
      PN errors are reported to the driver via WBM RX release
      ring and can be dumped by using the following command.
      
      "cat /sys/kernel/debug/ath11k/soc_rx_stats | grep -i pn"
      
      Sample Output:
      PN check fail: 210
      Signed-off-by: default avatarManikanta Pubbisetty <mpubbise@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      1441b2f2
    • Manikanta Pubbisetty's avatar
      ath11k: handle RX fragments · 243874c6
      Manikanta Pubbisetty authored
      IPQ8074 HW has support to verify the PN of the received frames.
      For all frames except for fragmented ones, HW checks the PN and
      delivers them to the driver. For fragmented frames, driver is
      required to do a little more; it has to reassemble the fragments
      and then reinject them to the HW for verifying the PN. Currently,
      to keep the logic simple, PN verifcation is disabled in HW and is
      handled in mac80211 for all the frames (fragmented and unfragmented).
      
      On the contrary, offloading PN Validation to the HW brings important
      benefits. It reduces CPU cycles spent on the host CPU for verifying
      the same; helps in enabling features which improve performance like
      mac80211 fast RX path, enabling multiple REO rings for parallel RX
      processing, 802.11 decapsulation offloading. All these features are
      dependent on PN offload which in turn is dependent on handling of
      the received fragments in the driver.
      
      When TKIP security is used, additional handling is required while
      processing the fragments; since MIC is computed on an MSDU in TKIP,
      only the last fragment has the MIC info. In this case, driver has to
      compute the MIC after reassembly and compare it against the MIC
      present in the frame. For this, MICHAEL_MIC kernel crypto library
      APIs are used and the dependencies are appropriately set.
      Signed-off-by: default avatarManikanta Pubbisetty <mpubbise@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      243874c6
  13. 11 Mar, 2020 1 commit
  14. 11 Feb, 2020 3 commits
    • Venkateswara Naralasetty's avatar
      ath11k: fix incorrect peer stats counters update · 92bacd1c
      Venkateswara Naralasetty authored
      Convert mac80211 bw to ath11k bw before updating peer stats
      bw counters, which fixes incorrect peer stats counters update.
      Signed-off-by: default avatarVenkateswara Naralasetty <vnaralas@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      92bacd1c
    • Vikas Patel's avatar
      ath11k: Fixing dangling pointer issue upon peer delete failure · 58595c98
      Vikas Patel authored
      When there is WMI command failure, 'peer->sta' was not getting
      cleaned up, and mac80211 frees the 'sta' memory, which is causing
      the below page fault.
      
      Cleaning up the sta pointer in ath11k whenever peer delete command
      is sent.
      
      Unable to handle kernel paging request at virtual address 200080000006a
      pgd = ffffffc02a774000
      [200080000006a] *pgd=0000000000000000, *pud=0000000000000000
      Internal error: Oops: 96000004 [#1] PREEMPT SMP
      .
      .
      .
      CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W       4.4.60 #1
      Hardware name: Qualcomm Technologies, Inc. IPQ807x/AP-HK01-C1 (DT)
      task: ffffffc00083c6d0 ti: ffffffc00083c6d0 task.ti: ffffffc00083c6d0
      PC is at ath11k_dp_rx_process_mon_status+0x114/0x4e0 [ath11k]
      LR is at ath11k_dp_rx_process_mon_status+0xe8/0x4e0 [ath11k]
      pc : [<ffffffbffcf8e544>] lr : [<ffffffbffcf8e518>] pstate: 60000145
      sp : ffffffc000833a30
      Signed-off-by: default avatarVikas Patel <vikpatel@codeaurora.org>
      Signed-off-by: default avatarVenkateswara Naralasetty <vnaralas@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      58595c98
    • Karthikeyan Periyasamy's avatar
      ath11k: fix warn-on in disassociation · 79c080db
      Karthikeyan Periyasamy authored
      In multi AP VAP scenario, when user bring down the interfaces. mac80211 mark
      the interface down for the duplicated VAP and removed from the
      local->interfaces list. ath11k_mac_get_arvif() is dependent on
      ieee80211_iterate_active_interfaces_atomic() API to find the vdev id
      in a given radio. In disassociation path, ath11k_mac_get_arvif() not
      able to find the given vdev id since that VAP is removed from the
      local->interfaces list. since sta_state callback throws error, mac80211 log
      the below WARN_ON_ONCE message.
      
      Fixed it by storing the allocated_vdev_map in each radio structure to maintain
      the created vdev id bits. so that we can directly mask this against the given
      vdev_id to find out the ar from the vdev_id.
      
      WARN LOG:
      
      WARNING: at net/mac80211/sta_info.c:1008
      CPU: 2 PID: 2135 Comm: hostapd Not tainted #1
      Hardware name: Qualcomm Technologies, Inc. IPQ807x/AP-HK01-C1 (DT)
      task: ffffffc03a43d800 ti: ffffffc03a43d800 task.ti: ffffffc03a43d800
      PC is at sta_set_sinfo+0x9dc/0xad4 [mac80211]
      LR is at sta_set_sinfo+0x9cc/0xad4 [mac80211]
      pc : [<ffffffbffce2a008>] lr : [<ffffffbffce29ff8>] pstate: 20000145
      sp : ffffffc02cedb5f0
      x29: ffffffc02cedb5f0 x28: ffffffc03a43d800
      x27: 0000000000000014 x26: 0000000000000001
      x25: ffffffc02cfc4000 x24: ffffffc036905508
      x23: 0000000000000012 x22: ffffffc02cedb670
      x21: ffffffc03bc64880 x20: ffffffc036904f80
      x19: ffffffc02ae31000 x18: 00000000b019f3a1
      x17: 0000000057f30331 x16: 00000000d8d1998e
      x15: 0000000000000066 x14: 393a35383a36343a
      x13: 6337203a6e6f6974 x12: 6174732065746169
      x11: 636f737361736964 x10: 206f742064656c69
      x9 : 6146203a31696669 x8 : 6337203a6e6f6974
      x7 : 6174732065746169 x6 : ffffffc0008c33f6
      x5 : 0000000000000000 x4 : 0000000000000000
      x3 : 0000000000000000 x2 : 00000000ffffff92
      x1 : 0000000000000000 x0 : ffffffbffcea1091
      ---[ end trace 63c4b1c527345d5a ]---
      Call trace:
      [<ffffffbffce2a008>] sta_set_sinfo+0x9dc/0xad4 [mac80211]
      [<ffffffbffce2a2c4>] __sta_info_flush+0xec/0x130 [mac80211]
      [<ffffffbffce3dc48>] ieee80211_nan_func_match+0x1a34/0x23e4 [mac80211]
      [<ffffffbffcde03e0>] __cfg80211_stop_ap+0x60/0xf0 [cfg80211]
      [<ffffffbffcdb6d08>] __cfg80211_leave+0x110/0x150 [cfg80211]
      [<ffffffbffcdb6d78>] cfg80211_leave+0x30/0x48 [cfg80211]
      [<ffffffbffcdb6fbc>] cfg80211_init_wdev+0x22c/0x808 [cfg80211]
      [<ffffffc0000afe28>] notifier_call_chain+0x50/0x84
      [<ffffffc0000afefc>] raw_notifier_call_chain+0x14/0x1c
      [<ffffffc0004ae94c>] call_netdevice_notifiers_info+0x5c/0x6c
      [<ffffffc0004ae96c>] call_netdevice_notifiers+0x10/0x18
      [<ffffffc0004aea80>] __dev_close_many+0x54/0xc0
      [<ffffffc0004aeb50>] dev_close_many+0x64/0xdc
      [<ffffffc0004b0b70>] rollback_registered_many+0x138/0x2f4
      [<ffffffc0004b0d4c>] rollback_registered+0x20/0x34
      [<ffffffc0004b34b4>] unregister_netdevice_queue+0x68/0xa8
      [<ffffffbffce3870c>] ieee80211_if_remove+0x84/0xc0 [mac80211]
      [<ffffffbffce3e588>] ieee80211_nan_func_match+0x2374/0x23e4 [mac80211]
      [<ffffffbffcdc29e8>] cfg80211_wext_giwscan+0x1000/0x1140 [cfg80211]
      [<ffffffbffcb2a87c>] backport_genlmsg_multicast_allns+0x158/0x1b4 [compat]
      [<ffffffc0004e0944>] genl_family_rcv_msg+0x258/0x2c0
      [<ffffffc0004e09f4>] genl_rcv_msg+0x48/0x6c
      [<ffffffc0004dfb50>] netlink_rcv_skb+0x5c/0xc4
      [<ffffffc0004e06d8>] genl_rcv+0x34/0x48
      [<ffffffc0004df570>] netlink_unicast+0x12c/0x1e0
      [<ffffffc0004df9a4>] netlink_sendmsg+0x2bc/0x2dc
      [<ffffffc00049a540>] sock_sendmsg+0x18/0x2c
      [<ffffffc00049ab94>] ___sys_sendmsg+0x1bc/0x248
      [<ffffffc00049ba24>] __sys_sendmsg+0x40/0x68
      [<ffffffc00049ba5c>] SyS_sendmsg+0x10/0x20
      [<ffffffc000085db0>] el0_svc_naked+0x24/0x28
      Signed-off-by: default avatarKarthikeyan Periyasamy <periyasa@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      79c080db
  15. 26 Jan, 2020 3 commits
  16. 18 Dec, 2019 4 commits
  17. 17 Dec, 2019 1 commit
    • Sven Eckelmann's avatar
      ath11k: register HE mesh capabilities · 13591a1c
      Sven Eckelmann authored
      The capabilities for the HE mesh are generated from the capabilities
      reported by the fw. But the firmware only reports the overall capabilities
      and not the one which are specific for mesh. Some of them (TWT, MU UL/DL,
      TB PPDU, ...) require an infrastructure setup with a main STA (AP)
      controlling the operations. This is not the case for mesh and thus these
      capabilities are removed from the list of capabilities.
      Signed-off-by: default avatarSven Eckelmann <seckelmann@datto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      13591a1c
  18. 29 Nov, 2019 3 commits