1. 11 Feb, 2021 1 commit
    • Wen Gong's avatar
      ath10k: restore tx sk_buff of htt header for SDIO · e6f1c0d2
      Wen Gong authored
      ieee80211_report_used_skb of mac80211 use the frame_control of
      ieee80211_hdr in sk_buff and indicate it to another function
      ieee80211_mgd_conn_tx_status, then it queue work ieee80211_sta_work,
      but ieee80211_is_auth(fc) in ieee80211_sta_work check fail when the
      authentication has transmitted by ath10k.
      
      When the ath10k report it with HTT_TX_COMPL_STATE_DISCARD, it will be
      set without flag IEEE80211_TX_STAT_ACK, then mac80211 should try the
      next authentication immeditely, but in fact mac80211 wait 1 second for
      it, the reason is ieee80211_is_auth(fc) in ieee80211_sta_work check
      fail for the sk_buff which is not restored, the data of sk_buff is not
      the begin of ieee80211_hdr, in fact it is the begin of htt_cmd_hdr.
      
      dmesg without this patch, it wait 1 second for the next retry when
      ath10k report without IEEE80211_TX_STAT_ACK for authentication:
      [ 6973.883116] wlan0: send auth to 5e:6f:2b:0d:fb:d7 (try 1/3)
      [ 6974.705471] wlan0: send auth to 5e:6f:2b:0d:fb:d7 (try 2/3)
      [ 6975.712962] wlan0: send auth to 5e:6f:2b:0d:fb:d7 (try 3/3)
      
      Restore the sk_buff make mac8011 retry the next authentication
      immeditely which meet logic of mac80211.
      
      dmesg with this patch, it retry the next immeditely when ath10k
      report without IEEE80211_TX_STAT_ACK for authentication:
      [  216.734813] wlan0: send auth to 5e:6f:2b:0d:fb:d7 (try 1/3)
      [  216.739914] wlan0: send auth to 5e:6f:2b:0d:fb:d7 (try 2/3)
      [  216.745874] wlan0: send auth to 5e:6f:2b:0d:fb:d7 (try 3/3)
      
      Tested-on: QCA6174 hw3.2 SDIO WLAN.RMH.4.4.1-00049
      Signed-off-by: default avatarWen Gong <wgong@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/1612839530-2263-1-git-send-email-wgong@codeaurora.org
      e6f1c0d2
  2. 10 Feb, 2021 1 commit
  3. 09 Feb, 2021 7 commits
    • Max Chen's avatar
      wil6210: Add Support for Extended DMG MCS 12.1 · 7064e219
      Max Chen authored
      FW reports Tx/Rx extended MCS 12.1 to driver as "26". Driver will
      convert this into base MCS 7 + EXTENDED_SC_DMG flag so kernel can do
      the correct phy rate conversion. Also add log prints to print "12.1"
      instead of "26" for extended MCS.
      Signed-off-by: default avatarMax Chen <mxchen@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/1609977050-7089-3-git-send-email-mxchen@codeaurora.org
      7064e219
    • Tamizh Chelvam's avatar
      ath10k: Add new debug level for sta related logs · 97614c59
      Tamizh Chelvam authored
      Add new level ATH10K_DBG_STA debug_mask for printing
      sta related logs. This will be useful to check the
      debug logs of connection and changes related to
      station.
      
      Tested-on: QCA9984 hw1.0 PCI 10.4-3.9.0.2-00021
      Signed-off-by: default avatarTamizh Chelvam <tamizhr@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/1612463738-16542-1-git-send-email-tamizhr@codeaurora.org
      97614c59
    • Arnd Bergmann's avatar
      carl9170: fix struct alignment conflict · ca9ad549
      Arnd Bergmann authored
      Multiple structures in the carl9170 driver have alignment
      impossible alignment constraints that gcc warns about when
      building with 'make W=1':
      
      drivers/net/wireless/ath/carl9170/fwcmd.h:243:2: warning: alignment 1 of 'union <anonymous>' is less than 4 [-Wpacked-not-aligned]
      drivers/net/wireless/ath/carl9170/wlan.h:373:1: warning: alignment 1 of 'struct ar9170_rx_frame_single' is less than 2 [-Wpacked-not-aligned]
      
      In the carl9170_cmd structure, multiple members that have an explicit
      alignment requirement of four bytes are added into a union with explicit
      byte alignment, but this in turn is part of a structure that also has
      four-byte alignment.
      
      In the wlan.h header, multiple structures contain a ieee80211_hdr member
      that is required to be two-byte aligned to avoid alignmnet faults when
      processing network headers, but all members are forced to be byte-aligned
      using the __packed tag at the end of the struct definition.
      
      In both cases, leaving out the packing does not change the internal
      layout of the structure but changes the alignment constraint of the
      structure itself.
      
      Change all affected structures to only apply packing where it does
      not violate the alignment requirement of the contained structure.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarChristian Lamparter <chunkeey@gmail.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20210204162926.3262598-1-arnd@kernel.org
      ca9ad549
    • Loic Poulain's avatar
      wcn36xx: del BA session on TX stop · 84da2a84
      Loic Poulain authored
      Deleting BA session was not correcly performed, causing communication
      issues with APs that dynamically stop/start new BA sessions.
      Signed-off-by: default avatarLoic Poulain <loic.poulain@linaro.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/1611328304-1010-1-git-send-email-loic.poulain@linaro.org
      84da2a84
    • Karthikeyan Periyasamy's avatar
      ath11k: Update tx descriptor search index properly · 4b965be5
      Karthikeyan Periyasamy authored
      Tx descriptor search index field should be updated with hw peer id
      and not by AST Hash as per the HW/FW recommendation. Incorrect search
      index causes throughput degradation in all scenario for all the
      platforms. so updated the search index field with hw peer id, which
      is a common change applicable for all the platforms. Also no need of these
      configuration for non station type. seen 10% throughput increase in WDS
      traffic with this change.
      
      Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01492-QCAHKSWPL_SILICONZ-1
      Signed-off-by: default avatarKarthikeyan Periyasamy <periyasa@codeaurora.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/1612410960-9120-1-git-send-email-periyasa@codeaurora.org
      4b965be5
    • Anand K Mistry's avatar
      ath10k: Fix lockdep assertion warning in ath10k_sta_statistics · 7df28718
      Anand K Mistry authored
      ath10k_debug_fw_stats_request just be called with conf_mutex held,
      otherwise the following warning is seen when lock debugging is enabled:
      
      WARNING: CPU: 0 PID: 793 at drivers/net/wireless/ath/ath10k/debug.c:357 ath10k_debug_fw_stats_request+0x12c/0x133 [ath10k_core]
      Modules linked in: snd_hda_codec_hdmi designware_i2s snd_hda_intel snd_intel_dspcfg snd_hda_codec i2c_piix4 snd_hwdep snd_hda_core acpi_als kfifo_buf industrialio snd_soc_max98357a snd_soc_adau7002 snd_soc_acp_da7219mx98357_mach snd_soc_da7219 acp_audio_dma ccm xt_MASQUERADE fuse ath10k_pci ath10k_core lzo_rle ath lzo_compress mac80211 zram cfg80211 r8152 mii joydev
      CPU: 0 PID: 793 Comm: wpa_supplicant Tainted: G        W         5.10.9 #5
      Hardware name: HP Grunt/Grunt, BIOS Google_Grunt.11031.104.0 09/05/2019
      RIP: 0010:ath10k_debug_fw_stats_request+0x12c/0x133 [ath10k_core]
      Code: 1e bb a1 ff ff ff 4c 89 ef 48 c7 c6 d3 31 2e c0 89 da 31 c0 e8 bd f8 ff ff 89 d8 eb 02 31 c0 5b 41 5c 41 5d 41 5e 41 5f 5d c3 <0f> 0b e9 04 ff ff ff 0f 1f 44 00 00 55 48 89 e5 41 56 53 48 89 fb
      RSP: 0018:ffffb2478099f7d0 EFLAGS: 00010246
      RAX: 0000000000000000 RBX: ffff9e432700cce0 RCX: 11c85cfd6b8e3b00
      RDX: ffff9e432700cce0 RSI: ffff9e43127c5668 RDI: ffff9e4318deddf0
      RBP: ffffb2478099f7f8 R08: 0000000000000002 R09: 00000003fd7068cc
      R10: ffffffffc01b2749 R11: ffffffffc029efaf R12: ffff9e432700c000
      R13: ffff9e43127c33e0 R14: ffffb2478099f918 R15: ffff9e43127c33e0
      FS:  00007f7ea48e2740(0000) GS:ffff9e432aa00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 000059aa799ddf38 CR3: 0000000118de2000 CR4: 00000000001506f0
      Call Trace:
       ath10k_sta_statistics+0x4d/0x270 [ath10k_core]
       sta_set_sinfo+0x1be/0xaec [mac80211]
       ieee80211_get_station+0x58/0x76 [mac80211]
       rdev_get_station+0xf1/0x11e [cfg80211]
       nl80211_get_station+0x7f/0x146 [cfg80211]
       genl_rcv_msg+0x32e/0x35e
       ? nl80211_stop_ap+0x19/0x19 [cfg80211]
       ? nl80211_get_station+0x146/0x146 [cfg80211]
       ? genl_rcv+0x19/0x36
       ? genl_rcv+0x36/0x36
       netlink_rcv_skb+0x89/0xfb
       genl_rcv+0x28/0x36
       netlink_unicast+0x169/0x23b
       netlink_sendmsg+0x38a/0x402
       sock_sendmsg+0x72/0x76
       ____sys_sendmsg+0x153/0x1cc
       ? copy_msghdr_from_user+0x5d/0x85
       ___sys_sendmsg+0x7c/0xb5
       ? lock_acquire+0x181/0x23d
       ? syscall_trace_enter+0x15e/0x160
       ? find_held_lock+0x3d/0xb2
       ? syscall_trace_enter+0x15e/0x160
       ? sched_clock_cpu+0x15/0xc6
       __sys_sendmsg+0x62/0x9a
       do_syscall_64+0x43/0x55
       entry_SYSCALL_64_after_hwframe+0x44/0xa9
      
      Fixes: 4913e675 ("ath10k: enable rx duration report default for wmi tlv")
      Signed-off-by: default avatarAnand K Mistry <amistry@google.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20210202144033.1.I9e556f9fb1110d58c31d04a8a1293995fb8bb678@changeid
      7df28718
    • Anand K Mistry's avatar
      ath10k: Fix suspicious RCU usage warning in ath10k_wmi_tlv_parse_peer_stats_info() · 2615e3cd
      Anand K Mistry authored
      The ieee80211_find_sta_by_ifaddr call in
      ath10k_wmi_tlv_parse_peer_stats_info must be called while holding the
      RCU read lock. Otherwise, the following warning will be seen when RCU
      usage checking is enabled:
      
      =============================
      WARNING: suspicious RCU usage
      5.10.3 #8 Tainted: G        W
      -----------------------------
      include/linux/rhashtable.h:594 suspicious rcu_dereference_check() usage!
      
      other info that might help us debug this:
      
      rcu_scheduler_active = 2, debug_locks = 1
      no locks held by ksoftirqd/1/16.
      
      stack backtrace:
      CPU: 1 PID: 16 Comm: ksoftirqd/1 Tainted: G        W         5.10.3 #8
      Hardware name: HP Grunt/Grunt, BIOS Google_Grunt.11031.104.0 09/05/2019
      Call Trace:
       dump_stack+0xab/0x115
       sta_info_hash_lookup+0x71/0x1e9 [mac80211]
       ? lock_is_held_type+0xe6/0x12f
       ? __kasan_kmalloc+0xfb/0x112
       ieee80211_find_sta_by_ifaddr+0x12/0x61 [mac80211]
       ath10k_wmi_tlv_parse_peer_stats_info+0xbd/0x10b [ath10k_core]
       ath10k_wmi_tlv_iter+0x8b/0x1a1 [ath10k_core]
       ? ath10k_wmi_tlv_iter+0x1a1/0x1a1 [ath10k_core]
       ath10k_wmi_tlv_event_peer_stats_info+0x103/0x13b [ath10k_core]
       ath10k_wmi_tlv_op_rx+0x722/0x80d [ath10k_core]
       ath10k_htc_rx_completion_handler+0x16e/0x1d7 [ath10k_core]
       ath10k_pci_process_rx_cb+0x116/0x22c [ath10k_pci]
       ? ath10k_htc_process_trailer+0x332/0x332 [ath10k_core]
       ? _raw_spin_unlock_irqrestore+0x34/0x61
       ? lockdep_hardirqs_on+0x8e/0x12e
       ath10k_ce_per_engine_service+0x55/0x74 [ath10k_core]
       ath10k_ce_per_engine_service_any+0x76/0x84 [ath10k_core]
       ath10k_pci_napi_poll+0x49/0x141 [ath10k_pci]
       net_rx_action+0x11a/0x347
       __do_softirq+0x2d3/0x539
       run_ksoftirqd+0x4b/0x86
       smpboot_thread_fn+0x1d0/0x2ab
       ? cpu_report_death+0x7f/0x7f
       kthread+0x189/0x191
       ? cpu_report_death+0x7f/0x7f
       ? kthread_blkcg+0x31/0x31
       ret_from_fork+0x22/0x30
      
      Fixes: 0f7cb268 ("ath10k: add rx bitrate report for SDIO")
      Signed-off-by: default avatarAnand K Mistry <amistry@google.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      Link: https://lore.kernel.org/r/20210202134451.1.I0d2e83c42755671b7143504b62787fd06cd914ed@changeid
      2615e3cd
  4. 08 Feb, 2021 22 commits
  5. 07 Feb, 2021 1 commit
    • Jakub Kicinski's avatar
      Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue · badc6ac3
      Jakub Kicinski authored
      Tony Nguyen says:
      
      ====================
      100GbE Intel Wired LAN Driver Updates 2021-02-05
      
      This series contains updates to ice driver only.
      
      Jake adds adds reporting of timeout length during devlink flash and
      implements support to report devlink info regarding the version of
      firmware that is stored (downloaded) to the device, but is not yet active.
      ice_devlink_info_get will report "stored" versions when there is no
      pending flash update. Version info includes the UNDI Option ROM, the
      Netlist module, and the fw.bundle_id.
      
      Gustavo A. R. Silva replaces a one-element array to flexible-array
      member.
      
      Bruce utilizes flex_array_size() helper and removes dead code on a check
      for a condition that can't occur.
      
      v2:
      * removed security revision implementation, and re-ordered patches to
      account for this removal
      * squashed patches implementing ice_read_flash_module to avoid patches
      refactoring the implementation of a previous patch in the series
      * modify ice_devlink_info_get to always report "stored" versions instead
      of only reporting them when a pending flash update is ready.
      
      * '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue:
        ice: remove dead code
        ice: use flex_array_size where possible
        ice: Replace one-element array with flexible-array member
        ice: display stored UNDI firmware version via devlink info
        ice: display stored netlist versions via devlink info
        ice: display some stored NVM versions via devlink info
        ice: introduce function for reading from flash modules
        ice: cache NVM module bank information
        ice: introduce context struct for info report
        ice: create flash_info structure and separate NVM version
        ice: report timeout length for erasing during devlink flash
      ====================
      
      Link: https://lore.kernel.org/r/20210206044101.636242-1-anthony.l.nguyen@intel.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      badc6ac3
  6. 06 Feb, 2021 8 commits