1. May 04, 2022
  2. May 03, 2022
    • Paolo Abeni's avatar
      Merge tag 'mlx5-updates-2022-05-02' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · 2b68abf9
      Paolo Abeni authored
      Saeed Mahameed says:
      
      ====================
      mlx5-updates-2022-05-02
      
      1) Trivial Misc updates to mlx5 driver
      
      2) From Mark Bloch: Flow steering, general steering refactoring/cleaning
      
      An issue with flow steering deletion flow (when creating a rule without
      dests) turned out to be easy to fix but during the fix some issue
      with the flow steering creation/deletion flows have been found.
      
      The following patch series tries to fix long standing issues with flow
      steering code and hopefully preventing silly future bugs.
      
        A) Fix an issue where a proper dest type wasn't assigned.
        B) Refactor and fix dests enums values, refactor deletion
           function and do proper bookkeeping of dests.
        C) Change mlx5_del_flow_rules() to delete rules when there are no
           no more rules attached associated with an FTE.
        D) Don't call hard coded deletion function but use the node's
           defined one.
        E) Add a WARN_ON() to catch future bugs when an FTE with dests
           is deleted.
      
      * tag 'mlx5-updates-2022-05-02' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux:
        net/mlx5: fs, an FTE should have no dests when deleted
        net/mlx5: fs, call the deletion function of the node
        net/mlx5: fs, delete the FTE when there are no rules attached to it
        net/mlx5: fs, do proper bookkeeping for forward destinations
        net/mlx5: fs, add unused destination type
        net/mlx5: fs, jump to exit point and don't fall through
        net/mlx5: fs, refactor software deletion rule
        net/mlx5: fs, split software and IFC flow destination definitions
        net/mlx5e: TC, set proper dest type
        net/mlx5e: Remove unused mlx5e_dcbnl_build_rep_netdev function
        net/mlx5e: Drop error CQE handling from the XSK RX handler
        net/mlx5: Print initializing field in case of timeout
        net/mlx5: Delete redundant default assignment of runtime devlink params
        net/mlx5: Remove useless kfree
        net/mlx5: use kvfree() for kvzalloc() in mlx5_ct_fs_smfs_matcher_create
      ====================
      
      Link: https://lore.kernel.org/r/
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      2b68abf9
    • Paolo Abeni's avatar
      Merge branch 'mlxsw-remove-size-limitations-on-egress-descriptor-buffer' · f4f1fd76
      Paolo Abeni authored
      Ido Schimmel says:
      
      ====================
      mlxsw: Remove size limitations on egress descriptor buffer
      
      Petr says:
      
      Spectrum machines have two resources related to keeping packets in an
      internal buffer: bytes (allocated in cell-sized units) for packet payload,
      and descriptors, for keeping headers. Currently, mlxsw only configures the
      bytes part of the resource management.
      
      Spectrum switches permit a full parallel configuration for the descriptor
      resources, including port-pool and port-TC-pool quotas. By default, these
      are all configured to use pool 14, with an infinite quota. The ingress pool
      14 is then infinite in size.
      
      However, egress pool 14 has finite size by default. The size is chip
      dependent, but always much lower than what the chip actually permits. As a
      result, we can easily construct workloads that exhaust the configured
      descriptor limit.
      
      Going forward, mlxsw will have to fix this issue properly by maintaining
      descriptor buffer sizes, TC bindings, and quotas that match the
      architecture recommendation. Short term, fix the issue by configuring the
      egress descriptor pool to be infinite in size as well. This will maintain
      the same configuration philosophy, but will unlock all chip resources to be
      usable.
      
      In this patchset, patch #1 first adds the "desc" field into the pool
      configuration register. Then in patch #2, the new field is used to
      configure both ingress and egress pool 14 as infinite.
      
      In patches #3 and #4, add a selftest that verifies that a large burst
      can be absorbed by the shared buffer. This test specifically exercises a
      scenario where descriptor buffer is the limiting factor and the test
      fails without the above patches.
      ====================
      
      Link: https://lore.kernel.org/r/20220502084926.365268-1-idosch@nvidia.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      f4f1fd76
    • Petr Machata's avatar
      selftests: mlxsw: Add a test for soaking up a burst of traffic · 1d267aa8
      Petr Machata authored
      
      
      Add a test that sends 1Gbps of traffic through the switch, into which it
      then injects a burst of traffic and tests that there are no drops.
      
      Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      1d267aa8
    • Petr Machata's avatar
      selftests: forwarding: lib: Add start_traffic_pktsize() helpers · 1531cc63
      Petr Machata authored
      
      
      Add two helpers, start_traffic_pktsize() and start_tcp_traffic_pktsize(),
      that allow explicit overriding of packet size. Change start_traffic() and
      start_tcp_traffic() to dispatch through these helpers with the default
      packet size.
      
      Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      1531cc63
    • Petr Machata's avatar
      mlxsw: Configure descriptor buffers · c864769a
      Petr Machata authored
      
      
      Spectrum machines have two resources related to keeping packets in an
      internal buffer: bytes (allocated in cell-sized units) for packet payload,
      and descriptors, for keeping metadata. Currently, mlxsw only configures the
      bytes part of the resource management.
      
      Spectrum switches permit a full parallel configuration for the descriptor
      resources, including port-pool and port-TC-pool quotas. By default, these
      are all configured to use pool 14, with an infinite quota. The ingress pool
      14 is then infinite in size.
      
      However, egress pool 14 has finite size by default. The size is chip
      dependent, but always much lower than what the chip actually permits. As a
      result, we can easily construct workloads that exhaust the configured
      descriptor limit.
      
      Fix the issue by configuring the egress descriptor pool to be infinite in
      size as well. This will maintain the configuration philosophy of the
      default configuration, but will unlock all chip resources to be usable.
      
      In the code, include both the configuration of ingress and ingress, mostly
      for clarity.
      
      Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      c864769a
    • Petr Machata's avatar
      mlxsw: reg: Add "desc" field to SBPR · 135433b3
      Petr Machata authored
      
      
      SBPR, or Shared Buffer Pools Register, configures and retrieves the shared
      buffer pools and configuration. The desc field determines whether the
      configuration relates to the byte pool or the descriptor pool.
      
      Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      135433b3
    • Paolo Abeni's avatar
      Merge branch 'use-standard-sysctl-macro' · cb636b3e
      Paolo Abeni authored
      Tonghao Zhang says:
      
      ====================
      use standard sysctl macro
      
      From: Tonghao Zhang <xiangxia.m.yue@gmail.com>
      
      This patchset introduce sysctl macro or replace var
      with macro.
      ====================
      
      Link: https://lore.kernel.org/r/20220501035524.91205-1-xiangxia.m.yue@gmail.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      cb636b3e
    • Tonghao Zhang's avatar
      selftests/sysctl: add sysctl macro test · 57b19468
      Tonghao Zhang authored
      
      
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Iurii Zaikin <yzaikin@google.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Paolo Abeni <pabeni@redhat.com>
      Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
      Cc: David Ahern <dsahern@kernel.org>
      Cc: Simon Horman <horms@verge.net.au>
      Cc: Julian Anastasov <ja@ssi.bg>
      Cc: Pablo Neira Ayuso <pablo@netfilter.org>
      Cc: Jozsef Kadlecsik <kadlec@netfilter.org>
      Cc: Florian Westphal <fw@strlen.de>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Lorenz Bauer <lmb@cloudflare.com>
      Cc: Akhmat Karakotov <hmukos@yandex-team.ru>
      Signed-off-by: default avatarTonghao Zhang <xiangxia.m.yue@gmail.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      57b19468
    • Tonghao Zhang's avatar
      net: sysctl: introduce sysctl SYSCTL_THREE · 4c7f24f8
      Tonghao Zhang authored
      
      
      This patch introdues the SYSCTL_THREE.
      
      KUnit:
      [00:10:14] ================ sysctl_test (10 subtests) =================
      [00:10:14] [PASSED] sysctl_test_api_dointvec_null_tbl_data
      [00:10:14] [PASSED] sysctl_test_api_dointvec_table_maxlen_unset
      [00:10:14] [PASSED] sysctl_test_api_dointvec_table_len_is_zero
      [00:10:14] [PASSED] sysctl_test_api_dointvec_table_read_but_position_set
      [00:10:14] [PASSED] sysctl_test_dointvec_read_happy_single_positive
      [00:10:14] [PASSED] sysctl_test_dointvec_read_happy_single_negative
      [00:10:14] [PASSED] sysctl_test_dointvec_write_happy_single_positive
      [00:10:14] [PASSED] sysctl_test_dointvec_write_happy_single_negative
      [00:10:14] [PASSED] sysctl_test_api_dointvec_write_single_less_int_min
      [00:10:14] [PASSED] sysctl_test_api_dointvec_write_single_greater_int_max
      [00:10:14] =================== [PASSED] sysctl_test ===================
      
      ./run_kselftest.sh -c sysctl
      ...
      ok 1 selftests: sysctl: sysctl.sh
      
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Iurii Zaikin <yzaikin@google.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Paolo Abeni <pabeni@redhat.com>
      Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
      Cc: David Ahern <dsahern@kernel.org>
      Cc: Simon Horman <horms@verge.net.au>
      Cc: Julian Anastasov <ja@ssi.bg>
      Cc: Pablo Neira Ayuso <pablo@netfilter.org>
      Cc: Jozsef Kadlecsik <kadlec@netfilter.org>
      Cc: Florian Westphal <fw@strlen.de>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Lorenz Bauer <lmb@cloudflare.com>
      Cc: Akhmat Karakotov <hmukos@yandex-team.ru>
      Signed-off-by: default avatarTonghao Zhang <xiangxia.m.yue@gmail.com>
      Reviewed-by: default avatarSimon Horman <horms@verge.net.au>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      4c7f24f8
    • Tonghao Zhang's avatar
      net: sysctl: use shared sysctl macro · bd8a5367
      Tonghao Zhang authored
      
      
      This patch replace two, four and long_one to SYSCTL_XXX.
      
      Cc: Luis Chamberlain <mcgrof@kernel.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Iurii Zaikin <yzaikin@google.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Paolo Abeni <pabeni@redhat.com>
      Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
      Cc: David Ahern <dsahern@kernel.org>
      Cc: Simon Horman <horms@verge.net.au>
      Cc: Julian Anastasov <ja@ssi.bg>
      Cc: Pablo Neira Ayuso <pablo@netfilter.org>
      Cc: Jozsef Kadlecsik <kadlec@netfilter.org>
      Cc: Florian Westphal <fw@strlen.de>
      Cc: Shuah Khan <shuah@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Lorenz Bauer <lmb@cloudflare.com>
      Cc: Akhmat Karakotov <hmukos@yandex-team.ru>
      Signed-off-by: default avatarTonghao Zhang <xiangxia.m.yue@gmail.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      bd8a5367
    • Kalle Valo's avatar
      Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git · f39af96d
      Kalle Valo authored
      ath.git patches for v5.19. Major changes:
      
      ath11k
      
      * support setting Specific Absorption Rate (SAR) for WCN6855
      
      * read country code from SMBIOS for WCN6855/QCA6390
      
      * support for WCN6750
      f39af96d
    • Ping-Ke Shih's avatar
      rtw89: 8852c: rfk: add DPK · da4cea16
      Ping-Ke Shih authored
      
      
      DPK is short for digital pre-distortion calibration. It can adjusts digital
      waveform according to PA linear characteristics dynamically to enhance
      TX EVM.
      
      Do this calibration when we are going to run on AP channel. To prevent
      power offset out of boundary, it monitors thermal and set proper boundary
      to register.
      
      8852c needs two backup buffers, so we enlarge the array. But, 8852a still
      needs only one, so it only uses first element (index zero).
      
      Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
      Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/20220502235408.15052-9-pkshih@realtek.com
      da4cea16
    • Ping-Ke Shih's avatar
      rtw89: 8852c: rfk: add IQK · 2da8109d
      Ping-Ke Shih authored
      
      
      IQ signal calibration is a very important calibration to yield good RF
      performance. We do this calibration only if we are going to run on AP
      channel. During scanning phase, without this calibration RF performance
      is still acceptable because it transmits with low data rate at this phase.
      
      Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
      Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/20220502235408.15052-8-pkshih@realtek.com
      2da8109d
    • Ping-Ke Shih's avatar
      rtw89: 8852c: rfk: add RX DCK · ac91be97
      Ping-Ke Shih authored
      
      
      RX DCK is receiver DC calibration. Do this calibration when bringing up
      interface and going to run on AP channel.
      
      Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
      Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/20220502235408.15052-7-pkshih@realtek.com
      ac91be97
    • Ping-Ke Shih's avatar
      rtw89: 8852c: rfk: add RCK · 30052c5a
      Ping-Ke Shih authored
      
      
      RCK is synchronize RC calibration. It needs to be triggered only once when
      interface is going to up.
      
      Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
      Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/20220502235408.15052-6-pkshih@realtek.com
      30052c5a
    • Ping-Ke Shih's avatar
      rtw89: 8852c: rfk: add TSSI · e5efc4d5
      Ping-Ke Shih authored
      
      
      TSSI is transmitter signal strength indication, which is a close-loop
      hardware circuit to feedback actual transmitting power as a reference for
      next transmission.
      
      When we setup channel to connect an AP, it does full calibration. When
      switching bands or channels, it needs to reset hardware status to prevent
      use wrong feedback of previous transmission.
      
      To do TX power compensation reflecting current temperature, it loads tables
      of compensation values into registers according to channel and band group.
      
      Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
      Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/20220502235408.15052-5-pkshih@realtek.com
      e5efc4d5
    • Ping-Ke Shih's avatar
      rtw89: 8852c: rfk: add LCK · fb8177d7
      Ping-Ke Shih authored
      
      
      LCK is short fro LC Tank calibration. Do this calibration once driver
      loads RF parameters table. Since the characteristic can be changed by
      temperature, we do this calibration again if difference of thermal value
      is over a threshold.
      
      Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
      Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/20220502235408.15052-4-pkshih@realtek.com
      fb8177d7
    • Ping-Ke Shih's avatar
      rtw89: 8852c: rfk: add DACK · 76599a8d
      Ping-Ke Shih authored
      
      
      DACK (digital-to-analog converters calibration) is used to calibrate DAC
      to output analog signals as expected.
      
      Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
      Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/20220502235408.15052-3-pkshih@realtek.com
      76599a8d
    • Ping-Ke Shih's avatar
      rtw89: 8852c: rfk: add RFK tables · ec424639
      Ping-Ke Shih authored
      
      
      These tables are used by RFK (RF calibration) to set parameters. These
      parameters can trigger certain calibration, or configure/reset settings
      before and after RF calibrations.
      
      Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
      Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/20220502235408.15052-2-pkshih@realtek.com
      ec424639
    • Srinivasan Raju's avatar
      plfxlc: fix le16_to_cpu warning for beacon_interval · ccc915e7
      Srinivasan Raju authored
      
      
      Fix the following sparse warnings:
      drivers/net/wireless/purelifi/plfxlc/chip.c:36:31: sparse: expected unsigned short [usertype] beacon_interval
      drivers/net/wireless/purelifi/plfxlc/chip.c:36:31: sparse: got restricted __le16 [usertype]
      
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarSrinivasan Raju <srini.raju@purelifi.com>
      Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/20220502150133.6052-1-srini.raju@purelifi.com
      ccc915e7