1. 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
  2. 08 Feb, 2021 22 commits
  3. 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
  4. 06 Feb, 2021 10 commits
    • Jakub Kicinski's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next · c273a20c
      Jakub Kicinski authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter/IPVS updates for net-next
      
      1) Remove indirection and use nf_ct_get() instead from nfnetlink_log
         and nfnetlink_queue, from Florian Westphal.
      
      2) Add weighted random twos choice least-connection scheduling for IPVS,
         from Darby Payne.
      
      3) Add a __hash placeholder in the flow tuple structure to identify
         the field to be included in the rhashtable key hash calculation.
      
      4) Add a new nft_parse_register_load() and nft_parse_register_store()
         to consolidate register load and store in the core.
      
      5) Statify nft_parse_register() since it has no more module clients.
      
      6) Remove redundant assignment in nft_cmp, from Colin Ian King.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next:
        netfilter: nftables: remove redundant assignment of variable err
        netfilter: nftables: statify nft_parse_register()
        netfilter: nftables: add nft_parse_register_store() and use it
        netfilter: nftables: add nft_parse_register_load() and use it
        netfilter: flowtable: add hash offset field to tuple
        ipvs: add weighted random twos choice algorithm
        netfilter: ctnetlink: remove get_ct indirection
      ====================
      
      Link: https://lore.kernel.org/r/20210206015005.23037-1-pablo@netfilter.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      c273a20c
    • Heiner Kallweit's avatar
      r8169: don't try to disable interrupts if NAPI is scheduled already · 7274c414
      Heiner Kallweit authored
      There's no benefit in trying to disable interrupts if NAPI is
      scheduled already. This allows us to save a PCI write in this case.
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Link: https://lore.kernel.org/r/78c7f2fb-9772-1015-8c1d-632cbdff253f@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      7274c414
    • Xie He's avatar
      net/packet: Improve the comment about LL header visibility criteria · 21c85974
      Xie He authored
      The "dev_has_header" function, recently added in
      commit d5496990 ("net/packet: fix packet receive on L3 devices
      without visible hard header"),
      is more accurate as criteria for determining whether a device exposes
      the LL header to upper layers, because in addition to dev->header_ops,
      it also checks for dev->header_ops->create.
      
      When transmitting an skb on a device, dev_hard_header can be called to
      generate an LL header. dev_hard_header will only generate a header if
      dev->header_ops->create is present.
      Signed-off-by: default avatarXie He <xie.he.0141@gmail.com>
      Acked-by: default avatarWillem de Bruijn <willemb@google.com>
      Link: https://lore.kernel.org/r/20210205224124.21345-1-xie.he.0141@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      21c85974
    • Jakub Kicinski's avatar
      Merge branch 'net-ipa-a-mix-of-small-improvements' · 163a1802
      Jakub Kicinski authored
      Alex Elder says:
      
      ====================
      net: ipa: a mix of small improvements
      
      Version 2 of this series restructures a couple of the changed
      functions (in patches 1 and 2) to avoid blocks of indented code
      by returning early when possible, as suggested by Jakub.  The
      description of the first patch was changed as a result, to better
      reflect what the updated patch does.  It also fixes one spot I
      identified when updating the code, where gsi_channel_stop() was
      doing the wrong thing on error.
      
      The original description for this series is below.
      
      This series contains a sort of unrelated set of code cleanups.
      
      The first two are things I wanted to do in a series that updated
      some NAPI code recently.  I didn't want to change things in a way
      that affected existing testing so I set these aside for later
      (i.e., now).
      
      The third makes a change to event ring handling that's similar to
      what was done a while back for channels.  There's little benefit to
      cacheing the current state of an event ring, so with this we'll just
      fetch the state from hardware whenever we need it.
      
      The fourth patch removes the definitions of two unused symbols.
      
      The fifth replaces a count that is always 0 or 1 with a Boolean.
      
      The sixth removes a build-time validation check that doesn't really
      provide benefit.
      
      And the last one fixes a problem (in two spots) that could cause a
      build-time check to fail "bogusly".
      ====================
      
      Link: https://lore.kernel.org/r/20210205221100.1738-1-elder@linaro.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      163a1802
    • Alex Elder's avatar
      net: ipa: avoid field overflow · cd115009
      Alex Elder authored
      It's possible that the length passed to ipa_header_size_encoded()
      is larger than what can be represented by the HDR_LEN field alone
      (starting with IPA v4.5).  If we attempted that, u32_encode_bits()
      would trigger a build-time error.
      
      Avoid this problem by masking off high-order bits of the value
      encoded as the lower portion of the header length.
      
      The same sort of problem exists in ipa_metadata_offset_encoded(),
      so implement the same fix there.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      cd115009
    • Alex Elder's avatar
      net: ipa: get rid of status size constraint · 48735374
      Alex Elder authored
      There is a build-time check that the packet status structure is a
      multiple of 4 bytes in size.  It's not clear where that constraint
      comes from, but the structure defines what hardware provides so its
      definition won't change.  Get rid of the check; it adds no value.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      48735374
    • Alex Elder's avatar
      net: ipa: use a Boolean rather than count when replenishing · 9af5ccf3
      Alex Elder authored
      The count argument to ipa_endpoint_replenish() is only ever 0 or 1,
      and always will be (because we always handle each receive buffer in
      a single transaction).  Rename the argument to be add_one and change
      it to be Boolean.
      
      Update the function description to reflect the current code.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      9af5ccf3
    • Alex Elder's avatar
      net: ipa: remove two unused register definitions · d5bc5015
      Alex Elder authored
      We do not support inter-EE channel or event ring commands.  Inter-EE
      interrupts are disabled (and never re-enabled) for all channels and
      event rings, so we have no need for the GSI registers that clear
      those interrupt conditions.  So remove their definitions.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      d5bc5015
    • Alex Elder's avatar
      net: ipa: do not cache event ring state · 3f77c926
      Alex Elder authored
      An event ring's state only needs to be known when it is allocated,
      reset, or deallocated.  We check an event ring's state both before
      and after performing an event ring control command that changes
      its state.  These are only issued at startup and shutdown, so there
      is very little value in caching the state.
      
      Stop recording a copy of the channel's last known state, and instead
      fetch the true state from hardware whenever it's needed.  In such
      cases, *do* record the state in a local variable, in case an error
      message reports it (so the value reported is the value seen).
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      3f77c926
    • Alex Elder's avatar
      net: ipa: synchronize NAPI only for suspend · b1750723
      Alex Elder authored
      When stopping a channel, gsi_channel_stop() will ensure NAPI
      polling is complete when it calls napi_disable().  So there is no
      need to call napi_synchronize() in that case.
      
      Move the call to napi_synchronize() out of __gsi_channel_stop()
      and into gsi_channel_suspend(), so it's only used where needed.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b1750723