patches for DPDK stable branches
 help / color / mirror / Atom feed
* patch has been queued to stable release 22.11.4
@ 2023-10-22 14:20 Xueming Li
  2023-10-22 14:20 ` patch 'ci: fix race on container image name' " Xueming Li
                   ` (141 more replies)
  0 siblings, 142 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Xueming Li; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=f42884a20c25f4ce9e4daaee0e26c25e9962df91

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f42884a20c25f4ce9e4daaee0e26c25e9962df91 Mon Sep 17 00:00:00 2001
From: Xueming Li <xuemingl@nvidia.com>
Date: Sun, 22 Oct 2023 22:17:34 +0800
Subject: [PATCH] *** SUBJECT HERE ***
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>

*** BLURB HERE ***

Aakash Sasidharan (2):
  event/cnxk: fix return values for capability API
  test/event: fix crypto null device creation

Akhil Goyal (2):
  common/cnxk: fix different size bit operations
  net/cnxk: fix uninitialized variable

Alex Vesker (1):
  net/mlx5/hws: fix field copy bind

Amit Prakash Shukla (4):
  common/cnxk: fix DPI memzone name
  dma/cnxk: fix device state
  dma/cnxk: fix device reconfigure
  dma/cnxk: fix chunk buffer failure return code

Anatoly Burakov (1):
  test: fix named test macro

Anoob Joseph (2):
  cryptodev: add missing doc for security context
  doc: replace code blocks with includes in security guide

Artemy Kovalyov (1):
  mem: fix deadlock with multiprocess

Ashwin Sekhar T K (2):
  mempool/cnxk: fix alloc from non-EAL threads
  common/cnxk: fix aura disable handling

Beilei Xing (1):
  net/i40e: fix FDIR queue receives broadcast packets

Brian Dooley (2):
  test/crypto: fix IV in some vectors
  test/crypto: skip some synchronous tests with CPU crypto

Bruce Richardson (3):
  crypto/ipsec_mb: add dependency check for cross build
  event/sw: remove obsolete comment
  net/i40e: fix buffer leak on Rx reconfiguration

Chengwen Feng (2):
  net/hns3: fix traffic management thread safety
  net/hns3: fix traffic management dump text alignment

Ciara Power (1):
  crypto/qat: fix raw API null algorithm digest

Dariusz Sosnowski (1):
  net/mlx5: fix jump ipool entry size

David Christensen (1):
  net/tap: use MAC address parse API instead of local parser

David Marchand (15):
  ci: fix race on container image name
  mempool: fix default ops for an empty mempool
  crypto/dpaa2_sec: fix debug prints
  crypto/dpaa_sec: fix debug prints
  eventdev: fix symbol export for port maintenance
  common/cnxk: remove dead Meson code
  app/bbdev: fix link with NXP LA12XX
  net/iavf: fix checksum offloading
  net/iavf: fix Tx debug
  net/iavf: remove log from Tx prepare function
  net/iavf: fix TSO with big segments
  net/ice: remove log from Tx prepare function
  net/ice: fix TSO with big segments
  net/mlx5: fix leak in sysfs port name translation
  net/bonding: fix link status callback stop

Dengdui Huang (4):
  net/hns3: fix VF default MAC modified when set failed
  net/hns3: fix error code for multicast resource
  net/hns3: fix flushing multicast MAC address
  app/testpmd: fix help string

Ed Czeck (1):
  net/ark: support single function with multiple port

Gagandeep Singh (1):
  bus/dpaa: fix build with asserts for GCC 13

Ganapati Kundapura (1):
  eventdev/crypto: fix circular buffer full case

Harman Kalra (1):
  mempool/cnxk: fix free from non-EAL threads

Harry van Haaren (1):
  event/sw: fix ordering corruption with op release

Hemant Agrawal (1):
  test/crypto: fix return value for GMAC case

Hernan Vargas (1):
  baseband/acc: fix ACC100 HARQ input alignment

Huisong Li (1):
  net/hns3: fix order in NEON Rx

Ivan Malov (1):
  net/sfc: add missing error code indication to MAE init path

Jerin Jacob (1):
  common/cnxk: replace direct API usage in REE

Jiawen Wu (10):
  net/txgbe: add Tx queue maximum limit
  net/txgbe: fix GRE tunnel packet checksum
  net/ngbe: fix flow control
  net/ngbe: prevent NIC from slowing down link speed
  net/txgbe: reconfigure MAC Rx when link update
  net/ngbe: reconfigure MAC Rx when link update
  net/txgbe: keep link down after device close
  net/ngbe: keep link down after device close
  net/txgbe: check process type in close operation
  net/ngbe: check process type in close operation

Jie Hai (33):
  net/af_packet: fix Rx and Tx queue state
  net/af_xdp: fix Rx and Tx queue state
  net/avp: fix Rx and Tx queue state
  net/bnx2x: fix Rx and Tx queue state
  net/bnxt: fix Rx and Tx queue state
  net/bonding: fix Rx and Tx queue state
  net/cxgbe: fix Rx and Tx queue state
  net/dpaa: fix Rx and Tx queue state
  net/dpaa2: fix Rx and Tx queue state
  net/e1000: fix Rx and Tx queue state
  net/ena: fix Rx and Tx queue state
  net/enetc: fix Rx and Tx queue state
  net/enic: fix Rx and Tx queue state
  net/hinic: fix Rx and Tx queue state
  net/ipn3ke: fix Rx and Tx queue state
  net/memif: fix Rx and Tx queue state
  net/mlx4: fix Rx and Tx queue state
  net/mvneta: fix Rx and Tx queue state
  net/mvpp2: fix Rx and Tx queue state
  net/nfp: fix Rx and Tx queue state
  net/ngbe: fix Rx and Tx queue state
  net/null: fix Rx and Tx queue state
  net/octeon_ep: fix Rx and Tx queue state
  net/octeontx: fix Rx and Tx queue state
  net/pfe: fix Rx and Tx queue state
  net/ring: fix Rx and Tx queue state
  net/sfc: fix Rx and Tx queue state
  net/softnic: fix Rx and Tx queue state
  net/txgbe: fix Rx and Tx queue state
  net/vhost: fix Rx and Tx queue state
  net/virtio: fix Rx and Tx queue state
  net/vmxnet3: fix Rx and Tx queue state
  app/testpmd: fix primary process not polling all queues

Jieqiang Wang (1):
  hash: align SSE lookup to scalar implementation

Joshua Washington (1):
  net/gve: fix max MTU limit

Kaiwen Deng (1):
  net/ice: fix TM configuration clearing

Kiran Kumar K (1):
  common/cnxk: fix RSS key configuration

Levend Sayar (1):
  gpu/cuda: fix build with external GDRCopy

Long Li (2):
  net/netvsc: increase VSP response timeout to 60 seconds
  net/mana: add missing new line to data path logs

Long Wu (1):
  net/nfp: fix control message packets

Martin Weiser (1):
  net/ice: write timestamp to first segment in scattered Rx

Pavan Nikhilesh (4):
  event/cnxk: fix getwork mode devargs parsing
  event/cnxk: fix CASP usage for clang
  event/cnxk: fix context flush in port cleanup
  common/cnxk: fix incorrect aura ID

Qiming Yang (2):
  bus/pci: fix device ID log
  net/ice: fix initial link status

Radu Nicolau (1):
  net/iavf: fix ESN session update

Rahul Bhansali (2):
  test/security: fix IPv6 next header field
  eventdev/eth_rx: fix timestamp field register in mbuf

Rakesh Kudurumalla (1):
  common/cnxk: fix xstats for different packet sizes

Satheesh Paul (1):
  common/cnxk: fix default flow action setting

Saurabh Singhal (1):
  net/iavf: unregister interrupt handler before FD close

Selwin Sebastian (1):
  net/axgbe: identify CPU with cpuid

Sivaprasad Tummala (1):
  eventdev: fix alignment padding

Sivaramakrishnan Venkat (1):
  test/crypto: fix typo in asym tests

Srikanth Yalavarthi (1):
  eal/unix: fix firmware reading with external xz helper

Stephen Hemminger (4):
  app/test: fix reference to master in bonding test
  random: initialize state for unregistered non-EAL threads
  common/mlx5: replace use of PMD log type
  app/procinfo: remove unnecessary rte_malloc

Suanming Mou (1):
  ethdev: add check in async flow action query

Tejasree Kondoj (1):
  crypto/cnxk: fix IPsec CCM and GCM capabilities

Tomasz Duszynski (1):
  rawdev: fix device class in log message

Viacheslav Galaktionov (2):
  net/sfc: set max Rx packet length for representors
  net/sfc: account for data offset on Tx

Visa Hankala (1):
  net/bonding: fix header for C++

Vladimir Medvedkin (2):
  fib: fix adding default route overwriting entire table
  fib6: fix adding default route as first route

Wei Hu (2):
  net/mana: enable 32-bit build
  net/mana: add 32-bit short doorbell

Wenjing Qiao (1):
  net/iavf: fix VLAN offload strip flag

Yajun Wu (1):
  vdpa/mlx5: fix unregister kick handler order

Yiding Zhou (1):
  net/iavf: fix port stats clearing

Zerun Fu (1):
  net/nfp: fix initialization of physical representors

 .github/workflows/build.yml                   |   5 +-
 .mailmap                                      |  10 +-
 app/proc-info/main.c                          |  20 +-
 app/test-bbdev/meson.build                    |   2 +-
 app/test-pmd/cmdline.c                        |   6 +
 app/test-pmd/testpmd.c                        |  25 ++-
 app/test/test.h                               |   2 +-
 app/test/test_cryptodev.c                     |  91 ++++-----
 app/test/test_cryptodev_asym.c                |   4 +-
 app/test/test_cryptodev_mixed_test_vectors.h  |   8 +-
 app/test/test_event_crypto_adapter.c          |   7 +-
 app/test/test_link_bonding.c                  |   2 +-
 app/test/test_security_inline_proto.c         |  78 ++++----
 app/test/test_security_inline_proto_vectors.h |   4 +-
 doc/guides/prog_guide/rte_security.rst        |  65 ++-----
 drivers/baseband/acc/rte_acc100_pmd.c         |   2 +-
 drivers/bus/dpaa/base/qbman/qman.c            |   5 +-
 drivers/bus/pci/pci_common.c                  |   2 +-
 drivers/common/cnxk/cnxk_security_ar.h        |   2 +-
 drivers/common/cnxk/hw/nix.h                  |   1 +
 drivers/common/cnxk/meson.build               |   1 -
 drivers/common/cnxk/roc_dpi.c                 |   6 +-
 drivers/common/cnxk/roc_mbox.h                |   2 +-
 drivers/common/cnxk/roc_nix_inl_dev.c         |   3 +-
 drivers/common/cnxk/roc_npa.c                 |   2 +
 drivers/common/cnxk/roc_npc.c                 |  50 +++--
 drivers/common/cnxk/roc_npc_mcam_dump.c       |   4 +
 drivers/common/cnxk/roc_ree.c                 |   4 +-
 drivers/common/cnxk/roc_ree.h                 |   2 +-
 drivers/common/mlx5/linux/mlx5_common_os.c    |   2 +-
 drivers/common/mlx5/mlx5_devx_cmds.c          |   2 +-
 .../crypto/cnxk/cnxk_cryptodev_capabilities.c |   8 +-
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c   |   4 +-
 drivers/crypto/dpaa_sec/dpaa_sec.c            |   6 +-
 drivers/crypto/ipsec_mb/meson.build           |   5 +
 drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c  |  19 +-
 drivers/crypto/qat/dev/qat_sym_pmd_gen1.c     |  41 ++++-
 drivers/dma/cnxk/cnxk_dmadev.c                |  69 +++++--
 drivers/dma/cnxk/cnxk_dmadev.h                |   5 +
 drivers/event/cnxk/cn10k_eventdev.c           |  34 ++--
 drivers/event/cnxk/cn10k_worker.h             |  15 +-
 drivers/event/cnxk/cn9k_eventdev.c            |  41 +++--
 drivers/event/cnxk/cnxk_eventdev.c            |   2 +-
 drivers/event/cnxk/cnxk_eventdev.h            |   6 +-
 drivers/event/sw/sw_evdev_scheduler.c         |  19 +-
 drivers/gpu/cuda/gdrcopy.c                    |   2 +
 drivers/mempool/cnxk/cn10k_mempool_ops.c      |  12 ++
 drivers/net/af_packet/rte_eth_af_packet.c     |   9 +
 drivers/net/af_xdp/rte_eth_af_xdp.c           |  13 ++
 drivers/net/ark/ark_ethdev.c                  |  15 +-
 drivers/net/ark/ark_ethdev_rx.c               |   6 +-
 drivers/net/ark/ark_ethdev_tx.c               |   2 +-
 drivers/net/ark/ark_global.h                  |   3 +
 drivers/net/avp/avp_ethdev.c                  |  12 ++
 drivers/net/axgbe/axgbe_ethdev.c              | 106 ++++++-----
 drivers/net/bnx2x/bnx2x_ethdev.c              |  12 ++
 drivers/net/bnxt/bnxt_ethdev.c                |   6 +
 drivers/net/bonding/rte_eth_bond_8023ad.h     |   9 +-
 drivers/net/bonding/rte_eth_bond_pmd.c        |  14 ++
 drivers/net/cnxk/cn10k_rx.h                   |   4 +-
 drivers/net/cxgbe/cxgbe_ethdev.c              |   6 +
 drivers/net/dpaa/dpaa_ethdev.c                |  12 ++
 drivers/net/dpaa2/dpaa2_ethdev.c              |  11 ++
 drivers/net/e1000/em_rxtx.c                   |   8 +
 drivers/net/e1000/igb_rxtx.c                  |   4 +
 drivers/net/ena/ena_ethdev.c                  |  12 ++
 drivers/net/enetc/enetc_ethdev.c              |  12 ++
 drivers/net/enic/enic_ethdev.c                |   6 +
 drivers/net/gve/gve_ethdev.c                  |   5 +-
 drivers/net/gve/gve_ethdev.h                  |   3 -
 drivers/net/hinic/hinic_pmd_ethdev.c          |  12 ++
 drivers/net/hns3/hns3_common.c                |  12 +-
 drivers/net/hns3/hns3_dump.c                  |  26 ++-
 drivers/net/hns3/hns3_ethdev_vf.c             |   2 +
 drivers/net/hns3/hns3_rxtx_vec_neon.h         |  78 ++++----
 drivers/net/hns3/hns3_tm.c                    | 173 +++++++++++++++---
 drivers/net/i40e/i40e_ethdev.c                |  16 +-
 drivers/net/i40e/i40e_rxtx.c                  |   6 +
 drivers/net/i40e/i40e_rxtx_vec_common.h       |   1 +
 drivers/net/iavf/iavf_ethdev.c                |  41 ++++-
 drivers/net/iavf/iavf_ipsec_crypto.c          |   1 +
 drivers/net/iavf/iavf_rxtx.c                  |  12 +-
 drivers/net/ice/ice_dcf_ethdev.c              |   2 -
 drivers/net/ice/ice_dcf_sched.c               |  14 +-
 drivers/net/ice/ice_ethdev.c                  |   2 +
 drivers/net/ice/ice_rxtx.c                    |  11 +-
 drivers/net/ipn3ke/ipn3ke_representor.c       |  12 ++
 drivers/net/mana/gdma.c                       |  92 ++++++++++
 drivers/net/mana/mana.c                       |   2 +-
 drivers/net/mana/mana.h                       |  28 ++-
 drivers/net/mana/meson.build                  |   4 +-
 drivers/net/mana/mr.c                         |  18 +-
 drivers/net/mana/rx.c                         |  45 +++++
 drivers/net/mana/tx.c                         |  25 +++
 drivers/net/memif/rte_eth_memif.c             |  16 ++
 drivers/net/mlx4/mlx4.c                       |  13 ++
 drivers/net/mlx5/hws/mlx5dr_definer.c         |   8 +-
 drivers/net/mlx5/linux/mlx5_ethdev_os.c       |   1 +
 drivers/net/mlx5/mlx5.c                       |  15 +-
 drivers/net/mvneta/mvneta_ethdev.c            |  13 ++
 drivers/net/mvpp2/mrvl_ethdev.c               |  10 +
 drivers/net/netvsc/hn_rndis.c                 |   2 +-
 drivers/net/nfp/flower/nfp_flower.c           |  40 +++-
 .../net/nfp/flower/nfp_flower_representor.c   |  24 ++-
 drivers/net/nfp/nfp_common.c                  |   2 +
 drivers/net/nfp/nfp_ethdev.c                  |   6 +
 drivers/net/nfp/nfp_ethdev_vf.c               |   6 +
 drivers/net/ngbe/base/ngbe_phy_rtl.c          |   5 +
 drivers/net/ngbe/base/ngbe_type.h             |  40 ++++
 drivers/net/ngbe/ngbe_ethdev.c                | 102 ++++++++++-
 drivers/net/ngbe/ngbe_rxtx.c                  |   2 +
 drivers/net/null/rte_eth_null.c               |  15 ++
 drivers/net/octeon_ep/otx_ep_ethdev.c         |  11 ++
 drivers/net/octeontx/octeontx_ethdev.c        |  11 ++
 drivers/net/pfe/pfe_ethdev.c                  |  11 ++
 drivers/net/ring/rte_eth_ring.c               |  15 ++
 drivers/net/sfc/sfc_ef100_tx.c                |   2 +-
 drivers/net/sfc/sfc_mae.c                     |   4 +-
 drivers/net/sfc/sfc_repr.c                    |  13 ++
 drivers/net/softnic/rte_eth_softnic.c         |  12 ++
 drivers/net/tap/rte_eth_tap.c                 |  25 +--
 drivers/net/txgbe/txgbe_ethdev.c              |  41 ++++-
 drivers/net/txgbe/txgbe_ethdev.h              |   1 +
 drivers/net/txgbe/txgbe_ptypes.c              |  16 --
 drivers/net/txgbe/txgbe_ptypes.h              |   5 +
 drivers/net/txgbe/txgbe_rxtx.c                |  31 ++--
 drivers/net/vhost/rte_eth_vhost.c             |  12 ++
 drivers/net/virtio/virtio_ethdev.c            |  11 ++
 drivers/net/vmxnet3/vmxnet3_ethdev.c          |  12 ++
 drivers/vdpa/mlx5/mlx5_vdpa.c                 |   1 +
 drivers/vdpa/mlx5/mlx5_vdpa_cthread.c         |   1 -
 lib/cryptodev/rte_cryptodev.h                 |   9 +
 lib/eal/common/eal_common_dynmem.c            |   5 +-
 lib/eal/common/rte_random.c                   |   2 +-
 lib/eal/include/generic/rte_rwlock.h          |   4 +
 lib/eal/linux/eal_memalloc.c                  |   7 +-
 lib/eal/unix/eal_firmware.c                   |  28 ++-
 lib/ethdev/rte_flow.c                         |   2 +
 lib/eventdev/rte_event_crypto_adapter.c       |  15 +-
 lib/eventdev/rte_event_eth_rx_adapter.c       |  14 +-
 lib/eventdev/rte_eventdev_core.h              |   2 +-
 lib/eventdev/version.map                      |   1 +
 lib/fib/dir24_8.c                             |   6 +
 lib/fib/trie.c                                |  18 +-
 lib/hash/rte_cuckoo_hash.c                    |   4 +
 lib/mempool/rte_mempool.c                     |  33 ++--
 lib/rawdev/rte_rawdev.c                       |   3 +-
 lib/security/rte_security.h                   |   6 +
 148 files changed, 1762 insertions(+), 584 deletions(-)

--
2.25.1

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'ci: fix race on container image name' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'mempool: fix default ops for an empty mempool' " Xueming Li
                   ` (140 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: David Marchand; +Cc: Aaron Conole, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=36001100ff14e89798d6553914cf3c41e2bb60d4

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 36001100ff14e89798d6553914cf3c41e2bb60d4 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 2 Aug 2023 08:43:48 +0200
Subject: [PATCH] ci: fix race on container image name
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9836014d4c2b1b2c29948c928fd386b2944b6bcf ]

We had a race on the container image name when the prepare job was
running a day before the build job was triggered.

Example:
- a prepare job generated image name on 2023/08/01:

  2023-08-01T23:59:32.9711845Z ++ date -u +%Y-%m-%d
  2023-08-01T23:59:32.9713485Z + echo image=image-fedora:37-2023-08-01

- a few seconds later, the build jobs tried to use a different image
  name on 2023/08/02:

  2023-08-02T00:01:29.9103180Z ++ date -u +%Y-%m-%d
  2023-08-02T00:01:29.9113486Z + echo image=image-fedora:37-2023-08-02

Fix this by directly reusing the prepare job output.

Fixes: b35c4b0aa2bc ("ci: add Fedora 35 container in GHA")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Aaron Conole <aconole@redhat.com>
---
 .github/workflows/build.yml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 9512219a05..8bd8f57513 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -145,6 +145,8 @@ jobs:
   prepare-container-images:
     name: ${{ join(matrix.config.*, '-') }}
     runs-on: ubuntu-latest
+    outputs:
+      image: ${{ steps.get_keys.outputs.image }}

     strategy:
       fail-fast: false
@@ -210,14 +212,13 @@ jobs:
       id: get_keys
       run: |
         echo 'ccache=ccache-${{ matrix.config.image }}-${{ matrix.config.compiler }}-'$(date -u +%Y-w%W) >> $GITHUB_OUTPUT
-        echo 'image=image-${{ matrix.config.image }}-'$(date -u +%Y-%m-%d) >> $GITHUB_OUTPUT
         echo 'logs=meson-logs-${{ join(matrix.config.*, '-') }}' | tr -d ':' >> $GITHUB_OUTPUT
     - name: Retrieve image cache
       id: image_cache
       uses: actions/cache@v3
       with:
         path: ~/.image
-        key: ${{ steps.get_keys.outputs.image }}
+        key: ${{ needs.prepare-container-images.outputs.image }}
     - name: Fail if no image (not supposed to happen)
       if: steps.image_cache.outputs.cache-hit != 'true'
       run: |
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.522409900 +0800
+++ 0001-ci-fix-race-on-container-image-name.patch	2023-10-22 22:17:34.126723700 +0800
@@ -1 +1 @@
-From 9836014d4c2b1b2c29948c928fd386b2944b6bcf Mon Sep 17 00:00:00 2001
+From 36001100ff14e89798d6553914cf3c41e2bb60d4 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9836014d4c2b1b2c29948c928fd386b2944b6bcf ]
@@ -24 +26,0 @@
-Cc: stable@dpdk.org
@@ -33 +35 @@
-index 2c1eda9b18..7a2ac0ceee 100644
+index 9512219a05..8bd8f57513 100644
@@ -36 +38 @@
-@@ -148,6 +148,8 @@ jobs:
+@@ -145,6 +145,8 @@ jobs:
@@ -45 +47 @@
-@@ -214,14 +216,13 @@ jobs:
+@@ -210,14 +212,13 @@ jobs:

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'mempool: fix default ops for an empty mempool' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
  2023-10-22 14:20 ` patch 'ci: fix race on container image name' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'eal/unix: fix firmware reading with external xz helper' " Xueming Li
                   ` (139 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: David Marchand; +Cc: Bruce Richardson, Morten Brørup, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=36c07ef565121a9f2b6650ff804ec21c4d507a52

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 36c07ef565121a9f2b6650ff804ec21c4d507a52 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 16 Aug 2023 16:34:29 +0100
Subject: [PATCH] mempool: fix default ops for an empty mempool
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c2c6b2f413051b022488518d040508b9ea6e0130 ]

An empty mempool's ops were not initialised to a default value wrt to
what the application requested via the flags parameter.  As
rte_mempool_create() relies on rte_mempool_create_empty(), simply move
this ops initialisation to rte_mempool_create_empty().

Fixes: aa10457eb4c2 ("mempool: make mempool populate and free api public")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
---
 lib/mempool/rte_mempool.c | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/lib/mempool/rte_mempool.c b/lib/mempool/rte_mempool.c
index 950d01ffac..3de857abf5 100644
--- a/lib/mempool/rte_mempool.c
+++ b/lib/mempool/rte_mempool.c
@@ -915,6 +915,22 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
 	STAILQ_INIT(&mp->elt_list);
 	STAILQ_INIT(&mp->mem_list);

+	/*
+	 * Since we have 4 combinations of the SP/SC/MP/MC examine the flags to
+	 * set the correct index into the table of ops structs.
+	 */
+	if ((flags & RTE_MEMPOOL_F_SP_PUT) && (flags & RTE_MEMPOOL_F_SC_GET))
+		ret = rte_mempool_set_ops_byname(mp, "ring_sp_sc", NULL);
+	else if (flags & RTE_MEMPOOL_F_SP_PUT)
+		ret = rte_mempool_set_ops_byname(mp, "ring_sp_mc", NULL);
+	else if (flags & RTE_MEMPOOL_F_SC_GET)
+		ret = rte_mempool_set_ops_byname(mp, "ring_mp_sc", NULL);
+	else
+		ret = rte_mempool_set_ops_byname(mp, "ring_mp_mc", NULL);
+
+	if (ret)
+		goto exit_unlock;
+
 	/*
 	 * local_cache pointer is set even if cache_size is zero.
 	 * The local_cache points to just past the elt_pa[] array.
@@ -955,7 +971,6 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
 	rte_mempool_obj_cb_t *obj_init, void *obj_init_arg,
 	int socket_id, unsigned flags)
 {
-	int ret;
 	struct rte_mempool *mp;

 	mp = rte_mempool_create_empty(name, n, elt_size, cache_size,
@@ -963,22 +978,6 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
 	if (mp == NULL)
 		return NULL;

-	/*
-	 * Since we have 4 combinations of the SP/SC/MP/MC examine the flags to
-	 * set the correct index into the table of ops structs.
-	 */
-	if ((flags & RTE_MEMPOOL_F_SP_PUT) && (flags & RTE_MEMPOOL_F_SC_GET))
-		ret = rte_mempool_set_ops_byname(mp, "ring_sp_sc", NULL);
-	else if (flags & RTE_MEMPOOL_F_SP_PUT)
-		ret = rte_mempool_set_ops_byname(mp, "ring_sp_mc", NULL);
-	else if (flags & RTE_MEMPOOL_F_SC_GET)
-		ret = rte_mempool_set_ops_byname(mp, "ring_mp_sc", NULL);
-	else
-		ret = rte_mempool_set_ops_byname(mp, "ring_mp_mc", NULL);
-
-	if (ret)
-		goto fail;
-
 	/* call the mempool priv initializer */
 	if (mp_init)
 		mp_init(mp, mp_init_arg);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.556367800 +0800
+++ 0002-mempool-fix-default-ops-for-an-empty-mempool.patch	2023-10-22 22:17:34.126723700 +0800
@@ -1 +1 @@
-From c2c6b2f413051b022488518d040508b9ea6e0130 Mon Sep 17 00:00:00 2001
+From 36c07ef565121a9f2b6650ff804ec21c4d507a52 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c2c6b2f413051b022488518d040508b9ea6e0130 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index 4d337fca8d..7a7a9bf6db 100644
+index 950d01ffac..3de857abf5 100644
@@ -28 +30 @@
-@@ -914,6 +914,22 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
+@@ -915,6 +915,22 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size,
@@ -51 +53 @@
-@@ -954,7 +970,6 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
+@@ -955,7 +971,6 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
@@ -59 +61 @@
-@@ -962,22 +977,6 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,
+@@ -963,22 +978,6 @@ rte_mempool_create(const char *name, unsigned n, unsigned elt_size,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'eal/unix: fix firmware reading with external xz helper' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
  2023-10-22 14:20 ` patch 'ci: fix race on container image name' " Xueming Li
  2023-10-22 14:20 ` patch 'mempool: fix default ops for an empty mempool' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'rawdev: fix device class in log message' " Xueming Li
                   ` (138 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Srikanth Yalavarthi; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=f76fc5ef15ee257bf406cb29ecbb218061cc0f2f

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f76fc5ef15ee257bf406cb29ecbb218061cc0f2f Mon Sep 17 00:00:00 2001
From: Srikanth Yalavarthi <syalavarthi@marvell.com>
Date: Tue, 26 Sep 2023 07:44:54 -0700
Subject: [PATCH] eal/unix: fix firmware reading with external xz helper
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 39970abcf4850e070aa4709c87bcac15cb27caf8 ]

libarchive may support xz decompression only through an
external (slower) helper.

In such a case, archive_read_support_filter_xz() returns
ARCHIVE_WARN.

Fixes: 40edb9c0d36b ("eal: handle compressed firmware")

Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 lib/eal/unix/eal_firmware.c | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git a/lib/eal/unix/eal_firmware.c b/lib/eal/unix/eal_firmware.c
index d1616b0bd9..1a7cf8e7b7 100644
--- a/lib/eal/unix/eal_firmware.c
+++ b/lib/eal/unix/eal_firmware.c
@@ -25,19 +25,31 @@ static int
 firmware_open(struct firmware_read_ctx *ctx, const char *name, size_t blocksize)
 {
 	struct archive_entry *e;
+	int err;

 	ctx->a = archive_read_new();
 	if (ctx->a == NULL)
 		return -1;
-	if (archive_read_support_format_raw(ctx->a) != ARCHIVE_OK ||
-			archive_read_support_filter_xz(ctx->a) != ARCHIVE_OK ||
-			archive_read_open_filename(ctx->a, name, blocksize) != ARCHIVE_OK ||
-			archive_read_next_header(ctx->a, &e) != ARCHIVE_OK) {
-		archive_read_free(ctx->a);
-		ctx->a = NULL;
-		return -1;
-	}
+
+	if (archive_read_support_format_raw(ctx->a) != ARCHIVE_OK)
+		goto error;
+
+	err = archive_read_support_filter_xz(ctx->a);
+	if (err != ARCHIVE_OK && err != ARCHIVE_WARN)
+		goto error;
+
+	if (archive_read_open_filename(ctx->a, name, blocksize) != ARCHIVE_OK)
+		goto error;
+
+	if (archive_read_next_header(ctx->a, &e) != ARCHIVE_OK)
+		goto error;
+
 	return 0;
+
+error:
+	archive_read_free(ctx->a);
+	ctx->a = NULL;
+	return -1;
 }

 static ssize_t
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.589753700 +0800
+++ 0003-eal-unix-fix-firmware-reading-with-external-xz-helpe.patch	2023-10-22 22:17:34.126723700 +0800
@@ -1 +1 @@
-From 39970abcf4850e070aa4709c87bcac15cb27caf8 Mon Sep 17 00:00:00 2001
+From f76fc5ef15ee257bf406cb29ecbb218061cc0f2f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 39970abcf4850e070aa4709c87bcac15cb27caf8 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'rawdev: fix device class in log message' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (2 preceding siblings ...)
  2023-10-22 14:20 ` patch 'eal/unix: fix firmware reading with external xz helper' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/bonding: fix header for C++' " Xueming Li
                   ` (137 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Tomasz Duszynski; +Cc: Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=f4b30c5e2ab9989dcc86bfc9782a92f26efb4fff

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f4b30c5e2ab9989dcc86bfc9782a92f26efb4fff Mon Sep 17 00:00:00 2001
From: Tomasz Duszynski <tduszynski@marvell.com>
Date: Mon, 24 Jul 2023 15:36:46 +0200
Subject: [PATCH] rawdev: fix device class in log message
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit eab2364c0e1bdb2a17ba601c1f7f48b213532e2a ]

Use proper naming when dealing with a raw device.

Fixes: c88b3f2558ed ("rawdev: introduce raw device library")

Signed-off-by: Tomasz Duszynski <tduszynski@marvell.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 lib/rawdev/rte_rawdev.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/rawdev/rte_rawdev.c b/lib/rawdev/rte_rawdev.c
index 5fbdb94229..891e79dcd7 100644
--- a/lib/rawdev/rte_rawdev.c
+++ b/lib/rawdev/rte_rawdev.c
@@ -505,8 +505,7 @@ rte_rawdev_pmd_allocate(const char *name, size_t dev_priv_size, int socket_id)
 	uint16_t dev_id;

 	if (rte_rawdev_pmd_get_named_dev(name) != NULL) {
-		RTE_RDEV_ERR("Event device with name %s already allocated!",
-			     name);
+		RTE_RDEV_ERR("Raw device with name %s already allocated!", name);
 		return NULL;
 	}

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.622785300 +0800
+++ 0004-rawdev-fix-device-class-in-log-message.patch	2023-10-22 22:17:34.126723700 +0800
@@ -1 +1 @@
-From eab2364c0e1bdb2a17ba601c1f7f48b213532e2a Mon Sep 17 00:00:00 2001
+From f4b30c5e2ab9989dcc86bfc9782a92f26efb4fff Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit eab2364c0e1bdb2a17ba601c1f7f48b213532e2a ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index dacaa60e22..474bdc9540 100644
+index 5fbdb94229..891e79dcd7 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/bonding: fix header for C++' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (3 preceding siblings ...)
  2023-10-22 14:20 ` patch 'rawdev: fix device class in log message' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/sfc: set max Rx packet length for representors' " Xueming Li
                   ` (136 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Visa Hankala; +Cc: Tyler Retzlaff, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=38b7efe56880d13ebe733d90ec304e8e5266e146

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 38b7efe56880d13ebe733d90ec304e8e5266e146 Mon Sep 17 00:00:00 2001
From: Visa Hankala <visa@hankala.org>
Date: Wed, 9 Aug 2023 15:52:41 +0000
Subject: [PATCH] net/bonding: fix header for C++
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 25fac202f4e00dd1be4eef794174b689a5f64d54 ]

Apply C linkage to the whole header to allow use with C++.

Fixes: dc40f17a36bc ("net/bonding: allow external state machine in mode 4")

Signed-off-by: Visa Hankala <visa@hankala.org>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/bonding/rte_eth_bond_8023ad.h | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.h b/drivers/net/bonding/rte_eth_bond_8023ad.h
index 7eb392f8c8..025bd0ec54 100644
--- a/drivers/net/bonding/rte_eth_bond_8023ad.h
+++ b/drivers/net/bonding/rte_eth_bond_8023ad.h
@@ -197,10 +197,6 @@ int
 rte_eth_bond_8023ad_slave_info(uint16_t port_id, uint16_t slave_id,
 		struct rte_eth_bond_8023ad_slave_info *conf);

-#ifdef __cplusplus
-}
-#endif
-
 /**
  * Configure a slave port to start collecting.
  *
@@ -331,4 +327,9 @@ rte_eth_bond_8023ad_agg_selection_get(uint16_t port_id);
 int
 rte_eth_bond_8023ad_agg_selection_set(uint16_t port_id,
 		enum rte_bond_8023ad_agg_selection agg_selection);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* RTE_ETH_BOND_8023AD_H_ */
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.659904400 +0800
+++ 0005-net-bonding-fix-header-for-C.patch	2023-10-22 22:17:34.126723700 +0800
@@ -1 +1 @@
-From 25fac202f4e00dd1be4eef794174b689a5f64d54 Mon Sep 17 00:00:00 2001
+From 38b7efe56880d13ebe733d90ec304e8e5266e146 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 25fac202f4e00dd1be4eef794174b689a5f64d54 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 7ad8d6d00b..921b4446b7 100644
+index 7eb392f8c8..025bd0ec54 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/sfc: set max Rx packet length for representors' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (4 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/bonding: fix header for C++' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/sfc: account for data offset on Tx' " Xueming Li
                   ` (135 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Viacheslav Galaktionov; +Cc: Andy Moreton, Andrew Rybchenko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=37863f1caa50174b8e1c3d66d2dc8a26b177528c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 37863f1caa50174b8e1c3d66d2dc8a26b177528c Mon Sep 17 00:00:00 2001
From: Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am>
Date: Mon, 11 Sep 2023 14:47:23 +0400
Subject: [PATCH] net/sfc: set max Rx packet length for representors
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a51985667d50aadd58d1fbcefb084b9791df4992 ]

Maximum packet length must be set to configure representor devices.

Fixes: a62ec90522a6 ("net/sfc: add port representors infrastructure")

Signed-off-by: Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
 drivers/net/sfc/sfc_repr.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/sfc/sfc_repr.c b/drivers/net/sfc/sfc_repr.c
index 919048e278..b3a41167fb 100644
--- a/drivers/net/sfc/sfc_repr.c
+++ b/drivers/net/sfc/sfc_repr.c
@@ -530,6 +530,7 @@ sfc_repr_dev_infos_get(struct rte_eth_dev *dev,

 	dev_info->device = dev->device;

+	dev_info->max_rx_pktlen = EFX_MAC_PDU_MAX;
 	dev_info->max_rx_queues = SFC_REPR_RXQ_MAX;
 	dev_info->max_tx_queues = SFC_REPR_TXQ_MAX;
 	dev_info->default_rxconf.rx_drop_en = 1;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.705693600 +0800
+++ 0006-net-sfc-set-max-Rx-packet-length-for-representors.patch	2023-10-22 22:17:34.126723700 +0800
@@ -1 +1 @@
-From a51985667d50aadd58d1fbcefb084b9791df4992 Mon Sep 17 00:00:00 2001
+From 37863f1caa50174b8e1c3d66d2dc8a26b177528c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a51985667d50aadd58d1fbcefb084b9791df4992 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 6c7727d569..5f93192522 100644
+index 919048e278..b3a41167fb 100644
@@ -22 +24 @@
-@@ -502,6 +502,7 @@ sfc_repr_dev_infos_get(struct rte_eth_dev *dev,
+@@ -530,6 +530,7 @@ sfc_repr_dev_infos_get(struct rte_eth_dev *dev,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/sfc: account for data offset on Tx' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (5 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/sfc: set max Rx packet length for representors' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/sfc: add missing error code indication to MAE init path' " Xueming Li
                   ` (134 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Viacheslav Galaktionov
  Cc: Ivan Malov, Andy Moreton, Andrew Rybchenko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=563e7c87dfb4b29b7e39b3851989b0a106f98a29

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 563e7c87dfb4b29b7e39b3851989b0a106f98a29 Mon Sep 17 00:00:00 2001
From: Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am>
Date: Mon, 11 Sep 2023 14:47:41 +0400
Subject: [PATCH] net/sfc: account for data offset on Tx
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e7694b080de025fbc4bb31fbe7eb149f20a10373 ]

Memory buffers passed by the application may contain private data,
which must not be sent to the NIC. Omit this private data by using
the actual data address instead of the default one.

Fixes: 3037e6cf3dde ("net/sfc: support regioned NIC DMA memory mapping type")

Signed-off-by: Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am>
Reviewed-by: Ivan Malov <ivan.malov@arknetworks.am>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
 drivers/net/sfc/sfc_ef100_tx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/sfc/sfc_ef100_tx.c b/drivers/net/sfc/sfc_ef100_tx.c
index 4c2205f7a4..1b6374775f 100644
--- a/drivers/net/sfc/sfc_ef100_tx.c
+++ b/drivers/net/sfc/sfc_ef100_tx.c
@@ -405,7 +405,7 @@ sfc_ef100_tx_qdesc_send_create(const struct sfc_ef100_txq *txq,
 				m->l2_len + m->l3_len) >> 1;
 	}

-	rc = sfc_ef100_tx_map(txq, rte_mbuf_data_iova_default(m),
+	rc = sfc_ef100_tx_map(txq, rte_mbuf_data_iova(m),
 			      rte_pktmbuf_data_len(m), &dma_addr);
 	if (unlikely(rc != 0))
 		return rc;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.738905000 +0800
+++ 0007-net-sfc-account-for-data-offset-on-Tx.patch	2023-10-22 22:17:34.126723700 +0800
@@ -1 +1 @@
-From e7694b080de025fbc4bb31fbe7eb149f20a10373 Mon Sep 17 00:00:00 2001
+From 563e7c87dfb4b29b7e39b3851989b0a106f98a29 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e7694b080de025fbc4bb31fbe7eb149f20a10373 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/sfc: add missing error code indication to MAE init path' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (6 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/sfc: account for data offset on Tx' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/nfp: fix control message packets' " Xueming Li
                   ` (133 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Ivan Malov; +Cc: Andy Moreton, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=de4785693612482884881d5ba1ce189876b46613

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From de4785693612482884881d5ba1ce189876b46613 Mon Sep 17 00:00:00 2001
From: Ivan Malov <ivan.malov@arknetworks.am>
Date: Thu, 10 Aug 2023 21:36:14 +0400
Subject: [PATCH] net/sfc: add missing error code indication to MAE init path
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 1f5e6bb633cafc2789ec74e80bf90fa54ef5b788 ]

A failure to allocate a bounce buffer for encap. header
parsing results in falling to the error path but does
not set an appropriate error code. Fix this.

Fixes: 1bbd1ec2348a ("net/sfc: support action VXLAN encap in MAE backend")

Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am>
Reviewed-by: Andy Moreton <andy.moreton@amd.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 .mailmap                  | 2 +-
 drivers/net/sfc/sfc_mae.c | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/.mailmap b/.mailmap
index 6032ae9ea2..244b8d2544 100644
--- a/.mailmap
+++ b/.mailmap
@@ -103,7 +103,7 @@ Andriy Berestovskyy <aber@semihalf.com> <andriy.berestovskyy@caviumnetworks.com>
 Andrzej Ostruszka <amo@semihalf.com> <aostruszka@marvell.com>
 Andy Gospodarek <andrew.gospodarek@broadcom.com> <gospo@broadcom.com>
 Andy Green <andy@warmcat.com>
-Andy Moreton <amoreton@xilinx.com> <amoreton@solarflare.com>
+Andy Moreton <andy.moreton@amd.com> <amoreton@xilinx.com> <amoreton@solarflare.com>
 Andy Pei <andy.pei@intel.com>
 Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
 Ankur Dwivedi <adwivedi@marvell.com> <ankur.dwivedi@caviumnetworks.com> <ankur.dwivedi@cavium.com>
diff --git a/drivers/net/sfc/sfc_mae.c b/drivers/net/sfc/sfc_mae.c
index c7d28eae71..b61b9658e3 100644
--- a/drivers/net/sfc/sfc_mae.c
+++ b/drivers/net/sfc/sfc_mae.c
@@ -281,8 +281,10 @@ sfc_mae_attach(struct sfc_adapter *sa)
 		bounce_eh->buf_size = limits.eml_encap_header_size_limit;
 		bounce_eh->buf = rte_malloc("sfc_mae_bounce_eh",
 					    bounce_eh->buf_size, 0);
-		if (bounce_eh->buf == NULL)
+		if (bounce_eh->buf == NULL) {
+			rc = ENOMEM;
 			goto fail_mae_alloc_bounce_eh;
+		}

 		mae->nb_outer_rule_prios_max = limits.eml_max_n_outer_prios;
 		mae->nb_action_rule_prios_max = limits.eml_max_n_action_prios;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.775545900 +0800
+++ 0008-net-sfc-add-missing-error-code-indication-to-MAE-ini.patch	2023-10-22 22:17:34.136723700 +0800
@@ -1 +1 @@
-From 1f5e6bb633cafc2789ec74e80bf90fa54ef5b788 Mon Sep 17 00:00:00 2001
+From de4785693612482884881d5ba1ce189876b46613 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1f5e6bb633cafc2789ec74e80bf90fa54ef5b788 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 864d33ee46..ec31ab8bd0 100644
+index 6032ae9ea2..244b8d2544 100644
@@ -25 +27 @@
-@@ -106,7 +106,7 @@ Andriy Berestovskyy <aber@semihalf.com> <andriy.berestovskyy@caviumnetworks.com>
+@@ -103,7 +103,7 @@ Andriy Berestovskyy <aber@semihalf.com> <andriy.berestovskyy@caviumnetworks.com>
@@ -35 +37 @@
-index f5fe55b46f..bf1c2f60c2 100644
+index c7d28eae71..b61b9658e3 100644
@@ -38 +40 @@
-@@ -215,8 +215,10 @@ sfc_mae_attach(struct sfc_adapter *sa)
+@@ -281,8 +281,10 @@ sfc_mae_attach(struct sfc_adapter *sa)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/nfp: fix control message packets' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (7 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/sfc: add missing error code indication to MAE init path' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/hns3: fix VF default MAC modified when set failed' " Xueming Li
                   ` (132 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Long Wu; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=ce57bf585c8cbc35f56396a0249d4d259f4733a8

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ce57bf585c8cbc35f56396a0249d4d259f4733a8 Mon Sep 17 00:00:00 2001
From: Long Wu <long.wu@corigine.com>
Date: Thu, 13 Jul 2023 11:02:17 +0800
Subject: [PATCH] net/nfp: fix control message packets
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9dded5bc59acc33c56c7259ec4f482da9f5cec5e ]

If we add two cards that uses flower firmware into one dpdk-testpmd,
NFP PMD will printf error log. The reason is that the second card
uses the control VNIC Rx queue of the first card.

Because rte_eth_dma_zone_reserve() will reserve new DMA zone if
DMA zone's name is unique. But if there is already a zone with the
same name, rte_eth_dma_zone_reserve() will return the pointer of
the previously DMA zone. We try to reserve DMA zone for each card
but we use the same name to reserve.

We use the PCI address to give control VNIC a unique ring name
to avoid the above situation and let each NIC's ring have its
own DMA zone.

Fixes: 945441ebdb9c ("net/nfp: add flower ctrl VNIC")

Signed-off-by: Long Wu <long.wu@corigine.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/nfp/flower/nfp_flower.c | 32 +++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 9 deletions(-)

diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c
index 0661c38f08..c14a481a81 100644
--- a/drivers/net/nfp/flower/nfp_flower.c
+++ b/drivers/net/nfp/flower/nfp_flower.c
@@ -690,6 +690,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
 	int ret = 0;
 	uint16_t n_txq;
 	uint16_t n_rxq;
+	const char *pci_name;
 	unsigned int numa_node;
 	struct rte_mempool *mp;
 	struct nfp_net_rxq *rxq;
@@ -698,6 +699,8 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
 	struct rte_eth_dev *eth_dev;
 	const struct rte_memzone *tz;
 	struct nfp_app_fw_flower *app_fw_flower;
+	char ctrl_rxring_name[RTE_MEMZONE_NAMESIZE];
+	char ctrl_txring_name[RTE_MEMZONE_NAMESIZE];
 	char ctrl_pktmbuf_pool_name[RTE_MEMZONE_NAMESIZE];

 	/* Set up some pointers here for ease of use */
@@ -730,10 +733,12 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
 		goto eth_dev_cleanup;
 	}

+	pci_name = strchr(pf_dev->pci_dev->name, ':') + 1;
+
 	/* Create a mbuf pool for the ctrl vNIC */
 	numa_node = rte_socket_id();
 	snprintf(ctrl_pktmbuf_pool_name, sizeof(ctrl_pktmbuf_pool_name),
-			"%s_ctrlmp", pf_dev->pci_dev->device.name);
+			"%s_ctrlmp", pci_name);
 	app_fw_flower->ctrl_pktmbuf_pool =
 			rte_pktmbuf_pool_create(ctrl_pktmbuf_pool_name,
 			4 * CTRL_VNIC_NB_DESC, 64, 0, 9216, numa_node);
@@ -772,6 +777,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
 	eth_dev->data->nb_rx_queues = n_txq;
 	eth_dev->data->dev_private = hw;

+	snprintf(ctrl_rxring_name, sizeof(ctrl_rxring_name), "%s_ctrx_ring", pci_name);
 	/* Set up the Rx queues */
 	for (i = 0; i < n_rxq; i++) {
 		rxq = rte_zmalloc_socket("ethdev RX queue",
@@ -810,7 +816,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
 		 * handle the maximum ring size is allocated in order to allow for
 		 * resizing in later calls to the queue setup function.
 		 */
-		tz = rte_eth_dma_zone_reserve(eth_dev, "ctrl_rx_ring", i,
+		tz = rte_eth_dma_zone_reserve(eth_dev, ctrl_rxring_name, i,
 				sizeof(struct nfp_net_rx_desc) * NFP_NET_MAX_RX_DESC,
 				NFP_MEMZONE_ALIGN, numa_node);
 		if (tz == NULL) {
@@ -829,7 +835,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
 				sizeof(*rxq->rxbufs) * CTRL_VNIC_NB_DESC,
 				RTE_CACHE_LINE_SIZE, numa_node);
 		if (rxq->rxbufs == NULL) {
-			rte_eth_dma_zone_free(eth_dev, "ctrl_rx_ring", i);
+			rte_eth_dma_zone_free(eth_dev, ctrl_rxring_name, i);
 			rte_free(rxq);
 			ret = -ENOMEM;
 			goto rx_queue_setup_cleanup;
@@ -847,6 +853,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
 		nn_cfg_writeb(hw, NFP_NET_CFG_RXR_SZ(i), rte_log2_u32(CTRL_VNIC_NB_DESC));
 	}

+	snprintf(ctrl_txring_name, sizeof(ctrl_txring_name), "%s_cttx_ring", pci_name);
 	/* Set up the Tx queues */
 	for (i = 0; i < n_txq; i++) {
 		txq = rte_zmalloc_socket("ethdev TX queue",
@@ -865,7 +872,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
 		 * handle the maximum ring size is allocated in order to allow for
 		 * resizing in later calls to the queue setup function.
 		 */
-		tz = rte_eth_dma_zone_reserve(eth_dev, "ctrl_tx_ring", i,
+		tz = rte_eth_dma_zone_reserve(eth_dev, ctrl_txring_name, i,
 				sizeof(struct nfp_net_nfd3_tx_desc) * NFP_NET_MAX_TX_DESC,
 				NFP_MEMZONE_ALIGN, numa_node);
 		if (tz == NULL) {
@@ -895,7 +902,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
 				sizeof(*txq->txbufs) * CTRL_VNIC_NB_DESC,
 				RTE_CACHE_LINE_SIZE, numa_node);
 		if (txq->txbufs == NULL) {
-			rte_eth_dma_zone_free(eth_dev, "ctrl_tx_ring", i);
+			rte_eth_dma_zone_free(eth_dev, ctrl_txring_name, i);
 			rte_free(txq);
 			ret = -ENOMEM;
 			goto tx_queue_setup_cleanup;
@@ -920,7 +927,7 @@ tx_queue_setup_cleanup:
 		txq = eth_dev->data->tx_queues[i];
 		if (txq != NULL) {
 			rte_free(txq->txbufs);
-			rte_eth_dma_zone_free(eth_dev, "ctrl_tx_ring", i);
+			rte_eth_dma_zone_free(eth_dev, ctrl_txring_name, i);
 			rte_free(txq);
 		}
 	}
@@ -929,7 +936,7 @@ rx_queue_setup_cleanup:
 		rxq = eth_dev->data->rx_queues[i];
 		if (rxq != NULL) {
 			rte_free(rxq->rxbufs);
-			rte_eth_dma_zone_free(eth_dev, "ctrl_rx_ring", i);
+			rte_eth_dma_zone_free(eth_dev, ctrl_rxring_name, i);
 			rte_free(rxq);
 		}
 	}
@@ -950,28 +957,35 @@ static void
 nfp_flower_cleanup_ctrl_vnic(struct nfp_net_hw *hw)
 {
 	uint32_t i;
+	const char *pci_name;
 	struct nfp_net_rxq *rxq;
 	struct nfp_net_txq *txq;
 	struct rte_eth_dev *eth_dev;
 	struct nfp_app_fw_flower *app_fw_flower;
+	char ctrl_txring_name[RTE_MEMZONE_NAMESIZE];
+	char ctrl_rxring_name[RTE_MEMZONE_NAMESIZE];

 	eth_dev = hw->eth_dev;
 	app_fw_flower = NFP_PRIV_TO_APP_FW_FLOWER(hw->pf_dev->app_fw_priv);

+	pci_name = strchr(app_fw_flower->pf_hw->pf_dev->pci_dev->name, ':') + 1;
+
+	snprintf(ctrl_txring_name, sizeof(ctrl_txring_name), "%s_cttx_ring", pci_name);
 	for (i = 0; i < hw->max_tx_queues; i++) {
 		txq = eth_dev->data->tx_queues[i];
 		if (txq != NULL) {
 			rte_free(txq->txbufs);
-			rte_eth_dma_zone_free(eth_dev, "ctrl_tx_ring", i);
+			rte_eth_dma_zone_free(eth_dev, ctrl_txring_name, i);
 			rte_free(txq);
 		}
 	}

+	snprintf(ctrl_rxring_name, sizeof(ctrl_rxring_name), "%s_ctrx_ring", pci_name);
 	for (i = 0; i < hw->max_rx_queues; i++) {
 		rxq = eth_dev->data->rx_queues[i];
 		if (rxq != NULL) {
 			rte_free(rxq->rxbufs);
-			rte_eth_dma_zone_free(eth_dev, "ctrl_rx_ring", i);
+			rte_eth_dma_zone_free(eth_dev, ctrl_rxring_name, i);
 			rte_free(rxq);
 		}
 	}
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.815647400 +0800
+++ 0009-net-nfp-fix-control-message-packets.patch	2023-10-22 22:17:34.136723700 +0800
@@ -1 +1 @@
-From 9dded5bc59acc33c56c7259ec4f482da9f5cec5e Mon Sep 17 00:00:00 2001
+From ce57bf585c8cbc35f56396a0249d4d259f4733a8 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9dded5bc59acc33c56c7259ec4f482da9f5cec5e ]
@@ -21 +23,0 @@
-Cc: stable@dpdk.org
@@ -30 +32 @@
-index bbcfa6e66a..93aa618052 100644
+index 0661c38f08..c14a481a81 100644
@@ -33 +35 @@
-@@ -385,6 +385,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
+@@ -690,6 +690,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
@@ -41 +43 @@
-@@ -393,6 +394,8 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
+@@ -698,6 +699,8 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
@@ -50 +52 @@
-@@ -425,10 +428,12 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
+@@ -730,10 +733,12 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
@@ -59 +61 @@
--			"%s_ctrlmp", (strchr(pf_dev->pci_dev->name, ':') + 1));
+-			"%s_ctrlmp", pf_dev->pci_dev->device.name);
@@ -64 +66 @@
-@@ -467,6 +472,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
+@@ -772,6 +777,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
@@ -72 +74 @@
-@@ -502,7 +508,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
+@@ -810,7 +816,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
@@ -78,2 +80 @@
- 				sizeof(struct nfp_net_rx_desc) *
- 				hw->dev_info->max_qc_size,
+ 				sizeof(struct nfp_net_rx_desc) * NFP_NET_MAX_RX_DESC,
@@ -81 +82,2 @@
-@@ -522,7 +528,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
+ 		if (tz == NULL) {
+@@ -829,7 +835,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
@@ -90 +92 @@
-@@ -540,6 +546,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
+@@ -847,6 +853,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
@@ -98 +100 @@
-@@ -558,7 +565,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
+@@ -865,7 +872,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
@@ -104,2 +106 @@
- 				sizeof(struct nfp_net_nfd3_tx_desc) *
- 				hw->dev_info->max_qc_size,
+ 				sizeof(struct nfp_net_nfd3_tx_desc) * NFP_NET_MAX_TX_DESC,
@@ -107 +108,2 @@
-@@ -586,7 +593,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
+ 		if (tz == NULL) {
+@@ -895,7 +902,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)
@@ -116 +118 @@
-@@ -611,7 +618,7 @@ tx_queue_setup_cleanup:
+@@ -920,7 +927,7 @@ tx_queue_setup_cleanup:
@@ -125 +127 @@
-@@ -620,7 +627,7 @@ rx_queue_setup_cleanup:
+@@ -929,7 +936,7 @@ rx_queue_setup_cleanup:
@@ -134 +136 @@
-@@ -641,28 +648,35 @@ static void
+@@ -950,28 +957,35 @@ static void

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix VF default MAC modified when set failed' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (8 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/nfp: fix control message packets' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/hns3: fix error code for multicast resource' " Xueming Li
                   ` (131 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=25c73bdc492a75a7b69113af35dbbca3eae4b504

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 25c73bdc492a75a7b69113af35dbbca3eae4b504 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Sat, 5 Aug 2023 16:36:23 +0800
Subject: [PATCH] net/hns3: fix VF default MAC modified when set failed
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit ed7faab2a717347077d9e657fba010bb145a2b54 ]

When the VF fail to set the default MAC address,
"hw->mac.mac_addr" should not be updated.

Fixes: a5475d61fa34 ("net/hns3: support VF")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_ethdev_vf.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index 5aac62a41f..ad0ccb82fe 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -250,6 +250,8 @@ hns3vf_set_default_mac_addr(struct rte_eth_dev *dev,
 			hns3_err(hw, "Failed to set mac addr(%s) for vf: %d",
 				 mac_str, ret);
 		}
+		rte_spinlock_unlock(&hw->lock);
+		return ret;
 	}

 	rte_ether_addr_copy(mac_addr,
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.848352800 +0800
+++ 0010-net-hns3-fix-VF-default-MAC-modified-when-set-failed.patch	2023-10-22 22:17:34.136723700 +0800
@@ -1 +1 @@
-From ed7faab2a717347077d9e657fba010bb145a2b54 Mon Sep 17 00:00:00 2001
+From 25c73bdc492a75a7b69113af35dbbca3eae4b504 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ed7faab2a717347077d9e657fba010bb145a2b54 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 3729615159..007f5d619f 100644
+index 5aac62a41f..ad0ccb82fe 100644
@@ -22 +24 @@
-@@ -169,6 +169,8 @@ hns3vf_set_default_mac_addr(struct rte_eth_dev *dev,
+@@ -250,6 +250,8 @@ hns3vf_set_default_mac_addr(struct rte_eth_dev *dev,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix error code for multicast resource' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (9 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/hns3: fix VF default MAC modified when set failed' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/hns3: fix flushing multicast MAC address' " Xueming Li
                   ` (130 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=71c9f50273adb539a51f88743d3f8522806e2ac4

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 71c9f50273adb539a51f88743d3f8522806e2ac4 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Sat, 5 Aug 2023 16:36:24 +0800
Subject: [PATCH] net/hns3: fix error code for multicast resource
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c8cd885352d58bcfcc514770cb6068dd689d0dc3 ]

Return ENOSPC instead of EINVAL when the hardware
has not enough multicast filtering resources.

Fixes: 7d7f9f80bbfb ("net/hns3: support MAC address related operations")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c
index f077ef5057..c0db949eaa 100644
--- a/drivers/net/hns3/hns3_common.c
+++ b/drivers/net/hns3/hns3_common.c
@@ -351,7 +351,7 @@ hns3_set_mc_addr_chk_param(struct hns3_hw *hw,
 		hns3_err(hw, "failed to set mc mac addr, nb_mc_addr(%u) "
 			 "invalid. valid range: 0~%d",
 			 nb_mc_addr, HNS3_MC_MACADDR_NUM);
-		return -EINVAL;
+		return -ENOSPC;
 	}

 	/* Check if input mac addresses are valid */
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.881861100 +0800
+++ 0011-net-hns3-fix-error-code-for-multicast-resource.patch	2023-10-22 22:17:34.136723700 +0800
@@ -1 +1 @@
-From c8cd885352d58bcfcc514770cb6068dd689d0dc3 Mon Sep 17 00:00:00 2001
+From 71c9f50273adb539a51f88743d3f8522806e2ac4 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c8cd885352d58bcfcc514770cb6068dd689d0dc3 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index a11ea686fd..043c7673b4 100644
+index f077ef5057..c0db949eaa 100644
@@ -22 +24 @@
-@@ -386,7 +386,7 @@ hns3_set_mc_addr_chk_param(struct hns3_hw *hw,
+@@ -351,7 +351,7 @@ hns3_set_mc_addr_chk_param(struct hns3_hw *hw,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix flushing multicast MAC address' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (10 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/hns3: fix error code for multicast resource' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/hns3: fix traffic management thread safety' " Xueming Li
                   ` (129 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=15b43a21b222f5e01d8ff11b0aa466b1110e8278

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 15b43a21b222f5e01d8ff11b0aa466b1110e8278 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Sat, 5 Aug 2023 16:36:25 +0800
Subject: [PATCH] net/hns3: fix flushing multicast MAC address
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 49d1ab205b033b6131fb895b5e4d9ebc14081e51 ]

According rte_eth_dev_set_mc_addr_list() API definition,
support flush multicast MAC address if mc_addr_set is NULL
or nb_mc_addr is zero.

Fixes: 7d7f9f80bbfb ("net/hns3: support MAC address related operations")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_common.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c
index c0db949eaa..3dce7a9a31 100644
--- a/drivers/net/hns3/hns3_common.c
+++ b/drivers/net/hns3/hns3_common.c
@@ -409,6 +409,7 @@ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
 			  uint32_t nb_mc_addr)
 {
 	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
 	struct rte_ether_addr *addr;
 	int cur_addr_num;
 	int set_addr_num;
@@ -416,6 +417,15 @@ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
 	int ret;
 	int i;

+	if (mc_addr_set == NULL || nb_mc_addr == 0) {
+		rte_spinlock_lock(&hw->lock);
+		ret = hns3_configure_all_mc_mac_addr(hns, true);
+		if (ret == 0)
+			hw->mc_addrs_num = 0;
+		rte_spinlock_unlock(&hw->lock);
+		return ret;
+	}
+
 	/* Check if input parameters are valid */
 	ret = hns3_set_mc_addr_chk_param(hw, mc_addr_set, nb_mc_addr);
 	if (ret)
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.915214600 +0800
+++ 0012-net-hns3-fix-flushing-multicast-MAC-address.patch	2023-10-22 22:17:34.136723700 +0800
@@ -1 +1 @@
-From 49d1ab205b033b6131fb895b5e4d9ebc14081e51 Mon Sep 17 00:00:00 2001
+From 15b43a21b222f5e01d8ff11b0aa466b1110e8278 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 49d1ab205b033b6131fb895b5e4d9ebc14081e51 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 043c7673b4..c4d47f43fe 100644
+index c0db949eaa..3dce7a9a31 100644
@@ -23 +25 @@
-@@ -444,6 +444,7 @@ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
+@@ -409,6 +409,7 @@ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
@@ -31 +33 @@
-@@ -451,6 +452,15 @@ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
+@@ -416,6 +417,15 @@ hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix traffic management thread safety' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (11 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/hns3: fix flushing multicast MAC address' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/hns3: fix traffic management dump text alignment' " Xueming Li
                   ` (128 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Chengwen Feng; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=6961856e847409f1a18cc0e7c1f15411acf596bd

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6961856e847409f1a18cc0e7c1f15411acf596bd Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen@huawei.com>
Date: Sat, 5 Aug 2023 16:36:26 +0800
Subject: [PATCH] net/hns3: fix traffic management thread safety
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 69901040975bff8a38edfc47aee727cadc87d356 ]

The driver-related TM (traffic management) info is implemented through
the linked list. The following threads are involved in the read and
write of the TM info:

1. main thread: invokes the rte_tm_xxx() API family to modify or read.
2. interrupt thread: will read TM info in reset recover process.
3. telemetry/proc-info thread: invoke rte_eth_dev_priv_dump() API to
   read TM info.

Currently, thread safety protection of TM info is implemented only in
the following operations:
1. some of the rte_tm_xxx() API's implementation.
2. reset recover process.

Thread safety risks may exist in other scenarios, so fix by:
1. make sure all the rte_tm_xxx() API's implementations protected by
   hw.lock.
2. make sure rte_eth_dev_priv_dump() API's implementation protected
   by hw.lock.

Fixes: c09c7847d892 ("net/hns3: support traffic management")
Fixes: e4cfe6bb9114 ("net/hns3: dump TM configuration info")

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_dump.c |   8 +-
 drivers/net/hns3/hns3_tm.c   | 173 ++++++++++++++++++++++++++++++-----
 2 files changed, 157 insertions(+), 24 deletions(-)

diff --git a/drivers/net/hns3/hns3_dump.c b/drivers/net/hns3/hns3_dump.c
index ae62bb56c8..4cee779a78 100644
--- a/drivers/net/hns3/hns3_dump.c
+++ b/drivers/net/hns3/hns3_dump.c
@@ -914,6 +914,8 @@ hns3_eth_dev_priv_dump(struct rte_eth_dev *dev, FILE *file)
 	struct hns3_adapter *hns = dev->data->dev_private;
 	struct hns3_hw *hw = &hns->hw;

+	rte_spinlock_lock(&hw->lock);
+
 	hns3_get_device_basic_info(file, dev);
 	hns3_get_dev_feature_capability(file, hw);
 	hns3_get_rxtx_queue_info(file, dev);
@@ -923,8 +925,10 @@ hns3_eth_dev_priv_dump(struct rte_eth_dev *dev, FILE *file)
 	 * VF only supports dumping basic info, feature capability and queue
 	 * info.
 	 */
-	if (hns->is_vf)
+	if (hns->is_vf) {
+		rte_spinlock_unlock(&hw->lock);
 		return 0;
+	}

 	hns3_get_dev_mac_info(file, hns);
 	hns3_get_vlan_config_info(file, hw);
@@ -932,6 +936,8 @@ hns3_eth_dev_priv_dump(struct rte_eth_dev *dev, FILE *file)
 	hns3_get_tm_conf_info(file, dev);
 	hns3_get_flow_ctrl_info(file, dev);

+	rte_spinlock_unlock(&hw->lock);
+
 	return 0;
 }

diff --git a/drivers/net/hns3/hns3_tm.c b/drivers/net/hns3/hns3_tm.c
index e1089b6bd0..67402a700f 100644
--- a/drivers/net/hns3/hns3_tm.c
+++ b/drivers/net/hns3/hns3_tm.c
@@ -1081,21 +1081,6 @@ fail_clear:
 	return -EINVAL;
 }

-static int
-hns3_tm_hierarchy_commit_wrap(struct rte_eth_dev *dev,
-			      int clear_on_fail,
-			      struct rte_tm_error *error)
-{
-	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	int ret;
-
-	rte_spinlock_lock(&hw->lock);
-	ret = hns3_tm_hierarchy_commit(dev, clear_on_fail, error);
-	rte_spinlock_unlock(&hw->lock);
-
-	return ret;
-}
-
 static int
 hns3_tm_node_shaper_do_update(struct hns3_hw *hw,
 			      uint32_t node_id,
@@ -1195,6 +1180,148 @@ hns3_tm_node_shaper_update(struct rte_eth_dev *dev,
 	return 0;
 }

+static int
+hns3_tm_capabilities_get_wrap(struct rte_eth_dev *dev,
+			      struct rte_tm_capabilities *cap,
+			      struct rte_tm_error *error)
+{
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	int ret;
+
+	rte_spinlock_lock(&hw->lock);
+	ret = hns3_tm_capabilities_get(dev, cap, error);
+	rte_spinlock_unlock(&hw->lock);
+
+	return ret;
+}
+
+static int
+hns3_tm_shaper_profile_add_wrap(struct rte_eth_dev *dev,
+				uint32_t shaper_profile_id,
+				struct rte_tm_shaper_params *profile,
+				struct rte_tm_error *error)
+{
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	int ret;
+
+	rte_spinlock_lock(&hw->lock);
+	ret = hns3_tm_shaper_profile_add(dev, shaper_profile_id, profile, error);
+	rte_spinlock_unlock(&hw->lock);
+
+	return ret;
+}
+
+static int
+hns3_tm_shaper_profile_del_wrap(struct rte_eth_dev *dev,
+				uint32_t shaper_profile_id,
+				struct rte_tm_error *error)
+{
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	int ret;
+
+	rte_spinlock_lock(&hw->lock);
+	ret = hns3_tm_shaper_profile_del(dev, shaper_profile_id, error);
+	rte_spinlock_unlock(&hw->lock);
+
+	return ret;
+}
+
+static int
+hns3_tm_node_add_wrap(struct rte_eth_dev *dev, uint32_t node_id,
+		      uint32_t parent_node_id, uint32_t priority,
+		      uint32_t weight, uint32_t level_id,
+		      struct rte_tm_node_params *params,
+		      struct rte_tm_error *error)
+{
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	int ret;
+
+	rte_spinlock_lock(&hw->lock);
+	ret = hns3_tm_node_add(dev, node_id, parent_node_id, priority,
+			       weight, level_id, params, error);
+	rte_spinlock_unlock(&hw->lock);
+
+	return ret;
+}
+
+static int
+hns3_tm_node_delete_wrap(struct rte_eth_dev *dev,
+			 uint32_t node_id,
+			 struct rte_tm_error *error)
+{
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	int ret;
+
+	rte_spinlock_lock(&hw->lock);
+	ret = hns3_tm_node_delete(dev, node_id, error);
+	rte_spinlock_unlock(&hw->lock);
+
+	return ret;
+}
+
+static int
+hns3_tm_node_type_get_wrap(struct rte_eth_dev *dev,
+			   uint32_t node_id,
+			   int *is_leaf,
+			   struct rte_tm_error *error)
+{
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	int ret;
+
+	rte_spinlock_lock(&hw->lock);
+	ret = hns3_tm_node_type_get(dev, node_id, is_leaf, error);
+	rte_spinlock_unlock(&hw->lock);
+
+	return ret;
+}
+
+static int
+hns3_tm_level_capabilities_get_wrap(struct rte_eth_dev *dev,
+				    uint32_t level_id,
+				    struct rte_tm_level_capabilities *cap,
+				    struct rte_tm_error *error)
+{
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	int ret;
+
+	rte_spinlock_lock(&hw->lock);
+	ret = hns3_tm_level_capabilities_get(dev, level_id, cap, error);
+	rte_spinlock_unlock(&hw->lock);
+
+	return ret;
+}
+
+static int
+hns3_tm_node_capabilities_get_wrap(struct rte_eth_dev *dev,
+				   uint32_t node_id,
+				   struct rte_tm_node_capabilities *cap,
+				   struct rte_tm_error *error)
+{
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	int ret;
+
+	rte_spinlock_lock(&hw->lock);
+	ret = hns3_tm_node_capabilities_get(dev, node_id, cap, error);
+	rte_spinlock_unlock(&hw->lock);
+
+	return ret;
+}
+
+static int
+hns3_tm_hierarchy_commit_wrap(struct rte_eth_dev *dev,
+			      int clear_on_fail,
+			      struct rte_tm_error *error)
+{
+	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	int ret;
+
+	rte_spinlock_lock(&hw->lock);
+	ret = hns3_tm_hierarchy_commit(dev, clear_on_fail, error);
+	rte_spinlock_unlock(&hw->lock);
+
+	return ret;
+}
+
 static int
 hns3_tm_node_shaper_update_wrap(struct rte_eth_dev *dev,
 				uint32_t node_id,
@@ -1213,14 +1340,14 @@ hns3_tm_node_shaper_update_wrap(struct rte_eth_dev *dev,
 }

 static const struct rte_tm_ops hns3_tm_ops = {
-	.capabilities_get       = hns3_tm_capabilities_get,
-	.shaper_profile_add     = hns3_tm_shaper_profile_add,
-	.shaper_profile_delete  = hns3_tm_shaper_profile_del,
-	.node_add               = hns3_tm_node_add,
-	.node_delete            = hns3_tm_node_delete,
-	.node_type_get          = hns3_tm_node_type_get,
-	.level_capabilities_get = hns3_tm_level_capabilities_get,
-	.node_capabilities_get  = hns3_tm_node_capabilities_get,
+	.capabilities_get       = hns3_tm_capabilities_get_wrap,
+	.shaper_profile_add     = hns3_tm_shaper_profile_add_wrap,
+	.shaper_profile_delete  = hns3_tm_shaper_profile_del_wrap,
+	.node_add               = hns3_tm_node_add_wrap,
+	.node_delete            = hns3_tm_node_delete_wrap,
+	.node_type_get          = hns3_tm_node_type_get_wrap,
+	.level_capabilities_get = hns3_tm_level_capabilities_get_wrap,
+	.node_capabilities_get  = hns3_tm_node_capabilities_get_wrap,
 	.hierarchy_commit       = hns3_tm_hierarchy_commit_wrap,
 	.node_shaper_update     = hns3_tm_node_shaper_update_wrap,
 };
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.948117000 +0800
+++ 0013-net-hns3-fix-traffic-management-thread-safety.patch	2023-10-22 22:17:34.136723700 +0800
@@ -1 +1 @@
-From 69901040975bff8a38edfc47aee727cadc87d356 Mon Sep 17 00:00:00 2001
+From 6961856e847409f1a18cc0e7c1f15411acf596bd Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 69901040975bff8a38edfc47aee727cadc87d356 ]
@@ -28 +30,0 @@
-Cc: stable@dpdk.org
@@ -38 +40 @@
-index c0839380ea..67b45e6dc3 100644
+index ae62bb56c8..4cee779a78 100644
@@ -41 +43 @@
-@@ -918,6 +918,8 @@ hns3_eth_dev_priv_dump(struct rte_eth_dev *dev, FILE *file)
+@@ -914,6 +914,8 @@ hns3_eth_dev_priv_dump(struct rte_eth_dev *dev, FILE *file)
@@ -50 +52 @@
-@@ -927,8 +929,10 @@ hns3_eth_dev_priv_dump(struct rte_eth_dev *dev, FILE *file)
+@@ -923,8 +925,10 @@ hns3_eth_dev_priv_dump(struct rte_eth_dev *dev, FILE *file)
@@ -62 +64 @@
-@@ -936,6 +940,8 @@ hns3_eth_dev_priv_dump(struct rte_eth_dev *dev, FILE *file)
+@@ -932,6 +936,8 @@ hns3_eth_dev_priv_dump(struct rte_eth_dev *dev, FILE *file)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix traffic management dump text alignment' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (12 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/hns3: fix traffic management thread safety' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'app/test: fix reference to master in bonding test' " Xueming Li
                   ` (127 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Chengwen Feng; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=2dec2783a04cdeceaa01c04b85ba73d7f79d46f9

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 2dec2783a04cdeceaa01c04b85ba73d7f79d46f9 Mon Sep 17 00:00:00 2001
From: Chengwen Feng <fengchengwen@huawei.com>
Date: Sat, 5 Aug 2023 16:36:27 +0800
Subject: [PATCH] net/hns3: fix traffic management dump text alignment
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a73065bfea87385aa86d8ec2e7b65f68494c4f06 ]

Currently the dumped TM info is un-align, which are:
  - TM config info:
	  -- nb_leaf_nodes_max=64 nb_nodes_max=73
	  -- nb_shaper_profile=2 nb_tc_node=1 nb_queue_node=1
	  -- committed=0
  shaper_profile:
    id=800 reference_count=1 peak_rate=4000000Bps
    id=801 reference_count=1 peak_rate=12000000Bps
  port_node:
    ...

This patch fix it, the new formatting:
  - TM config info:
	  -- nb_leaf_nodes_max=256 nb_nodes_max=265
	  -- nb_shaper_profile=2 nb_tc_node=1 nb_queue_node=1
	  -- committed=1
	  -- shaper_profile:
	       id=800 reference_count=0 peak_rate=4000000Bps
	       id=801 reference_count=0 peak_rate=12000000Bps
	  -- port_node:
	       ...

Fixes: e4cfe6bb9114 ("net/hns3: dump TM configuration info")

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_dump.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/net/hns3/hns3_dump.c b/drivers/net/hns3/hns3_dump.c
index 4cee779a78..e3dbc5ea27 100644
--- a/drivers/net/hns3/hns3_dump.c
+++ b/drivers/net/hns3/hns3_dump.c
@@ -660,10 +660,10 @@ hns3_get_tm_conf_shaper_info(FILE *file, struct hns3_tm_conf *conf)
 	if (conf->nb_shaper_profile == 0)
 		return;

-	fprintf(file, "  shaper_profile:\n");
+	fprintf(file, "\t  -- shaper_profile:\n");
 	TAILQ_FOREACH(shaper_profile, shaper_profile_list, node) {
 		fprintf(file,
-			"    id=%u reference_count=%u peak_rate=%" PRIu64 "Bps\n",
+			"\t       id=%u reference_count=%u peak_rate=%" PRIu64 "Bps\n",
 			shaper_profile->shaper_profile_id,
 			shaper_profile->reference_count,
 			shaper_profile->profile.peak.rate);
@@ -677,8 +677,8 @@ hns3_get_tm_conf_port_node_info(FILE *file, struct hns3_tm_conf *conf)
 		return;

 	fprintf(file,
-		"  port_node:\n"
-		"    node_id=%u reference_count=%u shaper_profile_id=%d\n",
+		"\t  -- port_node:\n"
+		"\t       node_id=%u reference_count=%u shaper_profile_id=%d\n",
 		conf->root->id, conf->root->reference_count,
 		conf->root->shaper_profile ?
 		(int)conf->root->shaper_profile->shaper_profile_id : -1);
@@ -695,7 +695,7 @@ hns3_get_tm_conf_tc_node_info(FILE *file, struct hns3_tm_conf *conf)
 	if (conf->nb_tc_node == 0)
 		return;

-	fprintf(file, "  tc_node:\n");
+	fprintf(file, "\t  -- tc_node:\n");
 	memset(tc_node, 0, sizeof(tc_node));
 	TAILQ_FOREACH(tm_node, tc_list, node) {
 		tidx = hns3_tm_calc_node_tc_no(conf, tm_node->id);
@@ -708,7 +708,7 @@ hns3_get_tm_conf_tc_node_info(FILE *file, struct hns3_tm_conf *conf)
 		if (tm_node == NULL)
 			continue;
 		fprintf(file,
-			"    id=%u TC%u reference_count=%u parent_id=%d "
+			"\t       id=%u TC%u reference_count=%u parent_id=%d "
 			"shaper_profile_id=%d\n",
 			tm_node->id, hns3_tm_calc_node_tc_no(conf, tm_node->id),
 			tm_node->reference_count,
@@ -734,7 +734,7 @@ hns3_get_tm_conf_queue_format_info(FILE *file, struct hns3_tm_node **queue_node,
 		end_queue_id = (i + 1) * HNS3_PERLINE_QUEUES - 1;
 		if (end_queue_id > nb_tx_queues - 1)
 			end_queue_id = nb_tx_queues - 1;
-		fprintf(file, "    %04u - %04u | ", start_queue_id,
+		fprintf(file, "\t       %04u - %04u | ", start_queue_id,
 			end_queue_id);
 		for (j = start_queue_id; j < nb_tx_queues; j++) {
 			if (j >= end_queue_id + 1)
@@ -763,8 +763,8 @@ hns3_get_tm_conf_queue_node_info(FILE *file, struct hns3_tm_conf *conf,
 		return;

 	fprintf(file,
-		"  queue_node:\n"
-		"    tx queue id | mapped tc (8 mean node not exist)\n");
+		"\t  -- queue_node:\n"
+		"\t       tx queue id | mapped tc (8 mean node not exist)\n");

 	memset(queue_node, 0, sizeof(queue_node));
 	memset(queue_node_tc, 0, sizeof(queue_node_tc));
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:34.979383700 +0800
+++ 0014-net-hns3-fix-traffic-management-dump-text-alignment.patch	2023-10-22 22:17:34.146723700 +0800
@@ -1 +1 @@
-From a73065bfea87385aa86d8ec2e7b65f68494c4f06 Mon Sep 17 00:00:00 2001
+From 2dec2783a04cdeceaa01c04b85ba73d7f79d46f9 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a73065bfea87385aa86d8ec2e7b65f68494c4f06 ]
@@ -29 +31,0 @@
-Cc: stable@dpdk.org
@@ -38 +40 @@
-index 67b45e6dc3..5c21ff0a33 100644
+index 4cee779a78..e3dbc5ea27 100644
@@ -41 +43 @@
-@@ -664,10 +664,10 @@ hns3_get_tm_conf_shaper_info(FILE *file, struct hns3_tm_conf *conf)
+@@ -660,10 +660,10 @@ hns3_get_tm_conf_shaper_info(FILE *file, struct hns3_tm_conf *conf)
@@ -54 +56 @@
-@@ -681,8 +681,8 @@ hns3_get_tm_conf_port_node_info(FILE *file, struct hns3_tm_conf *conf)
+@@ -677,8 +677,8 @@ hns3_get_tm_conf_port_node_info(FILE *file, struct hns3_tm_conf *conf)
@@ -65 +67 @@
-@@ -699,7 +699,7 @@ hns3_get_tm_conf_tc_node_info(FILE *file, struct hns3_tm_conf *conf)
+@@ -695,7 +695,7 @@ hns3_get_tm_conf_tc_node_info(FILE *file, struct hns3_tm_conf *conf)
@@ -74 +76 @@
-@@ -712,7 +712,7 @@ hns3_get_tm_conf_tc_node_info(FILE *file, struct hns3_tm_conf *conf)
+@@ -708,7 +708,7 @@ hns3_get_tm_conf_tc_node_info(FILE *file, struct hns3_tm_conf *conf)
@@ -83 +85 @@
-@@ -738,7 +738,7 @@ hns3_get_tm_conf_queue_format_info(FILE *file, struct hns3_tm_node **queue_node,
+@@ -734,7 +734,7 @@ hns3_get_tm_conf_queue_format_info(FILE *file, struct hns3_tm_node **queue_node,
@@ -92 +94 @@
-@@ -767,8 +767,8 @@ hns3_get_tm_conf_queue_node_info(FILE *file, struct hns3_tm_conf *conf,
+@@ -763,8 +763,8 @@ hns3_get_tm_conf_queue_node_info(FILE *file, struct hns3_tm_conf *conf,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/test: fix reference to master in bonding test' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (13 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/hns3: fix traffic management dump text alignment' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/mana: enable 32-bit build' " Xueming Li
                   ` (126 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Tyler Retzlaff, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=b6200f6581b14b5de9759e4df3f858d822dfd7d5

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b6200f6581b14b5de9759e4df3f858d822dfd7d5 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 17 Aug 2023 19:44:48 -0700
Subject: [PATCH] app/test: fix reference to master in bonding test
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 61b52e7edb3a764699f0d392f298fca34d56c11d ]

Fixes: 0c8396e6d786 ("bond: unit tests for mode 5")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
 app/test/test_link_bonding.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test/test_link_bonding.c b/app/test/test_link_bonding.c
index 2f46e4c6ee..d74e2f5fca 100644
--- a/app/test/test_link_bonding.c
+++ b/app/test/test_link_bonding.c
@@ -4261,7 +4261,7 @@ test_tlb_tx_burst(void)
 			burst_size);
 	TEST_ASSERT_EQUAL(nb_tx, 0, " bad number of packet in burst");

-	/* Clean ugit checkout masterp and remove slaves from bonded device */
+	/* Clean up and remove members from bonding device */
 	return remove_slaves_and_stop_bonded_device();
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.012067000 +0800
+++ 0015-app-test-fix-reference-to-master-in-bonding-test.patch	2023-10-22 22:17:34.146723700 +0800
@@ -1 +1 @@
-From 61b52e7edb3a764699f0d392f298fca34d56c11d Mon Sep 17 00:00:00 2001
+From b6200f6581b14b5de9759e4df3f858d822dfd7d5 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 61b52e7edb3a764699f0d392f298fca34d56c11d ]
@@ -7 +9,0 @@
-Cc: stable@dpdk.org
@@ -16 +18 @@
-index f0050fa29a..4d715c4465 100644
+index 2f46e4c6ee..d74e2f5fca 100644
@@ -19 +21 @@
-@@ -4306,7 +4306,7 @@ test_tlb_tx_burst(void)
+@@ -4261,7 +4261,7 @@ test_tlb_tx_burst(void)
@@ -23 +25 @@
--	/* Clean ugit checkout masterp and remove members from bonding device */
+-	/* Clean ugit checkout masterp and remove slaves from bonded device */
@@ -25 +27 @@
- 	return remove_members_and_stop_bonding_device();
+ 	return remove_slaves_and_stop_bonded_device();

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mana: enable 32-bit build' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (14 preceding siblings ...)
  2023-10-22 14:20 ` patch 'app/test: fix reference to master in bonding test' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/mana: add 32-bit short doorbell' " Xueming Li
                   ` (125 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Wei Hu; +Cc: Long Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e9ead33c9da6f7ebc0bab4bf8aa2954059fe9e0e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e9ead33c9da6f7ebc0bab4bf8aa2954059fe9e0e Mon Sep 17 00:00:00 2001
From: Wei Hu <weh@microsoft.com>
Date: Thu, 21 Sep 2023 08:34:41 +0000
Subject: [PATCH] net/mana: enable 32-bit build
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 74decf3bf03cdd5a42e85085f2980e8d058c299c ]

Enable 32-bit build on x86 Linux. Fixed build warnings and errors
when building in 32-bit.

With this patch, mana will be able to build into 32-bit. However,
another patch for mana short doorbell support is needed to make
mana fully functional for 32-bit applications.

Signed-off-by: Wei Hu <weh@microsoft.com>
Acked-by: Long Li <longli@microsoft.com>
---
 drivers/net/mana/mana.c      |  2 +-
 drivers/net/mana/meson.build |  4 ++--
 drivers/net/mana/mr.c        | 18 +++++++++---------
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/net/mana/mana.c b/drivers/net/mana/mana.c
index 7630118d4f..896b53ed35 100644
--- a/drivers/net/mana/mana.c
+++ b/drivers/net/mana/mana.c
@@ -1260,7 +1260,7 @@ mana_probe_port(struct ibv_device *ibdev, struct ibv_device_attr_ex *dev_attr,
 	/* Create a parent domain with the port number */
 	attr.pd = priv->ib_pd;
 	attr.comp_mask = IBV_PARENT_DOMAIN_INIT_ATTR_PD_CONTEXT;
-	attr.pd_context = (void *)(uint64_t)port;
+	attr.pd_context = (void *)(uintptr_t)port;
 	priv->ib_parent_pd = ibv_alloc_parent_domain(ctx, &attr);
 	if (!priv->ib_parent_pd) {
 		DRV_LOG(ERR, "ibv_alloc_parent_domain failed port %d", port);
diff --git a/drivers/net/mana/meson.build b/drivers/net/mana/meson.build
index 493f0d26d4..2d72eca5a8 100644
--- a/drivers/net/mana/meson.build
+++ b/drivers/net/mana/meson.build
@@ -1,9 +1,9 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2022 Microsoft Corporation

-if not is_linux or not dpdk_conf.has('RTE_ARCH_X86_64')
+if not is_linux or not dpdk_conf.has('RTE_ARCH_X86')
     build = false
-    reason = 'only supported on x86_64 Linux'
+    reason = 'only supported on x86 Linux'
     subdir_done()
 endif

diff --git a/drivers/net/mana/mr.c b/drivers/net/mana/mr.c
index fec0dc961c..b8e6ea0bbf 100644
--- a/drivers/net/mana/mr.c
+++ b/drivers/net/mana/mr.c
@@ -53,7 +53,7 @@ mana_new_pmd_mr(struct mana_mr_btree *local_tree, struct mana_priv *priv,
 		}

 		DP_LOG(DEBUG,
-		       "registering memory chunk start 0x%" PRIx64 " len %u",
+		       "registering memory chunk start 0x%" PRIxPTR " len %u",
 		       ranges[i].start, ranges[i].len);

 		if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
@@ -62,7 +62,7 @@ mana_new_pmd_mr(struct mana_mr_btree *local_tree, struct mana_priv *priv,
 						    ranges[i].len);
 			if (ret) {
 				DP_LOG(ERR,
-				       "MR failed start 0x%" PRIx64 " len %u",
+				       "MR failed start 0x%" PRIxPTR " len %u",
 				       ranges[i].start, ranges[i].len);
 				return ret;
 			}
@@ -72,7 +72,7 @@ mana_new_pmd_mr(struct mana_mr_btree *local_tree, struct mana_priv *priv,
 		ibv_mr = ibv_reg_mr(priv->ib_pd, (void *)ranges[i].start,
 				    ranges[i].len, IBV_ACCESS_LOCAL_WRITE);
 		if (ibv_mr) {
-			DP_LOG(DEBUG, "MR lkey %u addr %p len %" PRIu64,
+			DP_LOG(DEBUG, "MR lkey %u addr %p len %zu",
 			       ibv_mr->lkey, ibv_mr->addr, ibv_mr->length);

 			mr = rte_calloc("MANA MR", 1, sizeof(*mr), 0);
@@ -99,7 +99,7 @@ mana_new_pmd_mr(struct mana_mr_btree *local_tree, struct mana_priv *priv,
 				return ret;
 			}
 		} else {
-			DP_LOG(ERR, "MR failed at 0x%" PRIx64 " len %u",
+			DP_LOG(ERR, "MR failed at 0x%" PRIxPTR " len %u",
 			       ranges[i].start, ranges[i].len);
 			return -errno;
 		}
@@ -141,7 +141,7 @@ try_again:
 	mr = mana_mr_btree_lookup(local_mr_btree, &idx,
 				  (uintptr_t)mbuf->buf_addr, mbuf->buf_len);
 	if (mr) {
-		DP_LOG(DEBUG, "Local mr lkey %u addr 0x%" PRIx64 " len %" PRIu64,
+		DP_LOG(DEBUG, "Local mr lkey %u addr 0x%" PRIxPTR " len %zu",
 		       mr->lkey, mr->addr, mr->len);
 		return mr;
 	}
@@ -162,7 +162,7 @@ try_again:
 		}

 		DP_LOG(DEBUG,
-		       "Added local MR key %u addr 0x%" PRIx64 " len %" PRIu64,
+		       "Added local MR key %u addr 0x%" PRIxPTR " len %zu",
 		       mr->lkey, mr->addr, mr->len);
 		return mr;
 	}
@@ -266,7 +266,7 @@ mana_mr_btree_lookup(struct mana_mr_btree *bt, uint16_t *idx,
 		return &table[base];

 	DP_LOG(DEBUG,
-	       "addr 0x%" PRIx64 " len %zu idx %u sum 0x%" PRIx64 " not found",
+	       "addr 0x%" PRIxPTR " len %zu idx %u sum 0x%" PRIxPTR " not found",
 	       addr, len, *idx, addr + len);

 	return NULL;
@@ -316,7 +316,7 @@ mana_mr_btree_insert(struct mana_mr_btree *bt, struct mana_mr_cache *entry)
 	uint16_t shift;

 	if (mana_mr_btree_lookup(bt, &idx, entry->addr, entry->len)) {
-		DP_LOG(DEBUG, "Addr 0x%" PRIx64 " len %zu exists in btree",
+		DP_LOG(DEBUG, "Addr 0x%" PRIxPTR " len %zu exists in btree",
 		       entry->addr, entry->len);
 		return 0;
 	}
@@ -340,7 +340,7 @@ mana_mr_btree_insert(struct mana_mr_btree *bt, struct mana_mr_cache *entry)
 	bt->len++;

 	DP_LOG(DEBUG,
-	       "Inserted MR b-tree table %p idx %d addr 0x%" PRIx64 " len %zu",
+	       "Inserted MR b-tree table %p idx %d addr 0x%" PRIxPTR " len %zu",
 	       table, idx, entry->addr, entry->len);

 	return 0;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.048700300 +0800
+++ 0016-net-mana-enable-32-bit-build.patch	2023-10-22 22:17:34.146723700 +0800
@@ -1 +1 @@
-From 74decf3bf03cdd5a42e85085f2980e8d058c299c Mon Sep 17 00:00:00 2001
+From e9ead33c9da6f7ebc0bab4bf8aa2954059fe9e0e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 74decf3bf03cdd5a42e85085f2980e8d058c299c ]
@@ -12,2 +14,0 @@
-
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mana: add 32-bit short doorbell' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (15 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/mana: enable 32-bit build' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/hns3: fix order in NEON Rx' " Xueming Li
                   ` (124 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Wei Hu; +Cc: Long Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=0e82ee1363f32a269db86628489350b13de2c97a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 0e82ee1363f32a269db86628489350b13de2c97a Mon Sep 17 00:00:00 2001
From: Wei Hu <weh@microsoft.com>
Date: Thu, 21 Sep 2023 08:34:42 +0000
Subject: [PATCH] net/mana: add 32-bit short doorbell
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 26c6bdf3d1169e6e9ab04691a1088937137a6d5c ]

Add 32-bit short doorbell support.
Ring short doorbell when running in 32-bit applications.

Both 32-bit and 64-bit doorbells are supported by mana hardware on
same platform. 32-bit applications cannot use 64-bit doorbells.
64-bit applications can use 32-bit doorbells, however the performance
would greatly suffer and it is not recommended.

Signed-off-by: Wei Hu <weh@microsoft.com>
Acked-by: Long Li <longli@microsoft.com>
---
 .mailmap                |  1 +
 drivers/net/mana/gdma.c | 92 +++++++++++++++++++++++++++++++++++++++++
 drivers/net/mana/mana.h | 26 ++++++++++++
 drivers/net/mana/rx.c   | 45 ++++++++++++++++++++
 drivers/net/mana/tx.c   | 25 +++++++++++
 5 files changed, 189 insertions(+)

diff --git a/.mailmap b/.mailmap
index 244b8d2544..bde21e6e3c 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1442,6 +1442,7 @@ Wei Dai <wei.dai@intel.com>
 Weifeng Li <liweifeng96@126.com>
 Weiguo Li <liwg06@foxmail.com>
 Wei Huang <wei.huang@intel.com>
+Wei Hu <weh@microsoft.com>
 Wei Hu (Xavier) <xavier.huwei@huawei.com>
 WeiJie Zhuang <zhuangwj@gmail.com>
 Weiliang Luo <droidluo@gmail.com>
diff --git a/drivers/net/mana/gdma.c b/drivers/net/mana/gdma.c
index 65685fe236..7f66a7a7cf 100644
--- a/drivers/net/mana/gdma.c
+++ b/drivers/net/mana/gdma.c
@@ -166,6 +166,97 @@ gdma_post_work_request(struct mana_gdma_queue *queue,
 	return 0;
 }

+#ifdef RTE_ARCH_32
+union gdma_short_doorbell_entry {
+	uint32_t     as_uint32;
+
+	struct {
+		uint32_t tail_ptr_incr	: 16; /* Number of CQEs */
+		uint32_t id		: 12;
+		uint32_t reserved	: 3;
+		uint32_t arm		: 1;
+	} cq;
+
+	struct {
+		uint32_t tail_ptr_incr	: 16; /* In number of bytes */
+		uint32_t id		: 12;
+		uint32_t reserved	: 4;
+	} rq;
+
+	struct {
+		uint32_t tail_ptr_incr	: 16; /* In number of bytes */
+		uint32_t id		: 12;
+		uint32_t reserved	: 4;
+	} sq;
+
+	struct {
+		uint32_t tail_ptr_incr	: 16; /* Number of EQEs */
+		uint32_t id		: 12;
+		uint32_t reserved	: 3;
+		uint32_t arm		: 1;
+	} eq;
+}; /* HW DATA */
+
+enum {
+	DOORBELL_SHORT_OFFSET_SQ = 0x10,
+	DOORBELL_SHORT_OFFSET_RQ = 0x410,
+	DOORBELL_SHORT_OFFSET_CQ = 0x810,
+	DOORBELL_SHORT_OFFSET_EQ = 0xFF0,
+};
+
+/*
+ * Write to hardware doorbell to notify new activity.
+ */
+int
+mana_ring_short_doorbell(void *db_page, enum gdma_queue_types queue_type,
+			 uint32_t queue_id, uint32_t tail_incr, uint8_t arm)
+{
+	uint8_t *addr = db_page;
+	union gdma_short_doorbell_entry e = {};
+
+	if ((queue_id & ~GDMA_SHORT_DB_QID_MASK) ||
+	    (tail_incr & ~GDMA_SHORT_DB_INC_MASK)) {
+		DP_LOG(ERR, "%s: queue_id %u or "
+		       "tail_incr %u overflowed, queue type %d",
+		       __func__, queue_id, tail_incr, queue_type);
+		return -EINVAL;
+	}
+
+	switch (queue_type) {
+	case GDMA_QUEUE_SEND:
+		e.sq.id = queue_id;
+		e.sq.tail_ptr_incr = tail_incr;
+		addr += DOORBELL_SHORT_OFFSET_SQ;
+		break;
+
+	case GDMA_QUEUE_RECEIVE:
+		e.rq.id = queue_id;
+		e.rq.tail_ptr_incr = tail_incr;
+		addr += DOORBELL_SHORT_OFFSET_RQ;
+		break;
+
+	case GDMA_QUEUE_COMPLETION:
+		e.cq.id = queue_id;
+		e.cq.tail_ptr_incr = tail_incr;
+		e.cq.arm = arm;
+		addr += DOORBELL_SHORT_OFFSET_CQ;
+		break;
+
+	default:
+		DP_LOG(ERR, "Unsupported queue type %d", queue_type);
+		return -1;
+	}
+
+	/* Ensure all writes are done before ringing doorbell */
+	rte_wmb();
+
+	DP_LOG(DEBUG, "db_page %p addr %p queue_id %u type %u tail %u arm %u",
+	       db_page, addr, queue_id, queue_type, tail_incr, arm);
+
+	rte_write32(e.as_uint32, addr);
+	return 0;
+}
+#else
 union gdma_doorbell_entry {
 	uint64_t     as_uint64;

@@ -248,6 +339,7 @@ mana_ring_doorbell(void *db_page, enum gdma_queue_types queue_type,
 	rte_write64(e.as_uint64, addr);
 	return 0;
 }
+#endif

 /*
  * Poll completion queue for completions.
diff --git a/drivers/net/mana/mana.h b/drivers/net/mana/mana.h
index 7dfacd57f3..cd877afcf9 100644
--- a/drivers/net/mana/mana.h
+++ b/drivers/net/mana/mana.h
@@ -50,6 +50,21 @@ struct mana_shared_data {
 #define MAX_TX_WQE_SIZE 512
 #define MAX_RX_WQE_SIZE 256

+/* For 32 bit only */
+#ifdef RTE_ARCH_32
+#define	GDMA_SHORT_DB_INC_MASK 0xffff
+#define	GDMA_SHORT_DB_QID_MASK 0xfff
+
+#define GDMA_SHORT_DB_MAX_WQE	(0x10000 / GDMA_WQE_ALIGNMENT_UNIT_SIZE)
+
+#define TX_WQE_SHORT_DB_THRESHOLD			\
+	(GDMA_SHORT_DB_MAX_WQE -			\
+	(MAX_TX_WQE_SIZE / GDMA_WQE_ALIGNMENT_UNIT_SIZE))
+#define RX_WQE_SHORT_DB_THRESHOLD			\
+	(GDMA_SHORT_DB_MAX_WQE -			\
+	(MAX_RX_WQE_SIZE / GDMA_WQE_ALIGNMENT_UNIT_SIZE))
+#endif
+
 /* Values from the GDMA specification document, WQE format description */
 #define INLINE_OOB_SMALL_SIZE_IN_BYTES 8
 #define INLINE_OOB_LARGE_SIZE_IN_BYTES 24
@@ -424,6 +439,11 @@ struct mana_rxq {
 	 */
 	uint32_t desc_ring_head, desc_ring_tail;

+#ifdef RTE_ARCH_32
+	/* For storing wqe increment count btw each short doorbell ring */
+	uint32_t wqe_cnt_to_short_db;
+#endif
+
 	struct mana_gdma_queue gdma_rq;
 	struct mana_gdma_queue gdma_cq;
 	struct gdma_comp *gdma_comp_buf;
@@ -450,8 +470,14 @@ extern int mana_logtype_init;

 #define PMD_INIT_FUNC_TRACE() PMD_INIT_LOG(DEBUG, " >>")

+#ifdef RTE_ARCH_32
+int mana_ring_short_doorbell(void *db_page, enum gdma_queue_types queue_type,
+			     uint32_t queue_id, uint32_t tail_incr,
+			     uint8_t arm);
+#else
 int mana_ring_doorbell(void *db_page, enum gdma_queue_types queue_type,
 		       uint32_t queue_id, uint32_t tail, uint8_t arm);
+#endif
 int mana_rq_ring_doorbell(struct mana_rxq *rxq);

 int gdma_post_work_request(struct mana_gdma_queue *queue,
diff --git a/drivers/net/mana/rx.c b/drivers/net/mana/rx.c
index fdb56ce05d..371510b473 100644
--- a/drivers/net/mana/rx.c
+++ b/drivers/net/mana/rx.c
@@ -39,10 +39,18 @@ mana_rq_ring_doorbell(struct mana_rxq *rxq)
 	/* Hardware Spec specifies that software client should set 0 for
 	 * wqe_cnt for Receive Queues.
 	 */
+#ifdef RTE_ARCH_32
+	ret = mana_ring_short_doorbell(db_page, GDMA_QUEUE_RECEIVE,
+			 rxq->gdma_rq.id,
+			 rxq->wqe_cnt_to_short_db *
+				GDMA_WQE_ALIGNMENT_UNIT_SIZE,
+			 0);
+#else
 	ret = mana_ring_doorbell(db_page, GDMA_QUEUE_RECEIVE,
 			 rxq->gdma_rq.id,
 			 rxq->gdma_rq.head * GDMA_WQE_ALIGNMENT_UNIT_SIZE,
 			 0);
+#endif

 	if (ret)
 		DP_LOG(ERR, "failed to ring RX doorbell ret %d", ret);
@@ -97,6 +105,9 @@ mana_alloc_and_post_rx_wqe(struct mana_rxq *rxq)
 		/* update queue for tracking pending packets */
 		desc->pkt = mbuf;
 		desc->wqe_size_in_bu = wqe_size_in_bu;
+#ifdef RTE_ARCH_32
+		rxq->wqe_cnt_to_short_db += wqe_size_in_bu;
+#endif
 		rxq->desc_ring_head = (rxq->desc_ring_head + 1) % rxq->num_desc;
 	} else {
 		DP_LOG(DEBUG, "failed to post recv ret %d", ret);
@@ -115,12 +126,22 @@ mana_alloc_and_post_rx_wqes(struct mana_rxq *rxq)
 	int ret;
 	uint32_t i;

+#ifdef RTE_ARCH_32
+	rxq->wqe_cnt_to_short_db = 0;
+#endif
 	for (i = 0; i < rxq->num_desc; i++) {
 		ret = mana_alloc_and_post_rx_wqe(rxq);
 		if (ret) {
 			DP_LOG(ERR, "failed to post RX ret = %d", ret);
 			return ret;
 		}
+
+#ifdef RTE_ARCH_32
+		if (rxq->wqe_cnt_to_short_db > RX_WQE_SHORT_DB_THRESHOLD) {
+			mana_rq_ring_doorbell(rxq);
+			rxq->wqe_cnt_to_short_db = 0;
+		}
+#endif
 	}

 	mana_rq_ring_doorbell(rxq);
@@ -389,6 +410,10 @@ mana_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)
 	struct rte_mbuf *mbuf;
 	int ret;
 	uint32_t num_pkts;
+#ifdef RTE_ARCH_32
+	rxq->wqe_cnt_to_short_db = 0;
+#endif
+

 	num_pkts = gdma_poll_completion_queue(&rxq->gdma_cq, rxq->gdma_comp_buf, pkts_n);
 	for (uint32_t i = 0; i < num_pkts; i++) {
@@ -470,6 +495,16 @@ drop:
 		}

 		wqe_posted++;
+
+#ifdef RTE_ARCH_32
+		/* Ring short doorbell if approaching the wqe increment
+		 * limit.
+		 */
+		if (rxq->wqe_cnt_to_short_db > RX_WQE_SHORT_DB_THRESHOLD) {
+			mana_rq_ring_doorbell(rxq);
+			rxq->wqe_cnt_to_short_db = 0;
+		}
+#endif
 	}

 	if (wqe_posted)
@@ -478,6 +513,15 @@ drop:
 	return pkt_received;
 }

+#ifdef RTE_ARCH_32
+static int
+mana_arm_cq(struct mana_rxq *rxq __rte_unused, uint8_t arm __rte_unused)
+{
+	DP_LOG(ERR, "Do not support in 32 bit");
+
+	return -ENODEV;
+}
+#else
 static int
 mana_arm_cq(struct mana_rxq *rxq, uint8_t arm)
 {
@@ -491,6 +535,7 @@ mana_arm_cq(struct mana_rxq *rxq, uint8_t arm)
 	return mana_ring_doorbell(priv->db_page, GDMA_QUEUE_COMPLETION,
 				  rxq->gdma_cq.id, head, arm);
 }
+#endif

 int
 mana_rx_intr_enable(struct rte_eth_dev *dev, uint16_t rx_queue_id)
diff --git a/drivers/net/mana/tx.c b/drivers/net/mana/tx.c
index 39cc59550e..3e255157f9 100644
--- a/drivers/net/mana/tx.c
+++ b/drivers/net/mana/tx.c
@@ -174,6 +174,9 @@ mana_tx_burst(void *dpdk_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 	void *db_page;
 	uint16_t pkt_sent = 0;
 	uint32_t num_comp;
+#ifdef RTE_ARCH_32
+	uint32_t wqe_count = 0;
+#endif

 	/* Process send completions from GDMA */
 	num_comp = gdma_poll_completion_queue(&txq->gdma_cq,
@@ -391,6 +394,20 @@ mana_tx_burst(void *dpdk_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)

 			DP_LOG(DEBUG, "nb_pkts %u pkt[%d] sent",
 			       nb_pkts, pkt_idx);
+#ifdef RTE_ARCH_32
+			wqe_count += wqe_size_in_bu;
+			if (wqe_count > TX_WQE_SHORT_DB_THRESHOLD) {
+				/* wqe_count approaching to short doorbell
+				 * increment limit. Stop processing further
+				 * more packets and just ring short
+				 * doorbell.
+				 */
+				DP_LOG(DEBUG, "wqe_count %u reaching limit, "
+				       "pkt_sent %d",
+				       wqe_count, pkt_sent);
+				break;
+			}
+#endif
 		} else {
 			DP_LOG(DEBUG, "pkt[%d] failed to post send ret %d",
 			       pkt_idx, ret);
@@ -409,11 +426,19 @@ mana_tx_burst(void *dpdk_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 	}

 	if (pkt_sent) {
+#ifdef RTE_ARCH_32
+		ret = mana_ring_short_doorbell(db_page, GDMA_QUEUE_SEND,
+					       txq->gdma_sq.id,
+					       wqe_count *
+						GDMA_WQE_ALIGNMENT_UNIT_SIZE,
+					       0);
+#else
 		ret = mana_ring_doorbell(db_page, GDMA_QUEUE_SEND,
 					 txq->gdma_sq.id,
 					 txq->gdma_sq.head *
 						GDMA_WQE_ALIGNMENT_UNIT_SIZE,
 					 0);
+#endif
 		if (ret)
 			DP_LOG(ERR, "mana_ring_doorbell failed ret %d", ret);
 	}
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.082493000 +0800
+++ 0017-net-mana-add-32-bit-short-doorbell.patch	2023-10-22 22:17:34.146723700 +0800
@@ -1 +1 @@
-From 26c6bdf3d1169e6e9ab04691a1088937137a6d5c Mon Sep 17 00:00:00 2001
+From 0e82ee1363f32a269db86628489350b13de2c97a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 26c6bdf3d1169e6e9ab04691a1088937137a6d5c ]
@@ -14,2 +16,0 @@
-Cc: stable@dpdk.org
-
@@ -27 +28 @@
-index ec31ab8bd0..276325211c 100644
+index 244b8d2544..bde21e6e3c 100644
@@ -30 +31 @@
-@@ -1481,6 +1481,7 @@ Wei Dai <wei.dai@intel.com>
+@@ -1442,6 +1442,7 @@ Wei Dai <wei.dai@intel.com>
@@ -149 +150 @@
-index 5801491d75..74e37706be 100644
+index 7dfacd57f3..cd877afcf9 100644
@@ -174 +175 @@
-@@ -425,6 +440,11 @@ struct mana_rxq {
+@@ -424,6 +439,11 @@ struct mana_rxq {
@@ -186 +187 @@
-@@ -455,8 +475,14 @@ extern int mana_logtype_init;
+@@ -450,8 +470,14 @@ extern int mana_logtype_init;
@@ -202 +203 @@
-index 14d9085801..fc1587e206 100644
+index fdb56ce05d..371510b473 100644
@@ -257,4 +258,4 @@
-@@ -397,6 +418,10 @@ mana_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)
- 	uint32_t i;
- 	int polled = 0;
-
+@@ -389,6 +410,10 @@ mana_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)
+ 	struct rte_mbuf *mbuf;
+ 	int ret;
+ 	uint32_t num_pkts;
@@ -265,4 +266,6 @@
- repoll:
- 	/* Polling on new completions if we have no backlog */
- 	if (rxq->comp_buf_idx == rxq->comp_buf_len) {
-@@ -505,6 +530,16 @@ drop:
+
+ 	num_pkts = gdma_poll_completion_queue(&rxq->gdma_cq, rxq->gdma_comp_buf, pkts_n);
+ 	for (uint32_t i = 0; i < num_pkts; i++) {
+@@ -470,6 +495,16 @@ drop:
+ 		}
+
@@ -270,2 +272,0 @@
- 		if (pkt_received == pkts_n)
- 			break;
@@ -284,2 +285,2 @@
- 	rxq->backlog_idx = pkt_idx;
-@@ -525,6 +560,15 @@ drop:
+ 	if (wqe_posted)
+@@ -478,6 +513,15 @@ drop:
@@ -301 +302 @@
-@@ -538,6 +582,7 @@ mana_arm_cq(struct mana_rxq *rxq, uint8_t arm)
+@@ -491,6 +535,7 @@ mana_arm_cq(struct mana_rxq *rxq, uint8_t arm)
@@ -310 +311 @@
-index 11ba2ee1ac..1e2508e1f2 100644
+index 39cc59550e..3e255157f9 100644
@@ -313 +314 @@
-@@ -176,6 +176,9 @@ mana_tx_burst(void *dpdk_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -174,6 +174,9 @@ mana_tx_burst(void *dpdk_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
@@ -316 +317 @@
- 	uint32_t num_comp, i;
+ 	uint32_t num_comp;
@@ -323 +324 @@
-@@ -418,6 +421,20 @@ mana_tx_burst(void *dpdk_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -391,6 +394,20 @@ mana_tx_burst(void *dpdk_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
@@ -344 +345 @@
-@@ -436,11 +453,19 @@ mana_tx_burst(void *dpdk_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -409,11 +426,19 @@ mana_tx_burst(void *dpdk_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix order in NEON Rx' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (16 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/mana: add 32-bit short doorbell' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'random: initialize state for unregistered non-EAL threads' " Xueming Li
                   ` (123 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Huisong Li; +Cc: Dongdong Liu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=4e986000b127ffe1e8f127893201889e0be869af

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 4e986000b127ffe1e8f127893201889e0be869af Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Tue, 11 Jul 2023 18:24:45 +0800
Subject: [PATCH] net/hns3: fix order in NEON Rx
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 7dd439ed998c36c8d0204c436cc656af08cfa5fc ]

This patch reorders the order of the NEON Rx for better maintenance
and easier understanding.

Fixes: a3d4f4d291d7 ("net/hns3: support NEON Rx")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 drivers/net/hns3/hns3_rxtx_vec_neon.h | 78 +++++++++++----------------
 1 file changed, 31 insertions(+), 47 deletions(-)

diff --git a/drivers/net/hns3/hns3_rxtx_vec_neon.h b/drivers/net/hns3/hns3_rxtx_vec_neon.h
index a20a6b6acb..1048b9db87 100644
--- a/drivers/net/hns3/hns3_rxtx_vec_neon.h
+++ b/drivers/net/hns3/hns3_rxtx_vec_neon.h
@@ -180,19 +180,12 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
 		bd_vld = vset_lane_u16(rxdp[2].rx.bdtype_vld_udp0, bd_vld, 2);
 		bd_vld = vset_lane_u16(rxdp[3].rx.bdtype_vld_udp0, bd_vld, 3);

-		/* load 2 mbuf pointer */
-		mbp1 = vld1q_u64((uint64_t *)&sw_ring[pos]);
-
 		bd_vld = vshl_n_u16(bd_vld,
 				    HNS3_UINT16_BIT - 1 - HNS3_RXD_VLD_B);
 		bd_vld = vreinterpret_u16_s16(
 				vshr_n_s16(vreinterpret_s16_u16(bd_vld),
 					   HNS3_UINT16_BIT - 1));
 		stat = ~vget_lane_u64(vreinterpret_u64_u16(bd_vld), 0);
-
-		/* load 2 mbuf pointer again */
-		mbp2 = vld1q_u64((uint64_t *)&sw_ring[pos + 2]);
-
 		if (likely(stat == 0))
 			bd_valid_num = HNS3_DEFAULT_DESCS_PER_LOOP;
 		else
@@ -200,20 +193,20 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
 		if (bd_valid_num == 0)
 			break;

-		/* use offset to control below data load oper ordering */
-		offset = rxq->offset_table[bd_valid_num];
+		/* load 4 mbuf pointer */
+		mbp1 = vld1q_u64((uint64_t *)&sw_ring[pos]);
+		mbp2 = vld1q_u64((uint64_t *)&sw_ring[pos + 2]);

-		/* store 2 mbuf pointer into rx_pkts */
+		/* store 4 mbuf pointer into rx_pkts */
 		vst1q_u64((uint64_t *)&rx_pkts[pos], mbp1);
+		vst1q_u64((uint64_t *)&rx_pkts[pos + 2], mbp2);

-		/* read first two descs */
+		/* use offset to control below data load oper ordering */
+		offset = rxq->offset_table[bd_valid_num];
+
+		/* read 4 descs */
 		descs[0] = vld2q_u64((uint64_t *)(rxdp + offset));
 		descs[1] = vld2q_u64((uint64_t *)(rxdp + offset + 1));
-
-		/* store 2 mbuf pointer into rx_pkts again */
-		vst1q_u64((uint64_t *)&rx_pkts[pos + 2], mbp2);
-
-		/* read remains two descs */
 		descs[2] = vld2q_u64((uint64_t *)(rxdp + offset + 2));
 		descs[3] = vld2q_u64((uint64_t *)(rxdp + offset + 3));

@@ -221,56 +214,47 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
 		pkt_mbuf1.val[1] = vreinterpretq_u8_u64(descs[0].val[1]);
 		pkt_mbuf2.val[0] = vreinterpretq_u8_u64(descs[1].val[0]);
 		pkt_mbuf2.val[1] = vreinterpretq_u8_u64(descs[1].val[1]);
+		pkt_mbuf3.val[0] = vreinterpretq_u8_u64(descs[2].val[0]);
+		pkt_mbuf3.val[1] = vreinterpretq_u8_u64(descs[2].val[1]);
+		pkt_mbuf4.val[0] = vreinterpretq_u8_u64(descs[3].val[0]);
+		pkt_mbuf4.val[1] = vreinterpretq_u8_u64(descs[3].val[1]);

-		/* pkt 1,2 convert format from desc to pktmbuf */
+		/* 4 packets convert format from desc to pktmbuf */
 		pkt_mb1 = vqtbl2q_u8(pkt_mbuf1, shuf_desc_fields_msk);
 		pkt_mb2 = vqtbl2q_u8(pkt_mbuf2, shuf_desc_fields_msk);
+		pkt_mb3 = vqtbl2q_u8(pkt_mbuf3, shuf_desc_fields_msk);
+		pkt_mb4 = vqtbl2q_u8(pkt_mbuf4, shuf_desc_fields_msk);

-		/* store the first 8 bytes of pkt 1,2 mbuf's rearm_data */
-		*(uint64_t *)&sw_ring[pos + 0].mbuf->rearm_data =
-			rxq->mbuf_initializer;
-		*(uint64_t *)&sw_ring[pos + 1].mbuf->rearm_data =
-			rxq->mbuf_initializer;
-
-		/* pkt 1,2 remove crc */
+		/* 4 packets remove crc */
 		tmp = vsubq_u16(vreinterpretq_u16_u8(pkt_mb1), crc_adjust);
 		pkt_mb1 = vreinterpretq_u8_u16(tmp);
 		tmp = vsubq_u16(vreinterpretq_u16_u8(pkt_mb2), crc_adjust);
 		pkt_mb2 = vreinterpretq_u8_u16(tmp);
+		tmp = vsubq_u16(vreinterpretq_u16_u8(pkt_mb3), crc_adjust);
+		pkt_mb3 = vreinterpretq_u8_u16(tmp);
+		tmp = vsubq_u16(vreinterpretq_u16_u8(pkt_mb4), crc_adjust);
+		pkt_mb4 = vreinterpretq_u8_u16(tmp);

-		pkt_mbuf3.val[0] = vreinterpretq_u8_u64(descs[2].val[0]);
-		pkt_mbuf3.val[1] = vreinterpretq_u8_u64(descs[2].val[1]);
-		pkt_mbuf4.val[0] = vreinterpretq_u8_u64(descs[3].val[0]);
-		pkt_mbuf4.val[1] = vreinterpretq_u8_u64(descs[3].val[1]);
-
-		/* pkt 3,4 convert format from desc to pktmbuf */
-		pkt_mb3 = vqtbl2q_u8(pkt_mbuf3, shuf_desc_fields_msk);
-		pkt_mb4 = vqtbl2q_u8(pkt_mbuf4, shuf_desc_fields_msk);
-
-		/* pkt 1,2 save to rx_pkts mbuf */
+		/* save packet info to rx_pkts mbuf */
 		vst1q_u8((void *)&sw_ring[pos + 0].mbuf->rx_descriptor_fields1,
 			 pkt_mb1);
 		vst1q_u8((void *)&sw_ring[pos + 1].mbuf->rx_descriptor_fields1,
 			 pkt_mb2);
+		vst1q_u8((void *)&sw_ring[pos + 2].mbuf->rx_descriptor_fields1,
+			 pkt_mb3);
+		vst1q_u8((void *)&sw_ring[pos + 3].mbuf->rx_descriptor_fields1,
+			 pkt_mb4);

-		/* pkt 3,4 remove crc */
-		tmp = vsubq_u16(vreinterpretq_u16_u8(pkt_mb3), crc_adjust);
-		pkt_mb3 = vreinterpretq_u8_u16(tmp);
-		tmp = vsubq_u16(vreinterpretq_u16_u8(pkt_mb4), crc_adjust);
-		pkt_mb4 = vreinterpretq_u8_u16(tmp);
-
-		/* store the first 8 bytes of pkt 3,4 mbuf's rearm_data */
+		/* store the first 8 bytes of packets mbuf's rearm_data */
+		*(uint64_t *)&sw_ring[pos + 0].mbuf->rearm_data =
+			rxq->mbuf_initializer;
+		*(uint64_t *)&sw_ring[pos + 1].mbuf->rearm_data =
+			rxq->mbuf_initializer;
 		*(uint64_t *)&sw_ring[pos + 2].mbuf->rearm_data =
 			rxq->mbuf_initializer;
 		*(uint64_t *)&sw_ring[pos + 3].mbuf->rearm_data =
 			rxq->mbuf_initializer;

-		/* pkt 3,4 save to rx_pkts mbuf */
-		vst1q_u8((void *)&sw_ring[pos + 2].mbuf->rx_descriptor_fields1,
-			 pkt_mb3);
-		vst1q_u8((void *)&sw_ring[pos + 3].mbuf->rx_descriptor_fields1,
-			 pkt_mb4);
-
 		rte_prefetch_non_temporal(rxdp + HNS3_DEFAULT_DESCS_PER_LOOP);

 		parse_retcode = hns3_desc_parse_field(rxq, &sw_ring[pos],
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.115691100 +0800
+++ 0018-net-hns3-fix-order-in-NEON-Rx.patch	2023-10-22 22:17:34.156723700 +0800
@@ -1 +1 @@
-From 7dd439ed998c36c8d0204c436cc656af08cfa5fc Mon Sep 17 00:00:00 2001
+From 4e986000b127ffe1e8f127893201889e0be869af Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7dd439ed998c36c8d0204c436cc656af08cfa5fc ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 564d831a48..0dc6b9f0a2 100644
+index a20a6b6acb..1048b9db87 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'random: initialize state for unregistered non-EAL threads' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (17 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/hns3: fix order in NEON Rx' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'bus/dpaa: fix build with asserts for GCC 13' " Xueming Li
                   ` (122 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Morten Brørup, Mattias Rönnblom, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=517bb40874834adb14c9018e5b68a8ec048a970c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 517bb40874834adb14c9018e5b68a8ec048a970c Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 7 Sep 2023 08:24:55 -0700
Subject: [PATCH] random: initialize state for unregistered non-EAL threads
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3a4e21301c7a8bf709ff9e74d05628f87450a11e ]

The per-lcore PRNG was not initializing the rand_state of all
the lcores. Any usage of rte_random by an unregistered non-EAL thread
would use rand_states[RTE_MAX_LCORE] which was never initialized.

Fix by using RTE_DIM() which will get all lcores.

Fixes: 3f002f069612 ("eal: replace libc-based random generation with LFSR")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
---
 lib/eal/common/rte_random.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/eal/common/rte_random.c b/lib/eal/common/rte_random.c
index 166b0d8921..ac1bf6c6ee 100644
--- a/lib/eal/common/rte_random.c
+++ b/lib/eal/common/rte_random.c
@@ -79,7 +79,7 @@ rte_srand(uint64_t seed)
 	unsigned int lcore_id;

 	/* add lcore_id to seed to avoid having the same sequence */
-	for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++)
+	for (lcore_id = 0; lcore_id < RTE_DIM(rand_states); lcore_id++)
 		__rte_srand_lfsr258(seed + lcore_id, &rand_states[lcore_id]);
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.147981400 +0800
+++ 0019-random-initialize-state-for-unregistered-non-EAL-thr.patch	2023-10-22 22:17:34.156723700 +0800
@@ -1 +1 @@
-From 3a4e21301c7a8bf709ff9e74d05628f87450a11e Mon Sep 17 00:00:00 2001
+From 517bb40874834adb14c9018e5b68a8ec048a970c Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3a4e21301c7a8bf709ff9e74d05628f87450a11e ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index 53636331a2..812e5b4757 100644
+index 166b0d8921..ac1bf6c6ee 100644
@@ -29 +31 @@
-@@ -84,7 +84,7 @@ rte_srand(uint64_t seed)
+@@ -79,7 +79,7 @@ rte_srand(uint64_t seed)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'bus/dpaa: fix build with asserts for GCC 13' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (18 preceding siblings ...)
  2023-10-22 14:20 ` patch 'random: initialize state for unregistered non-EAL threads' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'gpu/cuda: fix build with external GDRCopy' " Xueming Li
                   ` (121 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Gagandeep Singh; +Cc: Hemant Agrawal, Jerin Jacob, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e55de889b7ffc4b604b4dd05f62b93cbdc8cd298

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e55de889b7ffc4b604b4dd05f62b93cbdc8cd298 Mon Sep 17 00:00:00 2001
From: Gagandeep Singh <g.singh@nxp.com>
Date: Fri, 21 Jul 2023 10:58:10 +0530
Subject: [PATCH] bus/dpaa: fix build with asserts for GCC 13
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3bcd5b3198d4a31176b1ac73fc7236a12186fffe ]

when RTE_ENABLE_ASSERT is enable, DPAA driver is doing
wrong NULL check on frame queue which allows the code
to have access to NULL address.
GCC v13 is giving array bounds error if code is
accessing any memory region less than 4KB.
This patch fixes this issue by adding proper NULL checks
on frame queue.

Bugzilla ID: 1233
Fixes: c47ff048b99a ("bus/dpaa: add QMAN driver core routines")

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
---
 drivers/bus/dpaa/base/qbman/qman.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/bus/dpaa/base/qbman/qman.c b/drivers/bus/dpaa/base/qbman/qman.c
index 3949bf8712..83db0a534e 100644
--- a/drivers/bus/dpaa/base/qbman/qman.c
+++ b/drivers/bus/dpaa/base/qbman/qman.c
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
  *
  * Copyright 2008-2016 Freescale Semiconductor Inc.
- * Copyright 2017,2019 NXP
+ * Copyright 2017,2019-2023 NXP
  *
  */

@@ -897,7 +897,7 @@ mr_loop:
 				/* Lookup in the retirement table */
 				fq = table_find_fq(p,
 						   be32_to_cpu(msg->fq.fqid));
-				DPAA_BUG_ON(!fq);
+				DPAA_BUG_ON(fq != NULL);
 				fq_state_change(p, fq, &swapped_msg, verb);
 				if (fq->cb.fqs)
 					fq->cb.fqs(p, fq, &swapped_msg);
@@ -909,6 +909,7 @@ mr_loop:
 #else
 				fq = (void *)(uintptr_t)msg->fq.contextB;
 #endif
+				DPAA_BUG_ON(fq != NULL);
 				fq_state_change(p, fq, msg, verb);
 				if (fq->cb.fqs)
 					fq->cb.fqs(p, fq, &swapped_msg);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.181718800 +0800
+++ 0020-bus-dpaa-fix-build-with-asserts-for-GCC-13.patch	2023-10-22 22:17:34.156723700 +0800
@@ -1 +1 @@
-From 3bcd5b3198d4a31176b1ac73fc7236a12186fffe Mon Sep 17 00:00:00 2001
+From e55de889b7ffc4b604b4dd05f62b93cbdc8cd298 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3bcd5b3198d4a31176b1ac73fc7236a12186fffe ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'gpu/cuda: fix build with external GDRCopy' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (19 preceding siblings ...)
  2023-10-22 14:20 ` patch 'bus/dpaa: fix build with asserts for GCC 13' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'mem: fix deadlock with multiprocess' " Xueming Li
                   ` (120 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Levend Sayar; +Cc: John Romein, Elena Agostini, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=01d3e3c456c9665b9e511bcebd849e85073f7c6b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 01d3e3c456c9665b9e511bcebd849e85073f7c6b Mon Sep 17 00:00:00 2001
From: Levend Sayar <levendsayar@gmail.com>
Date: Thu, 3 Aug 2023 19:25:12 +0300
Subject: [PATCH] gpu/cuda: fix build with external GDRCopy
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit cda3d17609c2cb81af67d5babbd0c1702b503fca ]

If gdrapi.h is available, meson sets DRIVERS_GPU_CUDA_GDRCOPY_H as 1.
This causes gdrcopy.c build to give an error;
because compiler can not find signature of getenv.
stdlib.h is included for the definition of getenv function.

Bugzilla ID: 1133
Fixes: ca12f5e8a7db ("gpu/cuda: mark unused GDRCopy functions parameters")

Reported-by: John Romein <romein@astron.nl>
Signed-off-by: Levend Sayar <levendsayar@gmail.com>
Acked-by: Elena Agostini <eagostini@nvidia.com>
---
 .mailmap                   | 1 +
 drivers/gpu/cuda/gdrcopy.c | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/.mailmap b/.mailmap
index bde21e6e3c..e2855454c2 100644
--- a/.mailmap
+++ b/.mailmap
@@ -646,6 +646,7 @@ John McNamara <john.mcnamara@intel.com>
 John Miller <john.miller@atomicrules.com>
 John OLoughlin <john.oloughlin@intel.com>
 John Ousterhout <ouster@cs.stanford.edu>
+John Romein <romein@astron.nl>
 John W. Linville <linville@tuxdriver.com>
 Jonas Pfefferle <jpf@zurich.ibm.com> <pepperjo@japf.ch>
 Jonathan Erb <jonathan.erb@banduracyber.com>
diff --git a/drivers/gpu/cuda/gdrcopy.c b/drivers/gpu/cuda/gdrcopy.c
index 322a5dbeb2..bd56b73ce4 100644
--- a/drivers/gpu/cuda/gdrcopy.c
+++ b/drivers/gpu/cuda/gdrcopy.c
@@ -6,6 +6,8 @@

 #ifdef DRIVERS_GPU_CUDA_GDRCOPY_H

+#include <stdlib.h>
+
 static void *gdrclib;
 static gdr_t (*sym_gdr_open)(void);
 static int (*sym_gdr_pin_buffer)(gdr_t g, unsigned long addr, size_t size,
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.219703500 +0800
+++ 0021-gpu-cuda-fix-build-with-external-GDRCopy.patch	2023-10-22 22:17:34.156723700 +0800
@@ -1 +1 @@
-From cda3d17609c2cb81af67d5babbd0c1702b503fca Mon Sep 17 00:00:00 2001
+From 01d3e3c456c9665b9e511bcebd849e85073f7c6b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit cda3d17609c2cb81af67d5babbd0c1702b503fca ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 1620455ef2..755a4da2cd 100644
+index bde21e6e3c..e2855454c2 100644
@@ -27 +29 @@
-@@ -664,6 +664,7 @@ John McNamara <john.mcnamara@intel.com>
+@@ -646,6 +646,7 @@ John McNamara <john.mcnamara@intel.com>

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'mem: fix deadlock with multiprocess' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (20 preceding siblings ...)
  2023-10-22 14:20 ` patch 'gpu/cuda: fix build with external GDRCopy' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'hash: align SSE lookup to scalar implementation' " Xueming Li
                   ` (119 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Artemy Kovalyov; +Cc: Dmitry Kozlyuk, Jonathan Erb, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=421c47495c84a17da80e90777da557315f946c2d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 421c47495c84a17da80e90777da557315f946c2d Mon Sep 17 00:00:00 2001
From: Artemy Kovalyov <artemyko@nvidia.com>
Date: Fri, 8 Sep 2023 16:17:35 +0300
Subject: [PATCH] mem: fix deadlock with multiprocess
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit f82c02d3791ca1cd4ea1baa549a7d25dc2aef767 ]

The issue arose due to changes in the DPDK read-write lock
implementation. Following these changes, the RW-lock no longer supports
recursion, implying that a single thread shouldn't obtain a read lock if
it already possesses one. The problem arises during initialization: the
rte_eal_init() function acquires the memory_hotplug_lock, and later on,
there are sequences of calls that acquire it again without releasing it.
* rte_eal_memory_init() -> eal_memalloc_init() -> rte_memseg_list_walk()
* rte_eal_memory_init() -> rte_eal_hugepage_init() ->
  eal_dynmem_hugepage_init() -> rte_memseg_list_walk()
This scenario introduces the risk of a potential deadlock when concurrent
write locks are applied to the same memory_hotplug_lock. To address this
locally, we resolved the issue by replacing rte_memseg_list_walk() with
rte_memseg_list_walk_thread_unsafe().

Bugzilla ID: 1277
Fixes: 832cecc03d77 ("rwlock: prevent readers from starving writers")

Signed-off-by: Artemy Kovalyov <artemyko@nvidia.com>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Tested-by: Jonathan Erb <jonathan.erb@threatblockr.com>
---
 .mailmap                             | 3 ++-
 lib/eal/common/eal_common_dynmem.c   | 5 ++++-
 lib/eal/include/generic/rte_rwlock.h | 4 ++++
 lib/eal/linux/eal_memalloc.c         | 7 +++++--
 4 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/.mailmap b/.mailmap
index e2855454c2..361e2dac4f 100644
--- a/.mailmap
+++ b/.mailmap
@@ -120,6 +120,7 @@ Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
 Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>
 Arnon Warshavsky <arnon@qwilt.com>
 Arshdeep Kaur <arshdeep.kaur@intel.com>
+Artemy Kovalyov <artemyko@nvidia.com>
 Artem V. Andreev <artem.andreev@oktetlabs.ru>
 Artur Rojek <ar@semihalf.com>
 Artur Trybula <arturx.trybula@intel.com>
@@ -649,7 +650,7 @@ John Ousterhout <ouster@cs.stanford.edu>
 John Romein <romein@astron.nl>
 John W. Linville <linville@tuxdriver.com>
 Jonas Pfefferle <jpf@zurich.ibm.com> <pepperjo@japf.ch>
-Jonathan Erb <jonathan.erb@banduracyber.com>
+Jonathan Erb <jonathan.erb@threatblockr.com> <jonathan.erb@banduracyber.com>
 Jon DeVree <nuxi@vault24.org>
 Jon Loeliger <jdl@netgate.com>
 Joongi Kim <joongi@an.kaist.ac.kr>
diff --git a/lib/eal/common/eal_common_dynmem.c b/lib/eal/common/eal_common_dynmem.c
index bdbbe233a0..95da55d9b0 100644
--- a/lib/eal/common/eal_common_dynmem.c
+++ b/lib/eal/common/eal_common_dynmem.c
@@ -251,7 +251,10 @@ eal_dynmem_hugepage_init(void)
 		 */
 		memset(&dummy, 0, sizeof(dummy));
 		dummy.hugepage_sz = hpi->hugepage_sz;
-		if (rte_memseg_list_walk(hugepage_count_walk, &dummy) < 0)
+		/*  memory_hotplug_lock is held during initialization, so it's
+		 *  safe to call thread-unsafe version.
+		 */
+		if (rte_memseg_list_walk_thread_unsafe(hugepage_count_walk, &dummy) < 0)
 			return -1;

 		for (i = 0; i < RTE_DIM(dummy.num_pages); i++) {
diff --git a/lib/eal/include/generic/rte_rwlock.h b/lib/eal/include/generic/rte_rwlock.h
index 233d4262be..e479daa867 100644
--- a/lib/eal/include/generic/rte_rwlock.h
+++ b/lib/eal/include/generic/rte_rwlock.h
@@ -79,6 +79,10 @@ rte_rwlock_init(rte_rwlock_t *rwl)
 /**
  * Take a read lock. Loop until the lock is held.
  *
+ * @note The RW lock isn't recursive, so calling this function on the same
+ * lock twice without releasing it could potentially result in a deadlock
+ * scenario when a write lock is involved.
+ *
  * @param rwl
  *   A pointer to a rwlock structure.
  */
diff --git a/lib/eal/linux/eal_memalloc.c b/lib/eal/linux/eal_memalloc.c
index f8b1588cae..9853ec78a2 100644
--- a/lib/eal/linux/eal_memalloc.c
+++ b/lib/eal/linux/eal_memalloc.c
@@ -1740,7 +1740,10 @@ eal_memalloc_init(void)
 		eal_get_internal_configuration();

 	if (rte_eal_process_type() == RTE_PROC_SECONDARY)
-		if (rte_memseg_list_walk(secondary_msl_create_walk, NULL) < 0)
+		/*  memory_hotplug_lock is held during initialization, so it's
+		 *  safe to call thread-unsafe version.
+		 */
+		if (rte_memseg_list_walk_thread_unsafe(secondary_msl_create_walk, NULL) < 0)
 			return -1;
 	if (rte_eal_process_type() == RTE_PROC_PRIMARY &&
 			internal_conf->in_memory) {
@@ -1778,7 +1781,7 @@ eal_memalloc_init(void)
 	}

 	/* initialize all of the fd lists */
-	if (rte_memseg_list_walk(fd_list_create_walk, NULL))
+	if (rte_memseg_list_walk_thread_unsafe(fd_list_create_walk, NULL))
 		return -1;
 	return 0;
 }
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.254253700 +0800
+++ 0022-mem-fix-deadlock-with-multiprocess.patch	2023-10-22 22:17:34.156723700 +0800
@@ -1 +1 @@
-From f82c02d3791ca1cd4ea1baa549a7d25dc2aef767 Mon Sep 17 00:00:00 2001
+From 421c47495c84a17da80e90777da557315f946c2d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit f82c02d3791ca1cd4ea1baa549a7d25dc2aef767 ]
@@ -22 +24,0 @@
-Cc: stable@dpdk.org
@@ -35 +37 @@
-index 755a4da2cd..bcb36bb5a5 100644
+index e2855454c2..361e2dac4f 100644
@@ -38 +40,2 @@
-@@ -126,6 +126,7 @@ Arnaud Fiorini <arnaud.fiorini@polymtl.ca>
+@@ -120,6 +120,7 @@ Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
+ Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>
@@ -41 +43,0 @@
- Artemii Morozov <artemii.morozov@arknetworks.am>
@@ -46 +48 @@
-@@ -667,7 +668,7 @@ John Ousterhout <ouster@cs.stanford.edu>
+@@ -649,7 +650,7 @@ John Ousterhout <ouster@cs.stanford.edu>
@@ -72 +74 @@
-index 75f2b75782..5f939be98c 100644
+index 233d4262be..e479daa867 100644
@@ -75 +77 @@
-@@ -81,6 +81,10 @@ rte_rwlock_init(rte_rwlock_t *rwl)
+@@ -79,6 +79,10 @@ rte_rwlock_init(rte_rwlock_t *rwl)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'hash: align SSE lookup to scalar implementation' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (21 preceding siblings ...)
  2023-10-22 14:20 ` patch 'mem: fix deadlock with multiprocess' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/netvsc: increase VSP response timeout to 60 seconds' " Xueming Li
                   ` (118 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Jieqiang Wang; +Cc: Feifei Wang, Ruifeng Wang, Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=af391d2427d78f3c4dbf2b3e581e0b5edf6ca1c8

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From af391d2427d78f3c4dbf2b3e581e0b5edf6ca1c8 Mon Sep 17 00:00:00 2001
From: Jieqiang Wang <jieqiang.wang@arm.com>
Date: Sat, 7 Oct 2023 15:36:34 +0800
Subject: [PATCH] hash: align SSE lookup to scalar implementation
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e93bbaa72cca7ec912d756afdf10e393f9d71791 ]

__mm_cmpeq_epi16 returns 0xFFFF if the corresponding 16-bit elements are
equal. In original SSE2 implementation for function compare_signatures,
it utilizes _mm_movemask_epi8 to create mask from the MSB of each 8-bit
element, while we should only care about the MSB of lower 8-bit in each
16-bit element.

For example, if the comparison result is all equal, SSE2 path returns
0xFFFF while NEON and default scalar path return 0x5555.
Although this bug is not causing any negative effects since the caller
function solely examines the trailing zeros of each match mask, we
recommend this fix to ensure consistency with NEON and default scalar
code behaviors.

Fixes: c7d93df552c2 ("hash: use partial-key hashing")

Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Signed-off-by: Jieqiang Wang <jieqiang.wang@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/hash/rte_cuckoo_hash.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/hash/rte_cuckoo_hash.c b/lib/hash/rte_cuckoo_hash.c
index 829b79c89a..a08b5dd875 100644
--- a/lib/hash/rte_cuckoo_hash.c
+++ b/lib/hash/rte_cuckoo_hash.c
@@ -1860,11 +1860,15 @@ compare_signatures(uint32_t *prim_hash_matches, uint32_t *sec_hash_matches,
 				_mm_load_si128(
 					(__m128i const *)prim_bkt->sig_current),
 				_mm_set1_epi16(sig)));
+		/* Extract the even-index bits only */
+		*prim_hash_matches &= 0x5555;
 		/* Compare all signatures in the bucket */
 		*sec_hash_matches = _mm_movemask_epi8(_mm_cmpeq_epi16(
 				_mm_load_si128(
 					(__m128i const *)sec_bkt->sig_current),
 				_mm_set1_epi16(sig)));
+		/* Extract the even-index bits only */
+		*sec_hash_matches &= 0x5555;
 		break;
 #elif defined(__ARM_NEON)
 	case RTE_HASH_COMPARE_NEON: {
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.298506800 +0800
+++ 0023-hash-align-SSE-lookup-to-scalar-implementation.patch	2023-10-22 22:17:34.156723700 +0800
@@ -1 +1 @@
-From e93bbaa72cca7ec912d756afdf10e393f9d71791 Mon Sep 17 00:00:00 2001
+From af391d2427d78f3c4dbf2b3e581e0b5edf6ca1c8 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e93bbaa72cca7ec912d756afdf10e393f9d71791 ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org
@@ -31 +33 @@
-index d92a903bb3..19b23f2a97 100644
+index 829b79c89a..a08b5dd875 100644
@@ -34 +36 @@
-@@ -1868,11 +1868,15 @@ compare_signatures(uint32_t *prim_hash_matches, uint32_t *sec_hash_matches,
+@@ -1860,11 +1860,15 @@ compare_signatures(uint32_t *prim_hash_matches, uint32_t *sec_hash_matches,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/netvsc: increase VSP response timeout to 60 seconds' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (22 preceding siblings ...)
  2023-10-22 14:20 ` patch 'hash: align SSE lookup to scalar implementation' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/txgbe: add Tx queue maximum limit' " Xueming Li
                   ` (117 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Long Li; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=64d7c1df889d7aaf68d519bc1f73c2c71f443694

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 64d7c1df889d7aaf68d519bc1f73c2c71f443694 Mon Sep 17 00:00:00 2001
From: Long Li <longli@microsoft.com>
Date: Wed, 26 Jul 2023 15:29:10 -0700
Subject: [PATCH] net/netvsc: increase VSP response timeout to 60 seconds
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit d56475174855b1454cf004025b54d68e4a47f465 ]

The current timeout is set to 5 seconds. In Azure, tests show that it
may take up to 15 seconds for VSP to respond on busy nodes. The VSP
schedules unbounded work to process VSC request, there is no upper limit
on how long it takes to send response back to VSC.

In the NETVSC kernel mode driver, it waits forever for VSP response.
While in DPDK we can't wait forever, setting the timeout to 60 seconds.

Signed-off-by: Long Li <longli@microsoft.com>
---
 drivers/net/netvsc/hn_rndis.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/netvsc/hn_rndis.c b/drivers/net/netvsc/hn_rndis.c
index 29c6009b2c..fe36274df8 100644
--- a/drivers/net/netvsc/hn_rndis.c
+++ b/drivers/net/netvsc/hn_rndis.c
@@ -35,7 +35,7 @@
 #include "hn_rndis.h"
 #include "ndis.h"

-#define RNDIS_TIMEOUT_SEC 5
+#define RNDIS_TIMEOUT_SEC 60
 #define RNDIS_DELAY_MS    10

 #define HN_RNDIS_XFER_SIZE		0x4000
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.341215900 +0800
+++ 0024-net-netvsc-increase-VSP-response-timeout-to-60-secon.patch	2023-10-22 22:17:34.166723700 +0800
@@ -1 +1 @@
-From d56475174855b1454cf004025b54d68e4a47f465 Mon Sep 17 00:00:00 2001
+From 64d7c1df889d7aaf68d519bc1f73c2c71f443694 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d56475174855b1454cf004025b54d68e4a47f465 ]
@@ -13,2 +15,0 @@
-
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/txgbe: add Tx queue maximum limit' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (23 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/netvsc: increase VSP response timeout to 60 seconds' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/txgbe: fix GRE tunnel packet checksum' " Xueming Li
                   ` (116 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=2c62e368053a7ce0c26f241844d04694c410927b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 2c62e368053a7ce0c26f241844d04694c410927b Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:48 +0800
Subject: [PATCH] net/txgbe: add Tx queue maximum limit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit afcba8586daa5abc3868180e96601babfef3cfc1 ]

Limit TX queue maximum to 64 when neither VT nor DCB are enabled,
since hardware doesn't support it.

Fixes: 75cbb1f0e8a6 ("net/txgbe: add device configuration")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_ethdev.c | 13 +++++++++++++
 drivers/net/txgbe/txgbe_ethdev.h |  1 +
 2 files changed, 14 insertions(+)

diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index 2c7d71c0db..7f0b3c9b50 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -1498,6 +1498,19 @@ txgbe_check_mq_mode(struct rte_eth_dev *dev)
 				return -EINVAL;
 			}
 		}
+
+		/*
+		 * When DCB/VT is off, maximum number of queues changes
+		 */
+		if (dev_conf->txmode.mq_mode == RTE_ETH_MQ_TX_NONE) {
+			if (nb_tx_q > TXGBE_NONE_MODE_TX_NB_QUEUES) {
+				PMD_INIT_LOG(ERR,
+					     "Neither VT nor DCB are enabled, "
+					     "nb_tx_q > %d.",
+					     TXGBE_NONE_MODE_TX_NB_QUEUES);
+				return -EINVAL;
+			}
+		}
 	}
 	return 0;
 }
diff --git a/drivers/net/txgbe/txgbe_ethdev.h b/drivers/net/txgbe/txgbe_ethdev.h
index b8a39204e2..545ce4c9e1 100644
--- a/drivers/net/txgbe/txgbe_ethdev.h
+++ b/drivers/net/txgbe/txgbe_ethdev.h
@@ -40,6 +40,7 @@
 /*Default value of Max Rx Queue*/
 #define TXGBE_MAX_RX_QUEUE_NUM	128
 #define TXGBE_VMDQ_DCB_NB_QUEUES     TXGBE_MAX_RX_QUEUE_NUM
+#define TXGBE_NONE_MODE_TX_NB_QUEUES 64

 #ifndef NBBY
 #define NBBY	8	/* number of bits in a byte */
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.368444200 +0800
+++ 0025-net-txgbe-add-Tx-queue-maximum-limit.patch	2023-10-22 22:17:34.166723700 +0800
@@ -1 +1 @@
-From afcba8586daa5abc3868180e96601babfef3cfc1 Mon Sep 17 00:00:00 2001
+From 2c62e368053a7ce0c26f241844d04694c410927b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit afcba8586daa5abc3868180e96601babfef3cfc1 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 15911a3621..479cd810f8 100644
+index 2c7d71c0db..7f0b3c9b50 100644
@@ -22 +24 @@
-@@ -1499,6 +1499,19 @@ txgbe_check_mq_mode(struct rte_eth_dev *dev)
+@@ -1498,6 +1498,19 @@ txgbe_check_mq_mode(struct rte_eth_dev *dev)
@@ -43 +45 @@
-index 6b296d6fd1..7feb45d0cf 100644
+index b8a39204e2..545ce4c9e1 100644
@@ -46 +48 @@
-@@ -41,6 +41,7 @@
+@@ -40,6 +40,7 @@

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/txgbe: fix GRE tunnel packet checksum' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (24 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/txgbe: add Tx queue maximum limit' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/ngbe: fix flow control' " Xueming Li
                   ` (115 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=ae0ac0ba92a3f377880ce4019585e653d34a4cc3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ae0ac0ba92a3f377880ce4019585e653d34a4cc3 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:49 +0800
Subject: [PATCH] net/txgbe: fix GRE tunnel packet checksum
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 5bbaf75ed6df2605a8cf780057211f2592add80d ]

Fix transmit context descriptor for GRE tunnel packet to make the
hardware compute the checksum successfully.

Fixes: e5ece1f467aa ("net/txgbe: fix VXLAN-GPE packet checksum")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_ptypes.c | 16 ----------------
 drivers/net/txgbe/txgbe_ptypes.h |  5 +++++
 drivers/net/txgbe/txgbe_rxtx.c   | 23 ++++++++++++-----------
 3 files changed, 17 insertions(+), 27 deletions(-)

diff --git a/drivers/net/txgbe/txgbe_ptypes.c b/drivers/net/txgbe/txgbe_ptypes.c
index e1299d7363..c444d5d3f1 100644
--- a/drivers/net/txgbe/txgbe_ptypes.c
+++ b/drivers/net/txgbe/txgbe_ptypes.c
@@ -320,8 +320,6 @@ txgbe_encode_ptype_tunnel(u32 ptype)
 		ptid |= TXGBE_PTID_TUN_EI;
 		break;
 	case RTE_PTYPE_TUNNEL_GRE:
-		ptid |= TXGBE_PTID_TUN_EIG;
-		break;
 	case RTE_PTYPE_TUNNEL_VXLAN:
 	case RTE_PTYPE_TUNNEL_VXLAN_GPE:
 	case RTE_PTYPE_TUNNEL_NVGRE:
@@ -332,20 +330,6 @@ txgbe_encode_ptype_tunnel(u32 ptype)
 		return ptid;
 	}

-	switch (ptype & RTE_PTYPE_INNER_L2_MASK) {
-	case RTE_PTYPE_INNER_L2_ETHER:
-		ptid |= TXGBE_PTID_TUN_EIGM;
-		break;
-	case RTE_PTYPE_INNER_L2_ETHER_VLAN:
-		ptid |= TXGBE_PTID_TUN_EIGMV;
-		break;
-	case RTE_PTYPE_INNER_L2_ETHER_QINQ:
-		ptid |= TXGBE_PTID_TUN_EIGMV;
-		break;
-	default:
-		break;
-	}
-
 	switch (ptype & RTE_PTYPE_INNER_L3_MASK) {
 	case RTE_PTYPE_INNER_L3_IPV4:
 	case RTE_PTYPE_INNER_L3_IPV4_EXT:
diff --git a/drivers/net/txgbe/txgbe_ptypes.h b/drivers/net/txgbe/txgbe_ptypes.h
index fa6c347d53..6fa8147f05 100644
--- a/drivers/net/txgbe/txgbe_ptypes.h
+++ b/drivers/net/txgbe/txgbe_ptypes.h
@@ -348,4 +348,9 @@ struct txgbe_nvgrehdr {
 	__be32 tni;
 };

+struct txgbe_grehdr {
+	__be16 flags;
+	__be16 proto;
+};
+
 #endif /* _TXGBE_PTYPE_H_ */
diff --git a/drivers/net/txgbe/txgbe_rxtx.c b/drivers/net/txgbe/txgbe_rxtx.c
index 427f8b82ac..f7cd2333ab 100644
--- a/drivers/net/txgbe/txgbe_rxtx.c
+++ b/drivers/net/txgbe/txgbe_rxtx.c
@@ -572,7 +572,6 @@ tx_desc_ol_flags_to_ptype(uint64_t oflags)
 		ptype |= RTE_PTYPE_L2_ETHER |
 			 RTE_PTYPE_L3_IPV4 |
 			 RTE_PTYPE_TUNNEL_GRE;
-		ptype |= RTE_PTYPE_INNER_L2_ETHER;
 		break;
 	case RTE_MBUF_F_TX_TUNNEL_GENEVE:
 		ptype |= RTE_PTYPE_L2_ETHER |
@@ -705,22 +704,24 @@ txgbe_get_tun_len(struct rte_mbuf *mbuf)
 static inline uint8_t
 txgbe_parse_tun_ptid(struct rte_mbuf *tx_pkt)
 {
-	uint64_t l2_none, l2_mac, l2_mac_vlan;
+	uint64_t l2_vxlan, l2_vxlan_mac, l2_vxlan_mac_vlan;
+	uint64_t l2_gre, l2_gre_mac, l2_gre_mac_vlan;
 	uint8_t ptid = 0;

-	if ((tx_pkt->ol_flags & (RTE_MBUF_F_TX_TUNNEL_VXLAN |
-				RTE_MBUF_F_TX_TUNNEL_VXLAN_GPE)) == 0)
-		return ptid;
+	l2_vxlan = sizeof(struct txgbe_udphdr) + sizeof(struct txgbe_vxlanhdr);
+	l2_vxlan_mac = l2_vxlan + sizeof(struct rte_ether_hdr);
+	l2_vxlan_mac_vlan = l2_vxlan_mac + sizeof(struct rte_vlan_hdr);

-	l2_none = sizeof(struct txgbe_udphdr) + sizeof(struct txgbe_vxlanhdr);
-	l2_mac = l2_none + sizeof(struct rte_ether_hdr);
-	l2_mac_vlan = l2_mac + sizeof(struct rte_vlan_hdr);
+	l2_gre = sizeof(struct txgbe_grehdr);
+	l2_gre_mac = l2_gre + sizeof(struct rte_ether_hdr);
+	l2_gre_mac_vlan = l2_gre_mac + sizeof(struct rte_vlan_hdr);

-	if (tx_pkt->l2_len == l2_none)
+	if (tx_pkt->l2_len == l2_vxlan || tx_pkt->l2_len == l2_gre)
 		ptid = TXGBE_PTID_TUN_EIG;
-	else if (tx_pkt->l2_len == l2_mac)
+	else if (tx_pkt->l2_len == l2_vxlan_mac || tx_pkt->l2_len == l2_gre_mac)
 		ptid = TXGBE_PTID_TUN_EIGM;
-	else if (tx_pkt->l2_len == l2_mac_vlan)
+	else if (tx_pkt->l2_len == l2_vxlan_mac_vlan ||
+			tx_pkt->l2_len == l2_gre_mac_vlan)
 		ptid = TXGBE_PTID_TUN_EIGMV;

 	return ptid;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.402278600 +0800
+++ 0026-net-txgbe-fix-GRE-tunnel-packet-checksum.patch	2023-10-22 22:17:34.166723700 +0800
@@ -1 +1 @@
-From 5bbaf75ed6df2605a8cf780057211f2592add80d Mon Sep 17 00:00:00 2001
+From ae0ac0ba92a3f377880ce4019585e653d34a4cc3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5bbaf75ed6df2605a8cf780057211f2592add80d ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ngbe: fix flow control' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (25 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/txgbe: fix GRE tunnel packet checksum' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/ngbe: prevent NIC from slowing down link speed' " Xueming Li
                   ` (114 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=401b94367fa51b0a31c7f6bee1c86db0dce852d8

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 401b94367fa51b0a31c7f6bee1c86db0dce852d8 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:50 +0800
Subject: [PATCH] net/ngbe: fix flow control
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit d19fa5a1f447244aa961a3cc8c52c9024f9109ab ]

Fix flow control high/low water limit.

Fixes: f40e9f0e2278 ("net/ngbe: support flow control")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/ngbe/base/ngbe_type.h | 40 ++++++++++++++
 drivers/net/ngbe/ngbe_ethdev.c    | 89 +++++++++++++++++++++++++++++++
 2 files changed, 129 insertions(+)

diff --git a/drivers/net/ngbe/base/ngbe_type.h b/drivers/net/ngbe/base/ngbe_type.h
index 37be288a74..8a7d2cd331 100644
--- a/drivers/net/ngbe/base/ngbe_type.h
+++ b/drivers/net/ngbe/base/ngbe_type.h
@@ -116,6 +116,46 @@ struct ngbe_fc_info {
 	enum ngbe_fc_mode requested_mode; /* FC mode requested by caller */
 };

+/* Flow Control Data Sheet defined values
+ * Calculation and defines taken from 802.1bb Annex O
+ */
+/* BitTimes (BT) conversion */
+#define NGBE_BT2KB(BT)         (((BT) + (8 * 1024 - 1)) / (8 * 1024))
+#define NGBE_B2BT(BT)          ((BT) * 8)
+
+/* Calculate Delay to respond to PFC */
+#define NGBE_PFC_D     672
+
+/* Calculate Cable Delay */
+#define NGBE_CABLE_DC  5556 /* Delay Copper */
+
+/* Calculate Interface Delay */
+#define NGBE_PHY_D     12800
+#define NGBE_MAC_D     4096
+#define NGBE_XAUI_D    (2 * 1024)
+
+#define NGBE_ID        (NGBE_MAC_D + NGBE_XAUI_D + NGBE_PHY_D)
+
+/* Calculate Delay incurred from higher layer */
+#define NGBE_HD        6144
+
+/* Calculate PCI Bus delay for low thresholds */
+#define NGBE_PCI_DELAY 10000
+
+/* Calculate delay value in bit times */
+#define NGBE_DV(_max_frame_link, _max_frame_tc) \
+			((36 * \
+			  (NGBE_B2BT(_max_frame_link) + \
+			   NGBE_PFC_D + \
+			   (2 * NGBE_CABLE_DC) + \
+			   (2 * NGBE_ID) + \
+			   NGBE_HD) / 25 + 1) + \
+			 2 * NGBE_B2BT(_max_frame_tc))
+
+#define NGBE_LOW_DV(_max_frame_tc) \
+			(2 * ((2 * NGBE_B2BT(_max_frame_tc) + \
+			      (36 * NGBE_PCI_DELAY / 25) + 1)))
+
 /* Statistics counters collected by the MAC */
 /* PB[] RxTx */
 struct ngbe_pb_stats {
diff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c
index cb643c6eba..87c7b89d57 100644
--- a/drivers/net/ngbe/ngbe_ethdev.c
+++ b/drivers/net/ngbe/ngbe_ethdev.c
@@ -90,6 +90,7 @@ static int ngbe_dev_misc_interrupt_setup(struct rte_eth_dev *dev);
 static int ngbe_dev_rxq_interrupt_setup(struct rte_eth_dev *dev);
 static void ngbe_dev_interrupt_handler(void *param);
 static void ngbe_configure_msix(struct rte_eth_dev *dev);
+static void ngbe_pbthresh_set(struct rte_eth_dev *dev);

 #define NGBE_SET_HWSTRIP(h, q) do {\
 		uint32_t idx = (q) / (sizeof((h)->bitmap[0]) * NBBY); \
@@ -1037,6 +1038,7 @@ ngbe_dev_start(struct rte_eth_dev *dev)
 	}

 	hw->mac.setup_pba(hw);
+	ngbe_pbthresh_set(dev);
 	ngbe_configure_port(dev);

 	err = ngbe_dev_rxtx_start(dev);
@@ -2356,6 +2358,93 @@ ngbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 	return -EIO;
 }

+/* Additional bittime to account for NGBE framing */
+#define NGBE_ETH_FRAMING 20
+
+/*
+ * ngbe_fc_hpbthresh_set - calculate high water mark for flow control
+ *
+ * @dv_id: device interface delay
+ * @pb: packet buffer to calculate
+ */
+static s32
+ngbe_fc_hpbthresh_set(struct rte_eth_dev *dev)
+{
+	struct ngbe_hw *hw = ngbe_dev_hw(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
+	u32 max_frame_size, tc, dv_id, rx_pb;
+	s32 kb, marker;
+
+	/* Calculate max LAN frame size */
+	max_frame_size = rd32m(hw, NGBE_FRMSZ, NGBE_FRMSZ_MAX_MASK);
+	tc = max_frame_size + NGBE_ETH_FRAMING;
+
+	/* Calculate delay value for device */
+	dv_id = NGBE_DV(tc, tc);
+
+	/* Loopback switch introduces additional latency */
+	if (pci_dev->max_vfs)
+		dv_id += NGBE_B2BT(tc);
+
+	/* Delay value is calculated in bit times convert to KB */
+	kb = NGBE_BT2KB(dv_id);
+	rx_pb = rd32(hw, NGBE_PBRXSIZE) >> 10;
+
+	marker = rx_pb - kb;
+
+	/* It is possible that the packet buffer is not large enough
+	 * to provide required headroom. In this case throw an error
+	 * to user and do the best we can.
+	 */
+	if (marker < 0) {
+		PMD_DRV_LOG(WARNING, "Packet Buffer can not provide enough headroom to support flow control.");
+		marker = tc + 1;
+	}
+
+	return marker;
+}
+
+/*
+ * ngbe_fc_lpbthresh_set - calculate low water mark for flow control
+ *
+ * @dv_id: device interface delay
+ */
+static s32
+ngbe_fc_lpbthresh_set(struct rte_eth_dev *dev)
+{
+	struct ngbe_hw *hw = ngbe_dev_hw(dev);
+	u32 max_frame_size, tc, dv_id;
+	s32 kb;
+
+	/* Calculate max LAN frame size */
+	max_frame_size = rd32m(hw, NGBE_FRMSZ, NGBE_FRMSZ_MAX_MASK);
+	tc = max_frame_size + NGBE_ETH_FRAMING;
+
+	/* Calculate delay value for device */
+	dv_id = NGBE_LOW_DV(tc);
+
+	/* Delay value is calculated in bit times convert to KB */
+	kb = NGBE_BT2KB(dv_id);
+
+	return kb;
+}
+
+/*
+ * ngbe_pbthresh_setup - calculate and setup high low water marks
+ */
+static void
+ngbe_pbthresh_set(struct rte_eth_dev *dev)
+{
+	struct ngbe_hw *hw = ngbe_dev_hw(dev);
+
+	hw->fc.high_water = ngbe_fc_hpbthresh_set(dev);
+	hw->fc.low_water = ngbe_fc_lpbthresh_set(dev);
+
+	/* Low water marks must not be larger than high water marks */
+	if (hw->fc.low_water > hw->fc.high_water)
+		hw->fc.low_water = 0;
+}
+
 int
 ngbe_dev_rss_reta_update(struct rte_eth_dev *dev,
 			  struct rte_eth_rss_reta_entry64 *reta_conf,
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.440993700 +0800
+++ 0027-net-ngbe-fix-flow-control.patch	2023-10-22 22:17:34.176723700 +0800
@@ -1 +1 @@
-From d19fa5a1f447244aa961a3cc8c52c9024f9109ab Mon Sep 17 00:00:00 2001
+From 401b94367fa51b0a31c7f6bee1c86db0dce852d8 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d19fa5a1f447244aa961a3cc8c52c9024f9109ab ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -69 +71 @@
-index af77081d9a..a83fdc002a 100644
+index cb643c6eba..87c7b89d57 100644
@@ -88 +90 @@
-@@ -2386,6 +2388,93 @@ ngbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
+@@ -2356,6 +2358,93 @@ ngbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ngbe: prevent NIC from slowing down link speed' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (26 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/ngbe: fix flow control' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/txgbe: reconfigure MAC Rx when link update' " Xueming Li
                   ` (113 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=12662c8d637ccdbf6aa0bfe476b2596733c2a48b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 12662c8d637ccdbf6aa0bfe476b2596733c2a48b Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:51 +0800
Subject: [PATCH] net/ngbe: prevent NIC from slowing down link speed
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 55ff5045dcedec707547b90d0bc8abcdc34fd956 ]

When the signal quality is bad, the internal PHY may slow down to 100M.
Fix this weird behavior by setting dis fall 100M bit.

Fixes: 696a82117875 ("net/ngbe: redesign internal PHY init flow")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/ngbe/base/ngbe_phy_rtl.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/ngbe/base/ngbe_phy_rtl.c b/drivers/net/ngbe/base/ngbe_phy_rtl.c
index b0eb6c97c0..ba63a8058a 100644
--- a/drivers/net/ngbe/base/ngbe_phy_rtl.c
+++ b/drivers/net/ngbe/base/ngbe_phy_rtl.c
@@ -148,6 +148,11 @@ s32 ngbe_init_phy_rtl(struct ngbe_hw *hw)
 	hw->phy.write_reg(hw, 27, 0xa42, 0x8011);
 	hw->phy.write_reg(hw, 28, 0xa42, 0x5737);

+	/* Disable fall to 100m if signal is not good */
+	hw->phy.read_reg(hw, 17, 0xa44, &value);
+	value &= ~0x8;
+	hw->phy.write_reg(hw, 17, 0xa44, value);
+
 	hw->phy.write_reg(hw, RTL_SCR, 0xa46, RTL_SCR_EXTINI);
 	hw->phy.read_reg(hw, RTL_SCR, 0xa46, &value);
 	if (!(value & RTL_SCR_EXTINI)) {
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.478086300 +0800
+++ 0028-net-ngbe-prevent-NIC-from-slowing-down-link-speed.patch	2023-10-22 22:17:34.176723700 +0800
@@ -1 +1 @@
-From 55ff5045dcedec707547b90d0bc8abcdc34fd956 Mon Sep 17 00:00:00 2001
+From 12662c8d637ccdbf6aa0bfe476b2596733c2a48b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 55ff5045dcedec707547b90d0bc8abcdc34fd956 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/txgbe: reconfigure MAC Rx when link update' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (27 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/ngbe: prevent NIC from slowing down link speed' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:20 ` patch 'net/ngbe: " Xueming Li
                   ` (112 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=768e6a3d839b622e4f3981a8b053e5b6e522a735

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 768e6a3d839b622e4f3981a8b053e5b6e522a735 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:52 +0800
Subject: [PATCH] net/txgbe: reconfigure MAC Rx when link update
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 950a6954df134f8bff41fc7ad541a9c9730a4201 ]

Fix the bug that after setting flow control parameters, link status
change (for example, hot-plug SFP module) causes the port to no longer
receive packets.

Fixes: 0c061eadec59 ("net/txgbe: add link status change")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_ethdev.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index 7f0b3c9b50..7b558940c3 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -2875,6 +2875,11 @@ txgbe_dev_link_update_share(struct rte_eth_dev *dev,
 		break;
 	}

+	/* Re configure MAC RX */
+	if (hw->mac.type == txgbe_mac_raptor)
+		wr32m(hw, TXGBE_MACRXFLT, TXGBE_MACRXFLT_PROMISC,
+			TXGBE_MACRXFLT_PROMISC);
+
 	return rte_eth_linkstatus_set(dev, &link);
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.512020700 +0800
+++ 0029-net-txgbe-reconfigure-MAC-Rx-when-link-update.patch	2023-10-22 22:17:34.176723700 +0800
@@ -1 +1 @@
-From 950a6954df134f8bff41fc7ad541a9c9730a4201 Mon Sep 17 00:00:00 2001
+From 768e6a3d839b622e4f3981a8b053e5b6e522a735 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 950a6954df134f8bff41fc7ad541a9c9730a4201 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 479cd810f8..e789e34c01 100644
+index 7f0b3c9b50..7b558940c3 100644
@@ -22 +24 @@
-@@ -2957,6 +2957,11 @@ txgbe_dev_link_update_share(struct rte_eth_dev *dev,
+@@ -2875,6 +2875,11 @@ txgbe_dev_link_update_share(struct rte_eth_dev *dev,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ngbe: reconfigure MAC Rx when link update' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (28 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/txgbe: reconfigure MAC Rx when link update' " Xueming Li
@ 2023-10-22 14:20 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/txgbe: keep link down after device close' " Xueming Li
                   ` (111 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:20 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=46e19fcf10ff52a7cd4c4627575df5166534dd21

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 46e19fcf10ff52a7cd4c4627575df5166534dd21 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:53 +0800
Subject: [PATCH] net/ngbe: reconfigure MAC Rx when link update
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a7c5f95ed9c24c0dfef6ab795e4916cbc0bf6598 ]

Fix the bug that after setting flow control parameters, link status
change (for example, set PHY power on/off) causes the port to no longer
receive packets.

Fixes: b9246b8fa280 ("net/ngbe: support link update")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/ngbe/ngbe_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c
index 87c7b89d57..f3f10d63e5 100644
--- a/drivers/net/ngbe/ngbe_ethdev.c
+++ b/drivers/net/ngbe/ngbe_ethdev.c
@@ -1939,6 +1939,8 @@ ngbe_dev_link_update_share(struct rte_eth_dev *dev,
 			wr32m(hw, NGBE_MACTXCFG, NGBE_MACTXCFG_SPEED_MASK,
 				NGBE_MACTXCFG_SPEED_1G | NGBE_MACTXCFG_TE);
 		}
+		wr32m(hw, NGBE_MACRXFLT, NGBE_MACRXFLT_PROMISC,
+			NGBE_MACRXFLT_PROMISC);
 	}

 	return rte_eth_linkstatus_set(dev, &link);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.547892200 +0800
+++ 0030-net-ngbe-reconfigure-MAC-Rx-when-link-update.patch	2023-10-22 22:17:34.186723700 +0800
@@ -1 +1 @@
-From a7c5f95ed9c24c0dfef6ab795e4916cbc0bf6598 Mon Sep 17 00:00:00 2001
+From 46e19fcf10ff52a7cd4c4627575df5166534dd21 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a7c5f95ed9c24c0dfef6ab795e4916cbc0bf6598 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index a83fdc002a..dd387779ab 100644
+index 87c7b89d57..f3f10d63e5 100644
@@ -22 +24 @@
-@@ -1961,6 +1961,8 @@ ngbe_dev_link_update_share(struct rte_eth_dev *dev,
+@@ -1939,6 +1939,8 @@ ngbe_dev_link_update_share(struct rte_eth_dev *dev,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/txgbe: keep link down after device close' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (29 preceding siblings ...)
  2023-10-22 14:20 ` patch 'net/ngbe: " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/ngbe: " Xueming Li
                   ` (110 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=adb1b606012dd1ac8f0374177c6432cd325347a3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From adb1b606012dd1ac8f0374177c6432cd325347a3 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:54 +0800
Subject: [PATCH] net/txgbe: keep link down after device close
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 409a08c34fd20a25dd209438f52cb38ace081b19 ]

When the port is closed, hardware is reset to power on. And
txgbe_dev_stop() is just returned 0 to avoid secondary calls,
so that the link led remains on. Fix this bug by adding to turn
off the copper/laser.

Fixes: e0d876ef6bbc ("net/txgbe: support device stop and close")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_ethdev.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index 7b558940c3..5f596e9ab9 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -1917,7 +1917,7 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
 	struct txgbe_tm_conf *tm_conf = TXGBE_DEV_TM_CONF(dev);

 	if (hw->adapter_stopped)
-		return 0;
+		goto out;

 	PMD_INIT_FUNC_TRACE();

@@ -1940,14 +1940,6 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
 	for (vf = 0; vfinfo != NULL && vf < pci_dev->max_vfs; vf++)
 		vfinfo[vf].clear_to_send = false;

-	if (hw->phy.media_type == txgbe_media_type_copper) {
-		/* Turn off the copper */
-		hw->phy.set_phy_power(hw, false);
-	} else {
-		/* Turn off the laser */
-		hw->mac.disable_tx_laser(hw);
-	}
-
 	txgbe_dev_clear_queues(dev);

 	/* Clear stored conf */
@@ -1978,6 +1970,16 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
 	dev->data->dev_started = 0;
 	hw->dev_start = false;

+out:
+	/* close phy to prevent reset in dev_close from restarting physical link */
+	if (hw->phy.media_type == txgbe_media_type_copper) {
+		/* Turn off the copper */
+		hw->phy.set_phy_power(hw, false);
+	} else {
+		/* Turn off the laser */
+		hw->mac.disable_tx_laser(hw);
+	}
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.577311400 +0800
+++ 0031-net-txgbe-keep-link-down-after-device-close.patch	2023-10-22 22:17:34.186723700 +0800
@@ -1 +1 @@
-From 409a08c34fd20a25dd209438f52cb38ace081b19 Mon Sep 17 00:00:00 2001
+From adb1b606012dd1ac8f0374177c6432cd325347a3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 409a08c34fd20a25dd209438f52cb38ace081b19 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index e789e34c01..2dad820cb5 100644
+index 7b558940c3..5f596e9ab9 100644
@@ -23 +25 @@
-@@ -1929,7 +1929,7 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -1917,7 +1917,7 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
@@ -32 +34 @@
-@@ -1953,14 +1953,6 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -1940,14 +1940,6 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
@@ -47 +49 @@
-@@ -1991,6 +1983,16 @@ txgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -1978,6 +1970,16 @@ txgbe_dev_stop(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ngbe: keep link down after device close' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (30 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/txgbe: keep link down after device close' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/txgbe: check process type in close operation' " Xueming Li
                   ` (109 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=d9b0b9b3e264330161f39631d663cdddbe9571c3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d9b0b9b3e264330161f39631d663cdddbe9571c3 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:55 +0800
Subject: [PATCH] net/ngbe: keep link down after device close
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3dd64cf80ed5142eeb0a8e3051a583fb38761221 ]

When the port is closed, hardware is reset to power on. And
ngbe_dev_stop() is just returned 0 to avoid secondary calls,
so that the link led remains on. Fix this bug by adding to turn
off the PHY power.

Fixes: 3518df5774c7 ("net/ngbe: support device start/stop")
Fixes: 708ebe7d0399 ("net/ngbe: fix external PHY power down")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/ngbe/ngbe_ethdev.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c
index f3f10d63e5..0445f3626b 100644
--- a/drivers/net/ngbe/ngbe_ethdev.c
+++ b/drivers/net/ngbe/ngbe_ethdev.c
@@ -1167,7 +1167,7 @@ ngbe_dev_stop(struct rte_eth_dev *dev)
 	int vf;

 	if (hw->adapter_stopped)
-		return 0;
+		goto out;

 	PMD_INIT_FUNC_TRACE();

@@ -1189,8 +1189,6 @@ ngbe_dev_stop(struct rte_eth_dev *dev)
 	for (vf = 0; vfinfo != NULL && vf < pci_dev->max_vfs; vf++)
 		vfinfo[vf].clear_to_send = false;

-	hw->phy.set_phy_power(hw, false);
-
 	ngbe_dev_clear_queues(dev);

 	/* Clear stored conf */
@@ -1217,6 +1215,10 @@ ngbe_dev_stop(struct rte_eth_dev *dev)
 	hw->adapter_stopped = true;
 	dev->data->dev_started = 0;

+out:
+	/* close phy to prevent reset in dev_close from restarting physical link */
+	hw->phy.set_phy_power(hw, false);
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.613884800 +0800
+++ 0032-net-ngbe-keep-link-down-after-device-close.patch	2023-10-22 22:17:34.196723700 +0800
@@ -1 +1 @@
-From 3dd64cf80ed5142eeb0a8e3051a583fb38761221 Mon Sep 17 00:00:00 2001
+From d9b0b9b3e264330161f39631d663cdddbe9571c3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3dd64cf80ed5142eeb0a8e3051a583fb38761221 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index dd387779ab..1cdd56497e 100644
+index f3f10d63e5..0445f3626b 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/txgbe: check process type in close operation' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (31 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/ngbe: " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/ngbe: " Xueming Li
                   ` (108 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=a340716239dd004589b83e296ce8e0be7700e6ce

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a340716239dd004589b83e296ce8e0be7700e6ce Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:56 +0800
Subject: [PATCH] net/txgbe: check process type in close operation
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 21ed282505ed8f60f03a93a27ac01f4152b8ab40 ]

The secondary processes are not allowed to release shared resources.
Only process-private resources should be freed in a secondary process.
Most of the time, there is no process-private resource,
so the close operation is just forbidden in a secondary process.

Fixes: e1698e383c2a ("net/txgbe: add device init and uninit")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_ethdev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index 5f596e9ab9..001f8c6473 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -2039,6 +2039,9 @@ txgbe_dev_close(struct rte_eth_dev *dev)

 	PMD_INIT_FUNC_TRACE();

+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return 0;
+
 	txgbe_pf_reset_hw(hw);

 	ret = txgbe_dev_stop(dev);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.646711200 +0800
+++ 0033-net-txgbe-check-process-type-in-close-operation.patch	2023-10-22 22:17:34.196723700 +0800
@@ -1 +1 @@
-From 21ed282505ed8f60f03a93a27ac01f4152b8ab40 Mon Sep 17 00:00:00 2001
+From a340716239dd004589b83e296ce8e0be7700e6ce Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 21ed282505ed8f60f03a93a27ac01f4152b8ab40 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 2dad820cb5..6bc231a130 100644
+index 5f596e9ab9..001f8c6473 100644
@@ -23 +25 @@
-@@ -2052,6 +2052,9 @@ txgbe_dev_close(struct rte_eth_dev *dev)
+@@ -2039,6 +2039,9 @@ txgbe_dev_close(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ngbe: check process type in close operation' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (32 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/txgbe: check process type in close operation' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/tap: use MAC address parse API instead of local parser' " Xueming Li
                   ` (107 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=367755a8dc7d1c4c182fb3c0e089be185c33b388

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 367755a8dc7d1c4c182fb3c0e089be185c33b388 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Thu, 28 Sep 2023 17:47:57 +0800
Subject: [PATCH] net/ngbe: check process type in close operation
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit bf86fb0b7dd723421ea35826c0163c34b09d1c69 ]

The secondary processes are not allowed to release shared resources.
Only process-private resources should be freed in a secondary process.
Most of the time, there is no process-private resource,
so the close operation is just forbidden in a secondary process.

Fixes: cc63194e89cb ("net/ngbe: support close and reset device")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/ngbe/ngbe_ethdev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c
index 0445f3626b..08e14a05c9 100644
--- a/drivers/net/ngbe/ngbe_ethdev.c
+++ b/drivers/net/ngbe/ngbe_ethdev.c
@@ -1262,6 +1262,9 @@ ngbe_dev_close(struct rte_eth_dev *dev)

 	PMD_INIT_FUNC_TRACE();

+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return 0;
+
 	ngbe_pf_reset_hw(hw);

 	ngbe_dev_stop(dev);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.687034300 +0800
+++ 0034-net-ngbe-check-process-type-in-close-operation.patch	2023-10-22 22:17:34.196723700 +0800
@@ -1 +1 @@
-From bf86fb0b7dd723421ea35826c0163c34b09d1c69 Mon Sep 17 00:00:00 2001
+From 367755a8dc7d1c4c182fb3c0e089be185c33b388 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit bf86fb0b7dd723421ea35826c0163c34b09d1c69 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 1cdd56497e..478da014b2 100644
+index 0445f3626b..08e14a05c9 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/tap: use MAC address parse API instead of local parser' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (33 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/ngbe: " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/gve: fix max MTU limit' " Xueming Li
                   ` (106 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: David Christensen; +Cc: Stephen Hemminger, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=6754edbeb547425eea2e06eface8a6214a6621d8

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6754edbeb547425eea2e06eface8a6214a6621d8 Mon Sep 17 00:00:00 2001
From: David Christensen <drc@linux.vnet.ibm.com>
Date: Tue, 3 Oct 2023 13:29:09 -0700
Subject: [PATCH] net/tap: use MAC address parse API instead of local parser
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit b79d825f32cb0012164b26428272b1ea268f839d ]

Building DPDK with gcc 12 on a ppc64le system generates a
stringop-overflow warning. Replace the local MAC address
validation function parse_user_mac() with a call to
rte_ether_unformat_addr() instead.

Bugzilla ID: 1197

Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/tap/rte_eth_tap.c | 25 +------------------------
 1 file changed, 1 insertion(+), 24 deletions(-)

diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index 66595f8312..ef8eb610f6 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -2267,29 +2267,6 @@ set_remote_iface(const char *key __rte_unused,
 	return 0;
 }

-static int parse_user_mac(struct rte_ether_addr *user_mac,
-		const char *value)
-{
-	unsigned int index = 0;
-	char mac_temp[strlen(ETH_TAP_USR_MAC_FMT) + 1], *mac_byte = NULL;
-
-	if (user_mac == NULL || value == NULL)
-		return 0;
-
-	strlcpy(mac_temp, value, sizeof(mac_temp));
-	mac_byte = strtok(mac_temp, ":");
-
-	while ((mac_byte != NULL) &&
-			(strlen(mac_byte) <= 2) &&
-			(strlen(mac_byte) == strspn(mac_byte,
-					ETH_TAP_CMP_MAC_FMT))) {
-		user_mac->addr_bytes[index++] = strtoul(mac_byte, NULL, 16);
-		mac_byte = strtok(NULL, ":");
-	}
-
-	return index;
-}
-
 static int
 set_mac_type(const char *key __rte_unused,
 	     const char *value,
@@ -2311,7 +2288,7 @@ set_mac_type(const char *key __rte_unused,
 		goto success;
 	}

-	if (parse_user_mac(user_mac, value) != 6)
+	if (rte_ether_unformat_addr(value, user_mac) < 0)
 		goto error;
 success:
 	TAP_LOG(DEBUG, "TAP user MAC param (%s)", value);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.734704800 +0800
+++ 0035-net-tap-use-MAC-address-parse-API-instead-of-local-p.patch	2023-10-22 22:17:34.206723700 +0800
@@ -1 +1 @@
-From b79d825f32cb0012164b26428272b1ea268f839d Mon Sep 17 00:00:00 2001
+From 6754edbeb547425eea2e06eface8a6214a6621d8 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b79d825f32cb0012164b26428272b1ea268f839d ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index bf98f75559..b25a52655f 100644
+index 66595f8312..ef8eb610f6 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/gve: fix max MTU limit' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (34 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/tap: use MAC address parse API instead of local parser' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-23 22:01   ` Joshua Washington
  2023-10-22 14:21 ` patch 'app/testpmd: fix help string' " Xueming Li
                   ` (105 subsequent siblings)
  141 siblings, 1 reply; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Joshua Washington; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8ef9e184ca867c0ed9aed5728364aed6e7dd47e3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8ef9e184ca867c0ed9aed5728364aed6e7dd47e3 Mon Sep 17 00:00:00 2001
From: Joshua Washington <joshwash@google.com>
Date: Fri, 29 Sep 2023 13:38:25 -0700
Subject: [PATCH] net/gve: fix max MTU limit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 030025b74202896e85a72b1e75049866800dd3f7 ]

This patch corrects the MTU setting behavior in the GVE DPDK driver to
remove the artificial upper limit of RTE_ETHER_MTU. Instead, the max MTU
is dictated by the default value of the MTU that the device sends during
initialization, which will always be the maximum supported MTU.

Fixes: 71dea04cdf9a ("net/gve: support device info and configure")

Signed-off-by: Joshua Washington <joshwash@google.com>
---
 drivers/net/gve/gve_ethdev.c | 5 +++--
 drivers/net/gve/gve_ethdev.h | 3 ---
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
index e357f16e16..806f45b0a7 100644
--- a/drivers/net/gve/gve_ethdev.c
+++ b/drivers/net/gve/gve_ethdev.c
@@ -5,6 +5,7 @@
 #include "gve_ethdev.h"
 #include "base/gve_adminq.h"
 #include "base/gve_register.h"
+#include "rte_ether.h"

 const char gve_version_str[] = GVE_VERSION;
 static const char gve_version_prefix[] = GVE_VERSION_PREFIX;
@@ -276,8 +277,8 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	dev_info->max_tx_queues = priv->max_nb_txq;
 	dev_info->min_rx_bufsize = GVE_MIN_BUF_SIZE;
 	dev_info->max_rx_pktlen = GVE_MAX_RX_PKTLEN;
-	dev_info->max_mtu = GVE_MAX_MTU;
-	dev_info->min_mtu = GVE_MIN_MTU;
+	dev_info->max_mtu = priv->max_mtu;
+	dev_info->min_mtu = RTE_ETHER_MIN_MTU;

 	dev_info->rx_offload_capa = 0;
 	dev_info->tx_offload_capa =
diff --git a/drivers/net/gve/gve_ethdev.h b/drivers/net/gve/gve_ethdev.h
index 235e55899e..975318938d 100644
--- a/drivers/net/gve/gve_ethdev.h
+++ b/drivers/net/gve/gve_ethdev.h
@@ -31,9 +31,6 @@
 #define GVE_MIN_BUF_SIZE	    1024
 #define GVE_MAX_RX_PKTLEN	    65535

-#define GVE_MAX_MTU	RTE_ETHER_MTU
-#define GVE_MIN_MTU	RTE_ETHER_MIN_MTU
-
 /* A list of pages registered with the device during setup and used by a queue
  * as buffers
  */
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.768883300 +0800
+++ 0036-net-gve-fix-max-MTU-limit.patch	2023-10-22 22:17:34.206723700 +0800
@@ -1 +1 @@
-From 030025b74202896e85a72b1e75049866800dd3f7 Mon Sep 17 00:00:00 2001
+From 8ef9e184ca867c0ed9aed5728364aed6e7dd47e3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 030025b74202896e85a72b1e75049866800dd3f7 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 9b25f3036b..b441f96623 100644
+index e357f16e16..806f45b0a7 100644
@@ -24 +26,3 @@
-@@ -7,6 +7,7 @@
+@@ -5,6 +5,7 @@
+ #include "gve_ethdev.h"
+ #include "base/gve_adminq.h"
@@ -26,2 +29,0 @@
- #include "base/gve_osdep.h"
- #include "gve_version.h"
@@ -30,3 +32,3 @@
- static void
- gve_write_version(uint8_t *driver_version_register)
-@@ -297,8 +298,8 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+ const char gve_version_str[] = GVE_VERSION;
+ static const char gve_version_prefix[] = GVE_VERSION_PREFIX;
+@@ -276,8 +277,8 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@ -44 +46 @@
-index ca94a09a2f..1cba282128 100644
+index 235e55899e..975318938d 100644
@@ -47 +49 @@
-@@ -23,9 +23,6 @@
+@@ -31,9 +31,6 @@
@@ -54,3 +56,3 @@
- #define GVE_TX_CKSUM_OFFLOAD_MASK (		\
- 		RTE_MBUF_F_TX_L4_MASK  |	\
- 		RTE_MBUF_F_TX_TCP_SEG)
+ /* A list of pages registered with the device during setup and used by a queue
+  * as buffers
+  */

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/testpmd: fix help string' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (35 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/gve: fix max MTU limit' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'test: fix named test macro' " Xueming Li
                   ` (104 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Chengwen Feng, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=086e0e529e93f508acb6f7a52739ce3469ee2728

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 086e0e529e93f508acb6f7a52739ce3469ee2728 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Sun, 8 Oct 2023 14:46:19 +0800
Subject: [PATCH] app/testpmd: fix help string
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 42661fb8f18e52684d0d9f0d376017082fca45e0 ]

Command help string is missing 'mcast_addr add|remove'.
This patch add it.

Fixes: 8fff667578a7 ("app/testpmd: new command to add/remove multicast MAC addresses")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test-pmd/cmdline.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 07432f3e57..bfccadbd49 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -468,6 +468,12 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"mac_addr add port (port_id) vf (vf_id) (mac_address)\n"
 			"    Add a MAC address for a VF on the port.\n\n"

+			"mcast_addr add (port_id) (mcast_addr)\n"
+			"    Add a multicast MAC addresses on port_id.\n\n"
+
+			"mcast_addr remove (port_id) (mcast_addr)\n"
+			"    Remove a multicast MAC address from port_id.\n\n"
+
 			"set vf mac addr (port_id) (vf_id) (XX:XX:XX:XX:XX:XX)\n"
 			"    Set the MAC address for a VF from the PF.\n\n"

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.801350700 +0800
+++ 0037-app-testpmd-fix-help-string.patch	2023-10-22 22:17:34.206723700 +0800
@@ -1 +1 @@
-From 42661fb8f18e52684d0d9f0d376017082fca45e0 Mon Sep 17 00:00:00 2001
+From 086e0e529e93f508acb6f7a52739ce3469ee2728 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 42661fb8f18e52684d0d9f0d376017082fca45e0 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index a0e97719b3..7f75ae13d6 100644
+index 07432f3e57..bfccadbd49 100644
@@ -23 +25 @@
-@@ -500,6 +500,12 @@ static void cmd_help_long_parsed(void *parsed_result,
+@@ -468,6 +468,12 @@ static void cmd_help_long_parsed(void *parsed_result,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test: fix named test macro' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (36 preceding siblings ...)
  2023-10-22 14:21 ` patch 'app/testpmd: fix help string' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'cryptodev: add missing doc for security context' " Xueming Li
                   ` (103 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Anatoly Burakov; +Cc: Akhil Goyal, Hemant Agrawal, Anoob Joseph, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=1a318a87a3851f83fd48b451ce2a7b5131c3a28d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 1a318a87a3851f83fd48b451ce2a7b5131c3a28d Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Wed, 23 Aug 2023 10:00:31 +0000
Subject: [PATCH] test: fix named test macro
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 63bf81a617ac25017e23441521743af7877a38fa ]

Currently, the TEST_CASE_NAMED_ST macro is implemented in a way that
is identical to TEST_CASE_NAMED_WITH_DATA. In particular, it expects
the test function to have a data argument, which is why a bunch of tests
have an unused data arguments.

Fix this by adjusting the macro to not expect a test function with data
arguments, and adjust the dependent test cases accordingly.

Fixes: 474f12024dd9 ("test/crypto: add lookaside IPsec cases")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
---
 app/test/test.h                       |  2 +-
 app/test/test_cryptodev.c             | 72 ++++++++++++-------------
 app/test/test_security_inline_proto.c | 78 +++++++++++++--------------
 3 files changed, 76 insertions(+), 76 deletions(-)

diff --git a/app/test/test.h b/app/test/test.h
index 85f57efbc6..6a4fa0b1d7 100644
--- a/app/test/test.h
+++ b/app/test/test.h
@@ -127,7 +127,7 @@ struct unit_test_case {
 		{ setup, teardown, NULL, testcase, #testcase, 1, data }

 #define TEST_CASE_NAMED_ST(name, setup, teardown, testcase) \
-		{ setup, teardown, NULL, testcase, name, 1, NULL }
+		{ setup, teardown, testcase, NULL, name, 1, NULL }

 #define TEST_CASE_NAMED_WITH_DATA(name, setup, teardown, testcase, data) \
 		{ setup, teardown, NULL, testcase, name, 1, data }
diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index bdd3da7a7c..17e5777c97 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -9822,7 +9822,7 @@ test_ipsec_ah_proto_all(const struct ipsec_test_flags *flags)
 }

 static int
-test_ipsec_proto_display_list(const void *data __rte_unused)
+test_ipsec_proto_display_list(void)
 {
 	struct ipsec_test_flags flags;

@@ -9834,7 +9834,7 @@ test_ipsec_proto_display_list(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_ah_tunnel_ipv4(const void *data __rte_unused)
+test_ipsec_proto_ah_tunnel_ipv4(void)
 {
 	struct ipsec_test_flags flags;

@@ -9847,7 +9847,7 @@ test_ipsec_proto_ah_tunnel_ipv4(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_ah_transport_ipv4(const void *data __rte_unused)
+test_ipsec_proto_ah_transport_ipv4(void)
 {
 	struct ipsec_test_flags flags;

@@ -9860,7 +9860,7 @@ test_ipsec_proto_ah_transport_ipv4(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_iv_gen(const void *data __rte_unused)
+test_ipsec_proto_iv_gen(void)
 {
 	struct ipsec_test_flags flags;

@@ -9872,7 +9872,7 @@ test_ipsec_proto_iv_gen(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_sa_exp_pkts_soft(const void *data __rte_unused)
+test_ipsec_proto_sa_exp_pkts_soft(void)
 {
 	struct ipsec_test_flags flags;

@@ -9884,7 +9884,7 @@ test_ipsec_proto_sa_exp_pkts_soft(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_sa_exp_pkts_hard(const void *data __rte_unused)
+test_ipsec_proto_sa_exp_pkts_hard(void)
 {
 	struct ipsec_test_flags flags;

@@ -9896,7 +9896,7 @@ test_ipsec_proto_sa_exp_pkts_hard(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_err_icv_corrupt(const void *data __rte_unused)
+test_ipsec_proto_err_icv_corrupt(void)
 {
 	struct ipsec_test_flags flags;

@@ -9908,7 +9908,7 @@ test_ipsec_proto_err_icv_corrupt(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_udp_encap_custom_ports(const void *data __rte_unused)
+test_ipsec_proto_udp_encap_custom_ports(void)
 {
 	struct ipsec_test_flags flags;

@@ -9925,7 +9925,7 @@ test_ipsec_proto_udp_encap_custom_ports(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_udp_encap(const void *data __rte_unused)
+test_ipsec_proto_udp_encap(void)
 {
 	struct ipsec_test_flags flags;

@@ -9937,7 +9937,7 @@ test_ipsec_proto_udp_encap(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_tunnel_src_dst_addr_verify(const void *data __rte_unused)
+test_ipsec_proto_tunnel_src_dst_addr_verify(void)
 {
 	struct ipsec_test_flags flags;

@@ -9949,7 +9949,7 @@ test_ipsec_proto_tunnel_src_dst_addr_verify(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_tunnel_dst_addr_verify(const void *data __rte_unused)
+test_ipsec_proto_tunnel_dst_addr_verify(void)
 {
 	struct ipsec_test_flags flags;

@@ -9961,7 +9961,7 @@ test_ipsec_proto_tunnel_dst_addr_verify(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_udp_ports_verify(const void *data __rte_unused)
+test_ipsec_proto_udp_ports_verify(void)
 {
 	struct ipsec_test_flags flags;

@@ -9974,7 +9974,7 @@ test_ipsec_proto_udp_ports_verify(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_inner_ip_csum(const void *data __rte_unused)
+test_ipsec_proto_inner_ip_csum(void)
 {
 	struct ipsec_test_flags flags;

@@ -9986,7 +9986,7 @@ test_ipsec_proto_inner_ip_csum(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_inner_l4_csum(const void *data __rte_unused)
+test_ipsec_proto_inner_l4_csum(void)
 {
 	struct ipsec_test_flags flags;

@@ -9998,7 +9998,7 @@ test_ipsec_proto_inner_l4_csum(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_tunnel_v4_in_v4(const void *data __rte_unused)
+test_ipsec_proto_tunnel_v4_in_v4(void)
 {
 	struct ipsec_test_flags flags;

@@ -10011,7 +10011,7 @@ test_ipsec_proto_tunnel_v4_in_v4(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_tunnel_v6_in_v6(const void *data __rte_unused)
+test_ipsec_proto_tunnel_v6_in_v6(void)
 {
 	struct ipsec_test_flags flags;

@@ -10024,7 +10024,7 @@ test_ipsec_proto_tunnel_v6_in_v6(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_tunnel_v4_in_v6(const void *data __rte_unused)
+test_ipsec_proto_tunnel_v4_in_v6(void)
 {
 	struct ipsec_test_flags flags;

@@ -10037,7 +10037,7 @@ test_ipsec_proto_tunnel_v4_in_v6(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_tunnel_v6_in_v4(const void *data __rte_unused)
+test_ipsec_proto_tunnel_v6_in_v4(void)
 {
 	struct ipsec_test_flags flags;

@@ -10050,7 +10050,7 @@ test_ipsec_proto_tunnel_v6_in_v4(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_transport_v4(const void *data __rte_unused)
+test_ipsec_proto_transport_v4(void)
 {
 	struct ipsec_test_flags flags;

@@ -10063,7 +10063,7 @@ test_ipsec_proto_transport_v4(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_transport_l4_csum(const void *data __rte_unused)
+test_ipsec_proto_transport_l4_csum(void)
 {
 	struct ipsec_test_flags flags = {
 		.l4_csum = true,
@@ -10074,7 +10074,7 @@ test_ipsec_proto_transport_l4_csum(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_stats(const void *data __rte_unused)
+test_ipsec_proto_stats(void)
 {
 	struct ipsec_test_flags flags;

@@ -10086,7 +10086,7 @@ test_ipsec_proto_stats(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_pkt_fragment(const void *data __rte_unused)
+test_ipsec_proto_pkt_fragment(void)
 {
 	struct ipsec_test_flags flags;

@@ -10099,7 +10099,7 @@ test_ipsec_proto_pkt_fragment(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_copy_df_inner_0(const void *data __rte_unused)
+test_ipsec_proto_copy_df_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -10111,7 +10111,7 @@ test_ipsec_proto_copy_df_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_copy_df_inner_1(const void *data __rte_unused)
+test_ipsec_proto_copy_df_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -10123,7 +10123,7 @@ test_ipsec_proto_copy_df_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_set_df_0_inner_1(const void *data __rte_unused)
+test_ipsec_proto_set_df_0_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -10135,7 +10135,7 @@ test_ipsec_proto_set_df_0_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_set_df_1_inner_0(const void *data __rte_unused)
+test_ipsec_proto_set_df_1_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -10147,7 +10147,7 @@ test_ipsec_proto_set_df_1_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_ipv4_copy_dscp_inner_0(const void *data __rte_unused)
+test_ipsec_proto_ipv4_copy_dscp_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -10159,7 +10159,7 @@ test_ipsec_proto_ipv4_copy_dscp_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_ipv4_copy_dscp_inner_1(const void *data __rte_unused)
+test_ipsec_proto_ipv4_copy_dscp_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -10171,7 +10171,7 @@ test_ipsec_proto_ipv4_copy_dscp_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_ipv4_set_dscp_0_inner_1(const void *data __rte_unused)
+test_ipsec_proto_ipv4_set_dscp_0_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -10187,7 +10187,7 @@ test_ipsec_proto_ipv4_set_dscp_0_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_ipv4_set_dscp_1_inner_0(const void *data __rte_unused)
+test_ipsec_proto_ipv4_set_dscp_1_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -10203,7 +10203,7 @@ test_ipsec_proto_ipv4_set_dscp_1_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_ipv6_copy_dscp_inner_0(const void *data __rte_unused)
+test_ipsec_proto_ipv6_copy_dscp_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -10217,7 +10217,7 @@ test_ipsec_proto_ipv6_copy_dscp_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_ipv6_copy_dscp_inner_1(const void *data __rte_unused)
+test_ipsec_proto_ipv6_copy_dscp_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -10231,7 +10231,7 @@ test_ipsec_proto_ipv6_copy_dscp_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_ipv6_set_dscp_0_inner_1(const void *data __rte_unused)
+test_ipsec_proto_ipv6_set_dscp_0_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -10249,7 +10249,7 @@ test_ipsec_proto_ipv6_set_dscp_0_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_ipv6_set_dscp_1_inner_0(const void *data __rte_unused)
+test_ipsec_proto_ipv6_set_dscp_1_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -10455,7 +10455,7 @@ test_PDCP_PROTO_all(void)
 }

 static int
-test_ipsec_proto_ipv4_ttl_decrement(const void *data __rte_unused)
+test_ipsec_proto_ipv4_ttl_decrement(void)
 {
 	struct ipsec_test_flags flags = {
 		.dec_ttl_or_hop_limit = true
@@ -10465,7 +10465,7 @@ test_ipsec_proto_ipv4_ttl_decrement(const void *data __rte_unused)
 }

 static int
-test_ipsec_proto_ipv6_hop_limit_decrement(const void *data __rte_unused)
+test_ipsec_proto_ipv6_hop_limit_decrement(void)
 {
 	struct ipsec_test_flags flags = {
 		.ipv6 = true,
diff --git a/app/test/test_security_inline_proto.c b/app/test/test_security_inline_proto.c
index e411a3c21d..0a966d3f4b 100644
--- a/app/test/test_security_inline_proto.c
+++ b/app/test/test_security_inline_proto.c
@@ -2065,7 +2065,7 @@ test_ipsec_inline_proto_known_vec_inb(const void *test_data)
 }

 static int
-test_ipsec_inline_proto_display_list(const void *data __rte_unused)
+test_ipsec_inline_proto_display_list(void)
 {
 	struct ipsec_test_flags flags;

@@ -2078,7 +2078,7 @@ test_ipsec_inline_proto_display_list(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_udp_encap(const void *data __rte_unused)
+test_ipsec_inline_proto_udp_encap(void)
 {
 	struct ipsec_test_flags flags;

@@ -2091,7 +2091,7 @@ test_ipsec_inline_proto_udp_encap(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_udp_ports_verify(const void *data __rte_unused)
+test_ipsec_inline_proto_udp_ports_verify(void)
 {
 	struct ipsec_test_flags flags;

@@ -2105,7 +2105,7 @@ test_ipsec_inline_proto_udp_ports_verify(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_err_icv_corrupt(const void *data __rte_unused)
+test_ipsec_inline_proto_err_icv_corrupt(void)
 {
 	struct ipsec_test_flags flags;

@@ -2118,7 +2118,7 @@ test_ipsec_inline_proto_err_icv_corrupt(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_tunnel_dst_addr_verify(const void *data __rte_unused)
+test_ipsec_inline_proto_tunnel_dst_addr_verify(void)
 {
 	struct ipsec_test_flags flags;

@@ -2131,7 +2131,7 @@ test_ipsec_inline_proto_tunnel_dst_addr_verify(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_tunnel_src_dst_addr_verify(const void *data __rte_unused)
+test_ipsec_inline_proto_tunnel_src_dst_addr_verify(void)
 {
 	struct ipsec_test_flags flags;

@@ -2144,7 +2144,7 @@ test_ipsec_inline_proto_tunnel_src_dst_addr_verify(const void *data __rte_unused
 }

 static int
-test_ipsec_inline_proto_inner_ip_csum(const void *data __rte_unused)
+test_ipsec_inline_proto_inner_ip_csum(void)
 {
 	struct ipsec_test_flags flags;

@@ -2157,7 +2157,7 @@ test_ipsec_inline_proto_inner_ip_csum(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_inner_l4_csum(const void *data __rte_unused)
+test_ipsec_inline_proto_inner_l4_csum(void)
 {
 	struct ipsec_test_flags flags;

@@ -2170,7 +2170,7 @@ test_ipsec_inline_proto_inner_l4_csum(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_tunnel_v4_in_v4(const void *data __rte_unused)
+test_ipsec_inline_proto_tunnel_v4_in_v4(void)
 {
 	struct ipsec_test_flags flags;

@@ -2184,7 +2184,7 @@ test_ipsec_inline_proto_tunnel_v4_in_v4(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_tunnel_v6_in_v6(const void *data __rte_unused)
+test_ipsec_inline_proto_tunnel_v6_in_v6(void)
 {
 	struct ipsec_test_flags flags;

@@ -2198,7 +2198,7 @@ test_ipsec_inline_proto_tunnel_v6_in_v6(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_tunnel_v4_in_v6(const void *data __rte_unused)
+test_ipsec_inline_proto_tunnel_v4_in_v6(void)
 {
 	struct ipsec_test_flags flags;

@@ -2212,7 +2212,7 @@ test_ipsec_inline_proto_tunnel_v4_in_v6(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_tunnel_v6_in_v4(const void *data __rte_unused)
+test_ipsec_inline_proto_tunnel_v6_in_v4(void)
 {
 	struct ipsec_test_flags flags;

@@ -2226,7 +2226,7 @@ test_ipsec_inline_proto_tunnel_v6_in_v4(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_transport_v4(const void *data __rte_unused)
+test_ipsec_inline_proto_transport_v4(void)
 {
 	struct ipsec_test_flags flags;

@@ -2240,7 +2240,7 @@ test_ipsec_inline_proto_transport_v4(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_transport_l4_csum(const void *data __rte_unused)
+test_ipsec_inline_proto_transport_l4_csum(void)
 {
 	struct ipsec_test_flags flags = {
 		.l4_csum = true,
@@ -2252,7 +2252,7 @@ test_ipsec_inline_proto_transport_l4_csum(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_stats(const void *data __rte_unused)
+test_ipsec_inline_proto_stats(void)
 {
 	struct ipsec_test_flags flags;

@@ -2265,7 +2265,7 @@ test_ipsec_inline_proto_stats(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_pkt_fragment(const void *data __rte_unused)
+test_ipsec_inline_proto_pkt_fragment(void)
 {
 	struct ipsec_test_flags flags;

@@ -2279,7 +2279,7 @@ test_ipsec_inline_proto_pkt_fragment(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_copy_df_inner_0(const void *data __rte_unused)
+test_ipsec_inline_proto_copy_df_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -2292,7 +2292,7 @@ test_ipsec_inline_proto_copy_df_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_copy_df_inner_1(const void *data __rte_unused)
+test_ipsec_inline_proto_copy_df_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -2305,7 +2305,7 @@ test_ipsec_inline_proto_copy_df_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_set_df_0_inner_1(const void *data __rte_unused)
+test_ipsec_inline_proto_set_df_0_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -2318,7 +2318,7 @@ test_ipsec_inline_proto_set_df_0_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_set_df_1_inner_0(const void *data __rte_unused)
+test_ipsec_inline_proto_set_df_1_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -2331,7 +2331,7 @@ test_ipsec_inline_proto_set_df_1_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv4_copy_dscp_inner_0(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv4_copy_dscp_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -2344,7 +2344,7 @@ test_ipsec_inline_proto_ipv4_copy_dscp_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv4_copy_dscp_inner_1(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv4_copy_dscp_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -2357,7 +2357,7 @@ test_ipsec_inline_proto_ipv4_copy_dscp_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv4_set_dscp_0_inner_1(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv4_set_dscp_0_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -2370,7 +2370,7 @@ test_ipsec_inline_proto_ipv4_set_dscp_0_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv4_set_dscp_1_inner_0(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv4_set_dscp_1_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -2383,7 +2383,7 @@ test_ipsec_inline_proto_ipv4_set_dscp_1_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv6_copy_dscp_inner_0(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv6_copy_dscp_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -2398,7 +2398,7 @@ test_ipsec_inline_proto_ipv6_copy_dscp_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv6_copy_dscp_inner_1(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv6_copy_dscp_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -2413,7 +2413,7 @@ test_ipsec_inline_proto_ipv6_copy_dscp_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv6_set_dscp_0_inner_1(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv6_set_dscp_0_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -2428,7 +2428,7 @@ test_ipsec_inline_proto_ipv6_set_dscp_0_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv6_set_dscp_1_inner_0(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv6_set_dscp_1_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -2443,7 +2443,7 @@ test_ipsec_inline_proto_ipv6_set_dscp_1_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv6_copy_flabel_inner_0(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv6_copy_flabel_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -2457,7 +2457,7 @@ test_ipsec_inline_proto_ipv6_copy_flabel_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv6_copy_flabel_inner_1(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv6_copy_flabel_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -2471,7 +2471,7 @@ test_ipsec_inline_proto_ipv6_copy_flabel_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv6_set_flabel_0_inner_1(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv6_set_flabel_0_inner_1(void)
 {
 	struct ipsec_test_flags flags;

@@ -2485,7 +2485,7 @@ test_ipsec_inline_proto_ipv6_set_flabel_0_inner_1(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv6_set_flabel_1_inner_0(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv6_set_flabel_1_inner_0(void)
 {
 	struct ipsec_test_flags flags;

@@ -2499,7 +2499,7 @@ test_ipsec_inline_proto_ipv6_set_flabel_1_inner_0(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv4_ttl_decrement(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv4_ttl_decrement(void)
 {
 	struct ipsec_test_flags flags = {
 		.dec_ttl_or_hop_limit = true,
@@ -2510,7 +2510,7 @@ test_ipsec_inline_proto_ipv4_ttl_decrement(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_ipv6_hop_limit_decrement(const void *data __rte_unused)
+test_ipsec_inline_proto_ipv6_hop_limit_decrement(void)
 {
 	struct ipsec_test_flags flags = {
 		.ipv6 = true,
@@ -2522,7 +2522,7 @@ test_ipsec_inline_proto_ipv6_hop_limit_decrement(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_iv_gen(const void *data __rte_unused)
+test_ipsec_inline_proto_iv_gen(void)
 {
 	struct ipsec_test_flags flags;

@@ -2535,7 +2535,7 @@ test_ipsec_inline_proto_iv_gen(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_sa_pkt_soft_expiry(const void *data __rte_unused)
+test_ipsec_inline_proto_sa_pkt_soft_expiry(void)
 {
 	struct ipsec_test_flags flags = {
 		.sa_expiry_pkts_soft = true,
@@ -2544,7 +2544,7 @@ test_ipsec_inline_proto_sa_pkt_soft_expiry(const void *data __rte_unused)
 	return test_ipsec_inline_proto_all(&flags);
 }
 static int
-test_ipsec_inline_proto_sa_byte_soft_expiry(const void *data __rte_unused)
+test_ipsec_inline_proto_sa_byte_soft_expiry(void)
 {
 	struct ipsec_test_flags flags = {
 		.sa_expiry_bytes_soft = true,
@@ -2554,7 +2554,7 @@ test_ipsec_inline_proto_sa_byte_soft_expiry(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_sa_pkt_hard_expiry(const void *data __rte_unused)
+test_ipsec_inline_proto_sa_pkt_hard_expiry(void)
 {
 	struct ipsec_test_flags flags = {
 		.sa_expiry_pkts_hard = true
@@ -2564,7 +2564,7 @@ test_ipsec_inline_proto_sa_pkt_hard_expiry(const void *data __rte_unused)
 }

 static int
-test_ipsec_inline_proto_sa_byte_hard_expiry(const void *data __rte_unused)
+test_ipsec_inline_proto_sa_byte_hard_expiry(void)
 {
 	struct ipsec_test_flags flags = {
 		.sa_expiry_bytes_hard = true
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.843507600 +0800
+++ 0038-test-fix-named-test-macro.patch	2023-10-22 22:17:34.226723700 +0800
@@ -1 +1 @@
-From 63bf81a617ac25017e23441521743af7877a38fa Mon Sep 17 00:00:00 2001
+From 1a318a87a3851f83fd48b451ce2a7b5131c3a28d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 63bf81a617ac25017e23441521743af7877a38fa ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -22,5 +24,4 @@
- app/test/test.h                        |  2 +-
- app/test/test_cryptodev.c              | 74 ++++++++++++------------
- app/test/test_security_inline_macsec.c | 48 ++++++++--------
- app/test/test_security_inline_proto.c  | 78 +++++++++++++-------------
- 4 files changed, 101 insertions(+), 101 deletions(-)
+ app/test/test.h                       |  2 +-
+ app/test/test_cryptodev.c             | 72 ++++++++++++-------------
+ app/test/test_security_inline_proto.c | 78 +++++++++++++--------------
+ 3 files changed, 76 insertions(+), 76 deletions(-)
@@ -29 +30 @@
-index eede583cf9..15e23d297f 100644
+index 85f57efbc6..6a4fa0b1d7 100644
@@ -32 +33 @@
-@@ -128,7 +128,7 @@ struct unit_test_case {
+@@ -127,7 +127,7 @@ struct unit_test_case {
@@ -42 +43 @@
-index 5b2a908a6f..8fc90342de 100644
+index bdd3da7a7c..17e5777c97 100644
@@ -45 +46 @@
-@@ -10219,7 +10219,7 @@ test_ipsec_ah_proto_all(const struct ipsec_test_flags *flags)
+@@ -9822,7 +9822,7 @@ test_ipsec_ah_proto_all(const struct ipsec_test_flags *flags)
@@ -54 +55 @@
-@@ -10231,7 +10231,7 @@ test_ipsec_proto_display_list(const void *data __rte_unused)
+@@ -9834,7 +9834,7 @@ test_ipsec_proto_display_list(const void *data __rte_unused)
@@ -63 +64 @@
-@@ -10244,7 +10244,7 @@ test_ipsec_proto_ah_tunnel_ipv4(const void *data __rte_unused)
+@@ -9847,7 +9847,7 @@ test_ipsec_proto_ah_tunnel_ipv4(const void *data __rte_unused)
@@ -72 +73 @@
-@@ -10257,7 +10257,7 @@ test_ipsec_proto_ah_transport_ipv4(const void *data __rte_unused)
+@@ -9860,7 +9860,7 @@ test_ipsec_proto_ah_transport_ipv4(const void *data __rte_unused)
@@ -81 +82 @@
-@@ -10269,7 +10269,7 @@ test_ipsec_proto_iv_gen(const void *data __rte_unused)
+@@ -9872,7 +9872,7 @@ test_ipsec_proto_iv_gen(const void *data __rte_unused)
@@ -90 +91 @@
-@@ -10281,7 +10281,7 @@ test_ipsec_proto_sa_exp_pkts_soft(const void *data __rte_unused)
+@@ -9884,7 +9884,7 @@ test_ipsec_proto_sa_exp_pkts_soft(const void *data __rte_unused)
@@ -99 +100 @@
-@@ -10293,7 +10293,7 @@ test_ipsec_proto_sa_exp_pkts_hard(const void *data __rte_unused)
+@@ -9896,7 +9896,7 @@ test_ipsec_proto_sa_exp_pkts_hard(const void *data __rte_unused)
@@ -108 +109 @@
-@@ -10305,7 +10305,7 @@ test_ipsec_proto_err_icv_corrupt(const void *data __rte_unused)
+@@ -9908,7 +9908,7 @@ test_ipsec_proto_err_icv_corrupt(const void *data __rte_unused)
@@ -117 +118 @@
-@@ -10322,7 +10322,7 @@ test_ipsec_proto_udp_encap_custom_ports(const void *data __rte_unused)
+@@ -9925,7 +9925,7 @@ test_ipsec_proto_udp_encap_custom_ports(const void *data __rte_unused)
@@ -126 +127 @@
-@@ -10334,7 +10334,7 @@ test_ipsec_proto_udp_encap(const void *data __rte_unused)
+@@ -9937,7 +9937,7 @@ test_ipsec_proto_udp_encap(const void *data __rte_unused)
@@ -135 +136 @@
-@@ -10346,7 +10346,7 @@ test_ipsec_proto_tunnel_src_dst_addr_verify(const void *data __rte_unused)
+@@ -9949,7 +9949,7 @@ test_ipsec_proto_tunnel_src_dst_addr_verify(const void *data __rte_unused)
@@ -144 +145 @@
-@@ -10358,7 +10358,7 @@ test_ipsec_proto_tunnel_dst_addr_verify(const void *data __rte_unused)
+@@ -9961,7 +9961,7 @@ test_ipsec_proto_tunnel_dst_addr_verify(const void *data __rte_unused)
@@ -153 +154 @@
-@@ -10371,7 +10371,7 @@ test_ipsec_proto_udp_ports_verify(const void *data __rte_unused)
+@@ -9974,7 +9974,7 @@ test_ipsec_proto_udp_ports_verify(const void *data __rte_unused)
@@ -162 +163 @@
-@@ -10383,7 +10383,7 @@ test_ipsec_proto_inner_ip_csum(const void *data __rte_unused)
+@@ -9986,7 +9986,7 @@ test_ipsec_proto_inner_ip_csum(const void *data __rte_unused)
@@ -171 +172 @@
-@@ -10395,7 +10395,7 @@ test_ipsec_proto_inner_l4_csum(const void *data __rte_unused)
+@@ -9998,7 +9998,7 @@ test_ipsec_proto_inner_l4_csum(const void *data __rte_unused)
@@ -180 +181 @@
-@@ -10408,7 +10408,7 @@ test_ipsec_proto_tunnel_v4_in_v4(const void *data __rte_unused)
+@@ -10011,7 +10011,7 @@ test_ipsec_proto_tunnel_v4_in_v4(const void *data __rte_unused)
@@ -189 +190 @@
-@@ -10421,7 +10421,7 @@ test_ipsec_proto_tunnel_v6_in_v6(const void *data __rte_unused)
+@@ -10024,7 +10024,7 @@ test_ipsec_proto_tunnel_v6_in_v6(const void *data __rte_unused)
@@ -198 +199 @@
-@@ -10434,7 +10434,7 @@ test_ipsec_proto_tunnel_v4_in_v6(const void *data __rte_unused)
+@@ -10037,7 +10037,7 @@ test_ipsec_proto_tunnel_v4_in_v6(const void *data __rte_unused)
@@ -207 +208 @@
-@@ -10447,7 +10447,7 @@ test_ipsec_proto_tunnel_v6_in_v4(const void *data __rte_unused)
+@@ -10050,7 +10050,7 @@ test_ipsec_proto_tunnel_v6_in_v4(const void *data __rte_unused)
@@ -216 +217 @@
-@@ -10460,7 +10460,7 @@ test_ipsec_proto_transport_v4(const void *data __rte_unused)
+@@ -10063,7 +10063,7 @@ test_ipsec_proto_transport_v4(const void *data __rte_unused)
@@ -225 +226 @@
-@@ -10471,7 +10471,7 @@ test_ipsec_proto_transport_l4_csum(const void *data __rte_unused)
+@@ -10074,7 +10074,7 @@ test_ipsec_proto_transport_l4_csum(const void *data __rte_unused)
@@ -234 +235 @@
-@@ -10483,7 +10483,7 @@ test_ipsec_proto_stats(const void *data __rte_unused)
+@@ -10086,7 +10086,7 @@ test_ipsec_proto_stats(const void *data __rte_unused)
@@ -243 +244 @@
-@@ -10496,7 +10496,7 @@ test_ipsec_proto_pkt_fragment(const void *data __rte_unused)
+@@ -10099,7 +10099,7 @@ test_ipsec_proto_pkt_fragment(const void *data __rte_unused)
@@ -252 +253 @@
-@@ -10508,7 +10508,7 @@ test_ipsec_proto_copy_df_inner_0(const void *data __rte_unused)
+@@ -10111,7 +10111,7 @@ test_ipsec_proto_copy_df_inner_0(const void *data __rte_unused)
@@ -261 +262 @@
-@@ -10520,7 +10520,7 @@ test_ipsec_proto_copy_df_inner_1(const void *data __rte_unused)
+@@ -10123,7 +10123,7 @@ test_ipsec_proto_copy_df_inner_1(const void *data __rte_unused)
@@ -270 +271 @@
-@@ -10532,7 +10532,7 @@ test_ipsec_proto_set_df_0_inner_1(const void *data __rte_unused)
+@@ -10135,7 +10135,7 @@ test_ipsec_proto_set_df_0_inner_1(const void *data __rte_unused)
@@ -279 +280 @@
-@@ -10544,7 +10544,7 @@ test_ipsec_proto_set_df_1_inner_0(const void *data __rte_unused)
+@@ -10147,7 +10147,7 @@ test_ipsec_proto_set_df_1_inner_0(const void *data __rte_unused)
@@ -288 +289 @@
-@@ -10556,7 +10556,7 @@ test_ipsec_proto_ipv4_copy_dscp_inner_0(const void *data __rte_unused)
+@@ -10159,7 +10159,7 @@ test_ipsec_proto_ipv4_copy_dscp_inner_0(const void *data __rte_unused)
@@ -297 +298 @@
-@@ -10568,7 +10568,7 @@ test_ipsec_proto_ipv4_copy_dscp_inner_1(const void *data __rte_unused)
+@@ -10171,7 +10171,7 @@ test_ipsec_proto_ipv4_copy_dscp_inner_1(const void *data __rte_unused)
@@ -306 +307 @@
-@@ -10584,7 +10584,7 @@ test_ipsec_proto_ipv4_set_dscp_0_inner_1(const void *data __rte_unused)
+@@ -10187,7 +10187,7 @@ test_ipsec_proto_ipv4_set_dscp_0_inner_1(const void *data __rte_unused)
@@ -315 +316 @@
-@@ -10600,7 +10600,7 @@ test_ipsec_proto_ipv4_set_dscp_1_inner_0(const void *data __rte_unused)
+@@ -10203,7 +10203,7 @@ test_ipsec_proto_ipv4_set_dscp_1_inner_0(const void *data __rte_unused)
@@ -324 +325 @@
-@@ -10614,7 +10614,7 @@ test_ipsec_proto_ipv6_copy_dscp_inner_0(const void *data __rte_unused)
+@@ -10217,7 +10217,7 @@ test_ipsec_proto_ipv6_copy_dscp_inner_0(const void *data __rte_unused)
@@ -333 +334 @@
-@@ -10628,7 +10628,7 @@ test_ipsec_proto_ipv6_copy_dscp_inner_1(const void *data __rte_unused)
+@@ -10231,7 +10231,7 @@ test_ipsec_proto_ipv6_copy_dscp_inner_1(const void *data __rte_unused)
@@ -342 +343 @@
-@@ -10646,7 +10646,7 @@ test_ipsec_proto_ipv6_set_dscp_0_inner_1(const void *data __rte_unused)
+@@ -10249,7 +10249,7 @@ test_ipsec_proto_ipv6_set_dscp_0_inner_1(const void *data __rte_unused)
@@ -351,10 +352 @@
-@@ -10664,7 +10664,7 @@ test_ipsec_proto_ipv6_set_dscp_1_inner_0(const void *data __rte_unused)
- }
-
- static int
--test_ipsec_proto_sgl(const void *data __rte_unused)
-+test_ipsec_proto_sgl(void)
- {
- 	struct crypto_testsuite_params *ts_params = &testsuite_params;
- 	struct rte_cryptodev_info dev_info;
-@@ -10872,7 +10872,7 @@ test_PDCP_PROTO_all(void)
+@@ -10455,7 +10455,7 @@ test_PDCP_PROTO_all(void)
@@ -369 +361 @@
-@@ -10882,7 +10882,7 @@ test_ipsec_proto_ipv4_ttl_decrement(const void *data __rte_unused)
+@@ -10465,7 +10465,7 @@ test_ipsec_proto_ipv4_ttl_decrement(const void *data __rte_unused)
@@ -378,220 +369,0 @@
-diff --git a/app/test/test_security_inline_macsec.c b/app/test/test_security_inline_macsec.c
-index bfb9e09752..475f2aec83 100644
---- a/app/test/test_security_inline_macsec.c
-+++ b/app/test/test_security_inline_macsec.c
-@@ -1181,7 +1181,7 @@ out:
- }
-
- static int
--test_inline_macsec_encap_all(const void *data __rte_unused)
-+test_inline_macsec_encap_all(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1215,7 +1215,7 @@ test_inline_macsec_encap_all(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_decap_all(const void *data __rte_unused)
-+test_inline_macsec_decap_all(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1247,7 +1247,7 @@ test_inline_macsec_decap_all(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_auth_only_all(const void *data __rte_unused)
-+test_inline_macsec_auth_only_all(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1281,7 +1281,7 @@ test_inline_macsec_auth_only_all(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_verify_only_all(const void *data __rte_unused)
-+test_inline_macsec_verify_only_all(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1314,7 +1314,7 @@ test_inline_macsec_verify_only_all(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_encap_decap_all(const void *data __rte_unused)
-+test_inline_macsec_encap_decap_all(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1350,7 +1350,7 @@ test_inline_macsec_encap_decap_all(const void *data __rte_unused)
-
-
- static int
--test_inline_macsec_auth_verify_all(const void *data __rte_unused)
-+test_inline_macsec_auth_verify_all(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1384,7 +1384,7 @@ test_inline_macsec_auth_verify_all(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_multi_flow(const void *data __rte_unused)
-+test_inline_macsec_multi_flow(void)
- {
- 	const struct mcs_test_vector *tv[MCS_MAX_FLOWS];
- 	struct mcs_test_vector iter[MCS_MAX_FLOWS];
-@@ -1429,7 +1429,7 @@ test_inline_macsec_multi_flow(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_with_vlan(const void *data __rte_unused)
-+test_inline_macsec_with_vlan(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1492,7 +1492,7 @@ test_inline_macsec_with_vlan(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_pkt_drop(const void *data __rte_unused)
-+test_inline_macsec_pkt_drop(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1527,7 +1527,7 @@ test_inline_macsec_pkt_drop(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_untagged_rx(const void *data __rte_unused)
-+test_inline_macsec_untagged_rx(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1572,7 +1572,7 @@ test_inline_macsec_untagged_rx(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_bad_tag_rx(const void *data __rte_unused)
-+test_inline_macsec_bad_tag_rx(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1606,7 +1606,7 @@ test_inline_macsec_bad_tag_rx(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_sa_not_in_use(const void *data __rte_unused)
-+test_inline_macsec_sa_not_in_use(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1640,7 +1640,7 @@ test_inline_macsec_sa_not_in_use(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_decap_stats(const void *data __rte_unused)
-+test_inline_macsec_decap_stats(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1675,7 +1675,7 @@ test_inline_macsec_decap_stats(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_verify_only_stats(const void *data __rte_unused)
-+test_inline_macsec_verify_only_stats(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1710,7 +1710,7 @@ test_inline_macsec_verify_only_stats(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_pkts_invalid_stats(const void *data __rte_unused)
-+test_inline_macsec_pkts_invalid_stats(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1741,7 +1741,7 @@ test_inline_macsec_pkts_invalid_stats(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_pkts_unchecked_stats(const void *data __rte_unused)
-+test_inline_macsec_pkts_unchecked_stats(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1774,7 +1774,7 @@ test_inline_macsec_pkts_unchecked_stats(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_out_pkts_untagged(const void *data __rte_unused)
-+test_inline_macsec_out_pkts_untagged(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1807,7 +1807,7 @@ test_inline_macsec_out_pkts_untagged(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_out_pkts_toolong(const void *data __rte_unused)
-+test_inline_macsec_out_pkts_toolong(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1840,7 +1840,7 @@ test_inline_macsec_out_pkts_toolong(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_encap_stats(const void *data __rte_unused)
-+test_inline_macsec_encap_stats(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1872,7 +1872,7 @@ test_inline_macsec_encap_stats(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_auth_only_stats(const void *data __rte_unused)
-+test_inline_macsec_auth_only_stats(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1904,7 +1904,7 @@ test_inline_macsec_auth_only_stats(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_interrupts_all(const void *data __rte_unused)
-+test_inline_macsec_interrupts_all(void)
- {
- 	struct mcs_err_vector err_vector = {0};
- 	const struct mcs_test_vector *cur_td;
-@@ -1957,7 +1957,7 @@ test_inline_macsec_interrupts_all(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_rekey_tx(const void *data __rte_unused)
-+test_inline_macsec_rekey_tx(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -1994,7 +1994,7 @@ test_inline_macsec_rekey_tx(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_rekey_rx(const void *data __rte_unused)
-+test_inline_macsec_rekey_rx(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
-@@ -2029,7 +2029,7 @@ test_inline_macsec_rekey_rx(const void *data __rte_unused)
- }
-
- static int
--test_inline_macsec_anti_replay(const void *data __rte_unused)
-+test_inline_macsec_anti_replay(void)
- {
- 	const struct mcs_test_vector *cur_td;
- 	struct mcs_test_opts opts = {0};
@@ -599 +371 @@
-index 45aa742c6b..e277c53991 100644
+index e411a3c21d..0a966d3f4b 100644
@@ -602 +374 @@
-@@ -2076,7 +2076,7 @@ test_ipsec_inline_proto_known_vec_inb(const void *test_data)
+@@ -2065,7 +2065,7 @@ test_ipsec_inline_proto_known_vec_inb(const void *test_data)
@@ -611 +383 @@
-@@ -2089,7 +2089,7 @@ test_ipsec_inline_proto_display_list(const void *data __rte_unused)
+@@ -2078,7 +2078,7 @@ test_ipsec_inline_proto_display_list(const void *data __rte_unused)
@@ -620 +392 @@
-@@ -2102,7 +2102,7 @@ test_ipsec_inline_proto_udp_encap(const void *data __rte_unused)
+@@ -2091,7 +2091,7 @@ test_ipsec_inline_proto_udp_encap(const void *data __rte_unused)
@@ -629 +401 @@
-@@ -2116,7 +2116,7 @@ test_ipsec_inline_proto_udp_ports_verify(const void *data __rte_unused)
+@@ -2105,7 +2105,7 @@ test_ipsec_inline_proto_udp_ports_verify(const void *data __rte_unused)
@@ -638 +410 @@
-@@ -2129,7 +2129,7 @@ test_ipsec_inline_proto_err_icv_corrupt(const void *data __rte_unused)
+@@ -2118,7 +2118,7 @@ test_ipsec_inline_proto_err_icv_corrupt(const void *data __rte_unused)
@@ -647 +419 @@
-@@ -2142,7 +2142,7 @@ test_ipsec_inline_proto_tunnel_dst_addr_verify(const void *data __rte_unused)
+@@ -2131,7 +2131,7 @@ test_ipsec_inline_proto_tunnel_dst_addr_verify(const void *data __rte_unused)
@@ -656 +428 @@
-@@ -2155,7 +2155,7 @@ test_ipsec_inline_proto_tunnel_src_dst_addr_verify(const void *data __rte_unused
+@@ -2144,7 +2144,7 @@ test_ipsec_inline_proto_tunnel_src_dst_addr_verify(const void *data __rte_unused
@@ -665 +437 @@
-@@ -2168,7 +2168,7 @@ test_ipsec_inline_proto_inner_ip_csum(const void *data __rte_unused)
+@@ -2157,7 +2157,7 @@ test_ipsec_inline_proto_inner_ip_csum(const void *data __rte_unused)
@@ -674 +446 @@
-@@ -2181,7 +2181,7 @@ test_ipsec_inline_proto_inner_l4_csum(const void *data __rte_unused)
+@@ -2170,7 +2170,7 @@ test_ipsec_inline_proto_inner_l4_csum(const void *data __rte_unused)
@@ -683 +455 @@
-@@ -2195,7 +2195,7 @@ test_ipsec_inline_proto_tunnel_v4_in_v4(const void *data __rte_unused)
+@@ -2184,7 +2184,7 @@ test_ipsec_inline_proto_tunnel_v4_in_v4(const void *data __rte_unused)
@@ -692 +464 @@
-@@ -2209,7 +2209,7 @@ test_ipsec_inline_proto_tunnel_v6_in_v6(const void *data __rte_unused)
+@@ -2198,7 +2198,7 @@ test_ipsec_inline_proto_tunnel_v6_in_v6(const void *data __rte_unused)
@@ -701 +473 @@
-@@ -2223,7 +2223,7 @@ test_ipsec_inline_proto_tunnel_v4_in_v6(const void *data __rte_unused)
+@@ -2212,7 +2212,7 @@ test_ipsec_inline_proto_tunnel_v4_in_v6(const void *data __rte_unused)
@@ -710 +482 @@
-@@ -2237,7 +2237,7 @@ test_ipsec_inline_proto_tunnel_v6_in_v4(const void *data __rte_unused)
+@@ -2226,7 +2226,7 @@ test_ipsec_inline_proto_tunnel_v6_in_v4(const void *data __rte_unused)
@@ -719 +491 @@
-@@ -2251,7 +2251,7 @@ test_ipsec_inline_proto_transport_v4(const void *data __rte_unused)
+@@ -2240,7 +2240,7 @@ test_ipsec_inline_proto_transport_v4(const void *data __rte_unused)
@@ -728 +500 @@
-@@ -2263,7 +2263,7 @@ test_ipsec_inline_proto_transport_l4_csum(const void *data __rte_unused)
+@@ -2252,7 +2252,7 @@ test_ipsec_inline_proto_transport_l4_csum(const void *data __rte_unused)
@@ -737 +509 @@
-@@ -2276,7 +2276,7 @@ test_ipsec_inline_proto_stats(const void *data __rte_unused)
+@@ -2265,7 +2265,7 @@ test_ipsec_inline_proto_stats(const void *data __rte_unused)
@@ -746 +518 @@
-@@ -2290,7 +2290,7 @@ test_ipsec_inline_proto_pkt_fragment(const void *data __rte_unused)
+@@ -2279,7 +2279,7 @@ test_ipsec_inline_proto_pkt_fragment(const void *data __rte_unused)
@@ -755 +527 @@
-@@ -2303,7 +2303,7 @@ test_ipsec_inline_proto_copy_df_inner_0(const void *data __rte_unused)
+@@ -2292,7 +2292,7 @@ test_ipsec_inline_proto_copy_df_inner_0(const void *data __rte_unused)
@@ -764 +536 @@
-@@ -2316,7 +2316,7 @@ test_ipsec_inline_proto_copy_df_inner_1(const void *data __rte_unused)
+@@ -2305,7 +2305,7 @@ test_ipsec_inline_proto_copy_df_inner_1(const void *data __rte_unused)
@@ -773 +545 @@
-@@ -2329,7 +2329,7 @@ test_ipsec_inline_proto_set_df_0_inner_1(const void *data __rte_unused)
+@@ -2318,7 +2318,7 @@ test_ipsec_inline_proto_set_df_0_inner_1(const void *data __rte_unused)
@@ -782 +554 @@
-@@ -2342,7 +2342,7 @@ test_ipsec_inline_proto_set_df_1_inner_0(const void *data __rte_unused)
+@@ -2331,7 +2331,7 @@ test_ipsec_inline_proto_set_df_1_inner_0(const void *data __rte_unused)
@@ -791 +563 @@
-@@ -2355,7 +2355,7 @@ test_ipsec_inline_proto_ipv4_copy_dscp_inner_0(const void *data __rte_unused)
+@@ -2344,7 +2344,7 @@ test_ipsec_inline_proto_ipv4_copy_dscp_inner_0(const void *data __rte_unused)
@@ -800 +572 @@
-@@ -2368,7 +2368,7 @@ test_ipsec_inline_proto_ipv4_copy_dscp_inner_1(const void *data __rte_unused)
+@@ -2357,7 +2357,7 @@ test_ipsec_inline_proto_ipv4_copy_dscp_inner_1(const void *data __rte_unused)
@@ -809 +581 @@
-@@ -2381,7 +2381,7 @@ test_ipsec_inline_proto_ipv4_set_dscp_0_inner_1(const void *data __rte_unused)
+@@ -2370,7 +2370,7 @@ test_ipsec_inline_proto_ipv4_set_dscp_0_inner_1(const void *data __rte_unused)
@@ -818 +590 @@
-@@ -2394,7 +2394,7 @@ test_ipsec_inline_proto_ipv4_set_dscp_1_inner_0(const void *data __rte_unused)
+@@ -2383,7 +2383,7 @@ test_ipsec_inline_proto_ipv4_set_dscp_1_inner_0(const void *data __rte_unused)
@@ -827 +599 @@
-@@ -2409,7 +2409,7 @@ test_ipsec_inline_proto_ipv6_copy_dscp_inner_0(const void *data __rte_unused)
+@@ -2398,7 +2398,7 @@ test_ipsec_inline_proto_ipv6_copy_dscp_inner_0(const void *data __rte_unused)
@@ -836 +608 @@
-@@ -2424,7 +2424,7 @@ test_ipsec_inline_proto_ipv6_copy_dscp_inner_1(const void *data __rte_unused)
+@@ -2413,7 +2413,7 @@ test_ipsec_inline_proto_ipv6_copy_dscp_inner_1(const void *data __rte_unused)
@@ -845 +617 @@
-@@ -2439,7 +2439,7 @@ test_ipsec_inline_proto_ipv6_set_dscp_0_inner_1(const void *data __rte_unused)
+@@ -2428,7 +2428,7 @@ test_ipsec_inline_proto_ipv6_set_dscp_0_inner_1(const void *data __rte_unused)
@@ -854 +626 @@
-@@ -2454,7 +2454,7 @@ test_ipsec_inline_proto_ipv6_set_dscp_1_inner_0(const void *data __rte_unused)
+@@ -2443,7 +2443,7 @@ test_ipsec_inline_proto_ipv6_set_dscp_1_inner_0(const void *data __rte_unused)
@@ -863 +635 @@
-@@ -2468,7 +2468,7 @@ test_ipsec_inline_proto_ipv6_copy_flabel_inner_0(const void *data __rte_unused)
+@@ -2457,7 +2457,7 @@ test_ipsec_inline_proto_ipv6_copy_flabel_inner_0(const void *data __rte_unused)
@@ -872 +644 @@
-@@ -2482,7 +2482,7 @@ test_ipsec_inline_proto_ipv6_copy_flabel_inner_1(const void *data __rte_unused)
+@@ -2471,7 +2471,7 @@ test_ipsec_inline_proto_ipv6_copy_flabel_inner_1(const void *data __rte_unused)
@@ -881 +653 @@
-@@ -2496,7 +2496,7 @@ test_ipsec_inline_proto_ipv6_set_flabel_0_inner_1(const void *data __rte_unused)
+@@ -2485,7 +2485,7 @@ test_ipsec_inline_proto_ipv6_set_flabel_0_inner_1(const void *data __rte_unused)
@@ -890 +662 @@
-@@ -2510,7 +2510,7 @@ test_ipsec_inline_proto_ipv6_set_flabel_1_inner_0(const void *data __rte_unused)
+@@ -2499,7 +2499,7 @@ test_ipsec_inline_proto_ipv6_set_flabel_1_inner_0(const void *data __rte_unused)
@@ -899 +671 @@
-@@ -2521,7 +2521,7 @@ test_ipsec_inline_proto_ipv4_ttl_decrement(const void *data __rte_unused)
+@@ -2510,7 +2510,7 @@ test_ipsec_inline_proto_ipv4_ttl_decrement(const void *data __rte_unused)
@@ -908 +680 @@
-@@ -2533,7 +2533,7 @@ test_ipsec_inline_proto_ipv6_hop_limit_decrement(const void *data __rte_unused)
+@@ -2522,7 +2522,7 @@ test_ipsec_inline_proto_ipv6_hop_limit_decrement(const void *data __rte_unused)
@@ -917 +689 @@
-@@ -2546,7 +2546,7 @@ test_ipsec_inline_proto_iv_gen(const void *data __rte_unused)
+@@ -2535,7 +2535,7 @@ test_ipsec_inline_proto_iv_gen(const void *data __rte_unused)
@@ -926 +698 @@
-@@ -2555,7 +2555,7 @@ test_ipsec_inline_proto_sa_pkt_soft_expiry(const void *data __rte_unused)
+@@ -2544,7 +2544,7 @@ test_ipsec_inline_proto_sa_pkt_soft_expiry(const void *data __rte_unused)
@@ -935 +707 @@
-@@ -2565,7 +2565,7 @@ test_ipsec_inline_proto_sa_byte_soft_expiry(const void *data __rte_unused)
+@@ -2554,7 +2554,7 @@ test_ipsec_inline_proto_sa_byte_soft_expiry(const void *data __rte_unused)
@@ -944 +716 @@
-@@ -2575,7 +2575,7 @@ test_ipsec_inline_proto_sa_pkt_hard_expiry(const void *data __rte_unused)
+@@ -2564,7 +2564,7 @@ test_ipsec_inline_proto_sa_pkt_hard_expiry(const void *data __rte_unused)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'cryptodev: add missing doc for security context' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (37 preceding siblings ...)
  2023-10-22 14:21 ` patch 'test: fix named test macro' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'crypto/dpaa2_sec: fix debug prints' " Xueming Li
                   ` (102 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Anoob Joseph; +Cc: Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8af3c9994e805c52d300dd5d9ef962170f0b8cea

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8af3c9994e805c52d300dd5d9ef962170f0b8cea Mon Sep 17 00:00:00 2001
From: Anoob Joseph <anoobj@marvell.com>
Date: Tue, 12 Sep 2023 16:12:14 +0530
Subject: [PATCH] cryptodev: add missing doc for security context
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 1e71cb205047fd7f151018179279de92b2e92fa2 ]

Description for rte_cryptodev_get_sec_ctx is missing. Add the same.

Fixes: eadb4fa1e1fe ("cryptodev: support security APIs")

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 lib/cryptodev/rte_cryptodev.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/lib/cryptodev/rte_cryptodev.h b/lib/cryptodev/rte_cryptodev.h
index 4c210b876c..0c9464649a 100644
--- a/lib/cryptodev/rte_cryptodev.h
+++ b/lib/cryptodev/rte_cryptodev.h
@@ -906,6 +906,15 @@ struct rte_cryptodev_cb_rcu {
 	/**< RCU QSBR variable per queue pair */
 };

+/**
+ * Get the security context for the cryptodev.
+ *
+ * @param dev_id
+ *   The device identifier.
+ * @return
+ *   - NULL on error.
+ *   - Pointer to security context on success.
+ */
 void *
 rte_cryptodev_get_sec_ctx(uint8_t dev_id);

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.889243800 +0800
+++ 0039-cryptodev-add-missing-doc-for-security-context.patch	2023-10-22 22:17:34.226723700 +0800
@@ -1 +1 @@
-From 1e71cb205047fd7f151018179279de92b2e92fa2 Mon Sep 17 00:00:00 2001
+From 8af3c9994e805c52d300dd5d9ef962170f0b8cea Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1e71cb205047fd7f151018179279de92b2e92fa2 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 9246df90ef..9f07e1ed2c 100644
+index 4c210b876c..0c9464649a 100644
@@ -21 +23 @@
-@@ -971,6 +971,15 @@ struct rte_cryptodev_cb_rcu {
+@@ -906,6 +906,15 @@ struct rte_cryptodev_cb_rcu {

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'crypto/dpaa2_sec: fix debug prints' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (38 preceding siblings ...)
  2023-10-22 14:21 ` patch 'cryptodev: add missing doc for security context' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'crypto/dpaa_sec: " Xueming Li
                   ` (101 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: David Marchand; +Cc: Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=00819a704d7c7d207ac8c3ca270669b5f8f79db5

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 00819a704d7c7d207ac8c3ca270669b5f8f79db5 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 13 Sep 2023 15:01:23 +0100
Subject: [PATCH] crypto/dpaa2_sec: fix debug prints
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3e52f9db64f8a6ac6aefe451243c63be5e5de401 ]

RTE_LIBRTE_SECURITY has been replaced with RTE_LIB_SECURITY for a
while now.

Fixes: 84bb24bd058c ("crypto/dpaa2_sec: add debug prints")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index c25e40030b..cf1339f266 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -1676,7 +1676,7 @@ dpaa2_sec_dump(struct rte_crypto_op *op)

 	if (op->sess_type == RTE_CRYPTO_OP_WITH_SESSION)
 		sess = CRYPTODEV_GET_SYM_SESS_PRIV(op->sym->session);
-#ifdef RTE_LIBRTE_SECURITY
+#ifdef RTE_LIB_SECURITY
 	else if (op->sess_type == RTE_CRYPTO_OP_SECURITY_SESSION)
 		sess = SECURITY_GET_SESS_PRIV(op->sym->session);
 #endif
@@ -1703,7 +1703,7 @@ dpaa2_sec_dump(struct rte_crypto_op *op)
 		sess->digest_length, sess->status,
 		sess->ext_params.aead_ctxt.auth_only_len,
 		sess->ext_params.aead_ctxt.auth_cipher_text);
-#ifdef RTE_LIBRTE_SECURITY
+#ifdef RTE_LIB_SECURITY
 	printf("PDCP session params:\n"
 		"\tDomain:\t\t%d\n\tBearer:\t\t%d\n\tpkt_dir:\t%d\n\thfn_ovd:"
 		"\t%d\n\tsn_size:\t%d\n\thfn_ovd_offset:\t%d\n\thfn:\t\t%d\n"
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.924519000 +0800
+++ 0040-crypto-dpaa2_sec-fix-debug-prints.patch	2023-10-22 22:17:34.226723700 +0800
@@ -1 +1 @@
-From 3e52f9db64f8a6ac6aefe451243c63be5e5de401 Mon Sep 17 00:00:00 2001
+From 00819a704d7c7d207ac8c3ca270669b5f8f79db5 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3e52f9db64f8a6ac6aefe451243c63be5e5de401 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 5ccfcbd7a6..f9eba4a7bd 100644
+index c25e40030b..cf1339f266 100644
@@ -22 +24 @@
-@@ -1663,7 +1663,7 @@ dpaa2_sec_dump(struct rte_crypto_op *op)
+@@ -1676,7 +1676,7 @@ dpaa2_sec_dump(struct rte_crypto_op *op)
@@ -31 +33 @@
-@@ -1690,7 +1690,7 @@ dpaa2_sec_dump(struct rte_crypto_op *op)
+@@ -1703,7 +1703,7 @@ dpaa2_sec_dump(struct rte_crypto_op *op)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'crypto/dpaa_sec: fix debug prints' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (39 preceding siblings ...)
  2023-10-22 14:21 ` patch 'crypto/dpaa2_sec: fix debug prints' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'doc: replace code blocks with includes in security guide' " Xueming Li
                   ` (100 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: David Marchand; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=3d75e696dc0cacdcbad54210a5067bcdc074510d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 3d75e696dc0cacdcbad54210a5067bcdc074510d Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 13 Sep 2023 15:01:24 +0100
Subject: [PATCH] crypto/dpaa_sec: fix debug prints
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 4331f81437e8327bf43403a1f5bb11a3e3a95874 ]

RTE_LIBRTE_SECURITY has been replaced with RTE_LIB_SECURITY for a
while now.

Fixes: b1bbf222bef1 ("crypto/dpaa_sec: add debug prints")

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/crypto/dpaa_sec/dpaa_sec.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index db52683847..7807c83e54 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -671,7 +671,7 @@ dpaa_sec_dump(struct dpaa_sec_op_ctx *ctx, struct dpaa_sec_qp *qp)

 	if (op->sess_type == RTE_CRYPTO_OP_WITH_SESSION)
 		sess = CRYPTODEV_GET_SYM_SESS_PRIV(op->sym->session);
-#ifdef RTE_LIBRTE_SECURITY
+#ifdef RTE_LIB_SECURITY
 	else if (op->sess_type == RTE_CRYPTO_OP_SECURITY_SESSION)
 		sess = SECURITY_GET_SESS_PRIV(op->sym->session);
 #endif
@@ -682,7 +682,7 @@ dpaa_sec_dump(struct dpaa_sec_op_ctx *ctx, struct dpaa_sec_qp *qp)

 	cdb = &sess->cdb;
 	rte_memcpy(&c_cdb, cdb, sizeof(struct sec_cdb));
-#ifdef RTE_LIBRTE_SECURITY
+#ifdef RTE_LIB_SECURITY
 	printf("\nsession protocol type = %d\n", sess->proto_alg);
 #endif
 	printf("\n****************************************\n"
@@ -707,7 +707,7 @@ dpaa_sec_dump(struct dpaa_sec_op_ctx *ctx, struct dpaa_sec_qp *qp)
 		sess->iv.length, sess->iv.offset,
 		sess->digest_length, sess->auth_only_len,
 		sess->auth_cipher_text);
-#ifdef RTE_LIBRTE_SECURITY
+#ifdef RTE_LIB_SECURITY
 	printf("PDCP session params:\n"
 		"\tDomain:\t\t%d\n\tBearer:\t\t%d\n\tpkt_dir:\t%d\n\thfn_ovd:"
 		"\t%d\n\tsn_size:\t%d\n\tsdap_enabled:\t%d\n\thfn_ovd_offset:"
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.963156100 +0800
+++ 0041-crypto-dpaa_sec-fix-debug-prints.patch	2023-10-22 22:17:34.236723700 +0800
@@ -1 +1 @@
-From 4331f81437e8327bf43403a1f5bb11a3e3a95874 Mon Sep 17 00:00:00 2001
+From 3d75e696dc0cacdcbad54210a5067bcdc074510d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4331f81437e8327bf43403a1f5bb11a3e3a95874 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 7d47c32693..f3f565826f 100644
+index db52683847..7807c83e54 100644
@@ -21 +23 @@
-@@ -666,7 +666,7 @@ dpaa_sec_dump(struct dpaa_sec_op_ctx *ctx, struct dpaa_sec_qp *qp)
+@@ -671,7 +671,7 @@ dpaa_sec_dump(struct dpaa_sec_op_ctx *ctx, struct dpaa_sec_qp *qp)
@@ -30 +32 @@
-@@ -677,7 +677,7 @@ dpaa_sec_dump(struct dpaa_sec_op_ctx *ctx, struct dpaa_sec_qp *qp)
+@@ -682,7 +682,7 @@ dpaa_sec_dump(struct dpaa_sec_op_ctx *ctx, struct dpaa_sec_qp *qp)
@@ -39 +41 @@
-@@ -702,7 +702,7 @@ dpaa_sec_dump(struct dpaa_sec_op_ctx *ctx, struct dpaa_sec_qp *qp)
+@@ -707,7 +707,7 @@ dpaa_sec_dump(struct dpaa_sec_op_ctx *ctx, struct dpaa_sec_qp *qp)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'doc: replace code blocks with includes in security guide' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (40 preceding siblings ...)
  2023-10-22 14:21 ` patch 'crypto/dpaa_sec: " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'test/security: fix IPv6 next header field' " Xueming Li
                   ` (99 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Anoob Joseph; +Cc: Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=7004929e2978e63af021411e31eb0b9a05d2c87d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7004929e2978e63af021411e31eb0b9a05d2c87d Mon Sep 17 00:00:00 2001
From: Anoob Joseph <anoobj@marvell.com>
Date: Fri, 18 Aug 2023 14:59:42 +0530
Subject: [PATCH] doc: replace code blocks with includes in security guide
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 03e3cfda1679998aa512464affb8dd293146364a ]

Add literal includes to copy code block while compiling. Having a copy
may lead to mismatch if code is updated without updating the doc.

Fixes: 40ff8c99ea99 ("doc: add details of security library")

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 doc/guides/prog_guide/rte_security.rst | 65 +++++---------------------
 lib/security/rte_security.h            |  6 +++
 2 files changed, 18 insertions(+), 53 deletions(-)

diff --git a/doc/guides/prog_guide/rte_security.rst b/doc/guides/prog_guide/rte_security.rst
index 7418e35c1b..ae8b0aaef3 100644
--- a/doc/guides/prog_guide/rte_security.rst
+++ b/doc/guides/prog_guide/rte_security.rst
@@ -671,68 +671,27 @@ Security session configuration

 Security Session configuration structure is defined as ``rte_security_session_conf``

-.. code-block:: c
-
-    struct rte_security_session_conf {
-        enum rte_security_session_action_type action_type;
-        /**< Type of action to be performed on the session */
-        enum rte_security_session_protocol protocol;
-        /**< Security protocol to be configured */
-        union {
-                struct rte_security_ipsec_xform ipsec;
-                struct rte_security_macsec_xform macsec;
-                struct rte_security_pdcp_xform pdcp;
-                struct rte_security_docsis_xform docsis;
-        };
-        /**< Configuration parameters for security session */
-        struct rte_crypto_sym_xform *crypto_xform;
-        /**< Security Session Crypto Transformations */
-        void *userdata;
-        /**< Application specific userdata to be saved with session */
-    };
+.. literalinclude:: ../../../lib/security/rte_security.h
+   :language: c
+   :start-after: Structure rte_security_session_conf 8<
+   :end-before: >8 End of structure rte_security_session_conf.

 The configuration structure reuses the ``rte_crypto_sym_xform`` struct for crypto related
 configuration. The ``rte_security_session_action_type`` struct is used to specify whether the
 session is configured for Lookaside Protocol offload or Inline Crypto or Inline Protocol
 Offload.

-.. code-block:: c
-
-    enum rte_security_session_action_type {
-        RTE_SECURITY_ACTION_TYPE_NONE,
-        /**< No security actions */
-        RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO,
-        /**< Crypto processing for security protocol is processed inline
-         * during transmission
-         */
-        RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL,
-        /**< All security protocol processing is performed inline during
-         * transmission
-         */
-        RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL,
-        /**< All security protocol processing including crypto is performed
-         * on a lookaside accelerator
-         */
-        RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO
-        /**< Similar to ACTION_TYPE_NONE but crypto processing for security
-         * protocol is processed synchronously by a CPU.
-         */
-    };
+.. literalinclude:: ../../../lib/security/rte_security.h
+   :language: c
+   :start-after: Enumeration of rte_security_session_action_type 8<
+   :end-before: >8 End enumeration of rte_security_session_action_type.

 The ``rte_security_session_protocol`` is defined as

-.. code-block:: c
-
-    enum rte_security_session_protocol {
-        RTE_SECURITY_PROTOCOL_IPSEC = 1,
-        /**< IPsec Protocol */
-        RTE_SECURITY_PROTOCOL_MACSEC,
-        /**< MACSec Protocol */
-        RTE_SECURITY_PROTOCOL_PDCP,
-        /**< PDCP Protocol */
-        RTE_SECURITY_PROTOCOL_DOCSIS,
-        /**< DOCSIS Protocol */
-    };
+.. literalinclude:: ../../../lib/security/rte_security.h
+   :language: c
+   :start-after: Enumeration of rte_security_session_protocol 8<
+   :end-before: >8 End enumeration of rte_security_session_protocol.

 Currently the library defines configuration parameters for IPsec and PDCP only.
 For other protocols like MACSec, structures and enums are defined as place holders
diff --git a/lib/security/rte_security.h b/lib/security/rte_security.h
index 4bacf9fcd9..fd7013a23d 100644
--- a/lib/security/rte_security.h
+++ b/lib/security/rte_security.h
@@ -618,6 +618,7 @@ struct rte_security_docsis_xform {
 /**
  * Security session action type.
  */
+/* Enumeration of rte_security_session_action_type 8<*/
 enum rte_security_session_action_type {
 	RTE_SECURITY_ACTION_TYPE_NONE,
 	/**< No security actions */
@@ -638,8 +639,10 @@ enum rte_security_session_action_type {
 	 * protocol is processed synchronously by a CPU.
 	 */
 };
+/* >8 End enumeration of rte_security_session_action_type. */

 /** Security session protocol definition */
+/* Enumeration of rte_security_session_protocol 8<*/
 enum rte_security_session_protocol {
 	RTE_SECURITY_PROTOCOL_IPSEC = 1,
 	/**< IPsec Protocol */
@@ -650,10 +653,12 @@ enum rte_security_session_protocol {
 	RTE_SECURITY_PROTOCOL_DOCSIS,
 	/**< DOCSIS Protocol */
 };
+/* >8 End enumeration of rte_security_session_protocol. */

 /**
  * Security session configuration
  */
+/* Structure rte_security_session_conf 8< */
 struct rte_security_session_conf {
 	enum rte_security_session_action_type action_type;
 	/**< Type of action to be performed on the session */
@@ -672,6 +677,7 @@ struct rte_security_session_conf {
 	void *userdata;
 	/**< Application specific userdata to be saved with session */
 };
+/* >8 End of structure rte_security_session_conf. */

 /**
  * Create security session as specified by the session configuration
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:35.995120100 +0800
+++ 0042-doc-replace-code-blocks-with-includes-in-security-gu.patch	2023-10-22 22:17:34.236723700 +0800
@@ -1 +1 @@
-From 03e3cfda1679998aa512464affb8dd293146364a Mon Sep 17 00:00:00 2001
+From 7004929e2978e63af021411e31eb0b9a05d2c87d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 03e3cfda1679998aa512464affb8dd293146364a ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -105 +107 @@
-index 3f8abfef15..c6550f4d8d 100644
+index 4bacf9fcd9..fd7013a23d 100644
@@ -108 +110 @@
-@@ -622,6 +622,7 @@ struct rte_security_docsis_xform {
+@@ -618,6 +618,7 @@ struct rte_security_docsis_xform {
@@ -116 +118 @@
-@@ -642,8 +643,10 @@ enum rte_security_session_action_type {
+@@ -638,8 +639,10 @@ enum rte_security_session_action_type {
@@ -127 +129 @@
-@@ -654,10 +657,12 @@ enum rte_security_session_protocol {
+@@ -650,10 +653,12 @@ enum rte_security_session_protocol {
@@ -140 +142 @@
-@@ -675,6 +680,7 @@ struct rte_security_session_conf {
+@@ -672,6 +677,7 @@ struct rte_security_session_conf {

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test/security: fix IPv6 next header field' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (41 preceding siblings ...)
  2023-10-22 14:21 ` patch 'doc: replace code blocks with includes in security guide' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'test/crypto: fix IV in some vectors' " Xueming Li
                   ` (98 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Rahul Bhansali; +Cc: Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e4cba3bb19bb73a011db180436361cb0f97ca043

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e4cba3bb19bb73a011db180436361cb0f97ca043 Mon Sep 17 00:00:00 2001
From: Rahul Bhansali <rbhansali@marvell.com>
Date: Fri, 18 Aug 2023 20:02:29 +0530
Subject: [PATCH] test/security: fix IPv6 next header field
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c61b7313e6442f4e4494847694b0364a0c793069 ]

In case of IPv6 fragments are reassembled, then fragment
header will be removed from packet and next-header field in
IPv6 header will be updated to header followed by fragment header.

Fixes: a310577766d6 ("test/security: add inline IPsec reassembly cases")

Signed-off-by: Rahul Bhansali <rbhansali@marvell.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 app/test/test_security_inline_proto_vectors.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/test/test_security_inline_proto_vectors.h b/app/test/test_security_inline_proto_vectors.h
index 003537e200..d0a4b948e4 100644
--- a/app/test/test_security_inline_proto_vectors.h
+++ b/app/test/test_security_inline_proto_vectors.h
@@ -88,7 +88,7 @@ struct ip_reassembly_test_packet pkt_ipv6_udp_p1 = {
 	.l4_offset = 40,
 	.data = {
 		/* IP */
-		0x60, 0x00, 0x00, 0x00, 0x05, 0xb4, 0x2C, 0x40,
+		0x60, 0x00, 0x00, 0x00, 0x05, 0xb4, 0x11, 0x40,
 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 		0x00, 0x00, 0xff, 0xff, 0x0d, 0x00, 0x00, 0x02,
 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -135,7 +135,7 @@ struct ip_reassembly_test_packet pkt_ipv6_udp_p2 = {
 	.l4_offset = 40,
 	.data = {
 		/* IP */
-		0x60, 0x00, 0x00, 0x00, 0x11, 0x5a, 0x2c, 0x40,
+		0x60, 0x00, 0x00, 0x00, 0x11, 0x5a, 0x11, 0x40,
 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 		0x00, 0x00, 0xff, 0xff, 0x0d, 0x00, 0x00, 0x02,
 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.028224300 +0800
+++ 0043-test-security-fix-IPv6-next-header-field.patch	2023-10-22 22:17:34.236723700 +0800
@@ -1 +1 @@
-From c61b7313e6442f4e4494847694b0364a0c793069 Mon Sep 17 00:00:00 2001
+From e4cba3bb19bb73a011db180436361cb0f97ca043 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c61b7313e6442f4e4494847694b0364a0c793069 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 61a045b446..3ac75588a3 100644
+index 003537e200..d0a4b948e4 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test/crypto: fix IV in some vectors' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (42 preceding siblings ...)
  2023-10-22 14:21 ` patch 'test/security: fix IPv6 next header field' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'test/crypto: skip some synchronous tests with CPU crypto' " Xueming Li
                   ` (97 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Brian Dooley; +Cc: Ciara Power, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=5f940557cfb692cc25f625edce19009708f2e62d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 5f940557cfb692cc25f625edce19009708f2e62d Mon Sep 17 00:00:00 2001
From: Brian Dooley <brian.dooley@intel.com>
Date: Tue, 19 Sep 2023 10:42:16 +0000
Subject: [PATCH] test/crypto: fix IV in some vectors
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit af7be52316e8a94f4fba75e644fc1c0fb9531424 ]

SNOW3G and ZUC algorithms require non-zero length IVs.

Fixes: c6c267a00a92 ("test/crypto: add mixed encypted-digest")

Signed-off-by: Brian Dooley <brian.dooley@intel.com>
Acked-by: Ciara Power <ciara.power@intel.com>
---
 app/test/test_cryptodev_mixed_test_vectors.h | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/app/test/test_cryptodev_mixed_test_vectors.h b/app/test/test_cryptodev_mixed_test_vectors.h
index 2816ecc6a4..f80903c87e 100644
--- a/app/test/test_cryptodev_mixed_test_vectors.h
+++ b/app/test/test_cryptodev_mixed_test_vectors.h
@@ -478,8 +478,10 @@ struct mixed_cipher_auth_test_data auth_aes_cmac_cipher_snow_test_case_1 = {
 	},
 	.cipher_iv = {
 		.data = {
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 		},
-		.len = 0,
+		.len = 16,
 	},
 	.cipher = {
 		.len_bits = 516 << 3,
@@ -917,8 +919,10 @@ struct mixed_cipher_auth_test_data auth_aes_cmac_cipher_zuc_test_case_1 = {
 	},
 	.cipher_iv = {
 		.data = {
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 		},
-		.len = 0,
+		.len = 16,
 	},
 	.cipher = {
 		.len_bits = 516 << 3,
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.060859800 +0800
+++ 0044-test-crypto-fix-IV-in-some-vectors.patch	2023-10-22 22:17:34.236723700 +0800
@@ -1 +1 @@
-From af7be52316e8a94f4fba75e644fc1c0fb9531424 Mon Sep 17 00:00:00 2001
+From 5f940557cfb692cc25f625edce19009708f2e62d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit af7be52316e8a94f4fba75e644fc1c0fb9531424 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 161e2d905f..9c4313185e 100644
+index 2816ecc6a4..f80903c87e 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test/crypto: skip some synchronous tests with CPU crypto' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (43 preceding siblings ...)
  2023-10-22 14:21 ` patch 'test/crypto: fix IV in some vectors' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'test/crypto: fix return value for GMAC case' " Xueming Li
                   ` (96 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Brian Dooley; +Cc: Ciara Power, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8506f6d67ce78ebf6e99f6e45b46e2dd77c8e061

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8506f6d67ce78ebf6e99f6e45b46e2dd77c8e061 Mon Sep 17 00:00:00 2001
From: Brian Dooley <brian.dooley@intel.com>
Date: Tue, 19 Sep 2023 10:42:17 +0000
Subject: [PATCH] test/crypto: skip some synchronous tests with CPU crypto
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 38318ce05459391344acb53a73c9a99537a0bd0f ]

Some synchronous tests are not supported for CPU crypto and
need to be skipped. This commit adds in extra skips for these tests.

Fixes: 55ab4a8c4fb5 ("test/crypto: disable wireless cases for CPU crypto API")

Signed-off-by: Brian Dooley <brian.dooley@intel.com>
Acked-by: Ciara Power <ciara.power@intel.com>
---
 app/test/test_cryptodev.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 17e5777c97..8a9251c818 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -6258,6 +6258,9 @@ test_zuc_auth_cipher(const struct wireless_test_data *tdata,
 			tdata->digest.len) < 0)
 		return TEST_SKIPPED;

+	if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO)
+		return TEST_SKIPPED;
+
 	rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);

 	uint64_t feat_flags = dev_info.feature_flags;
@@ -7636,6 +7639,9 @@ test_mixed_auth_cipher_sgl(const struct mixed_cipher_auth_test_data *tdata,
 	if (global_api_test_type == CRYPTODEV_RAW_API_TEST)
 		return TEST_SKIPPED;

+	if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO)
+		return TEST_SKIPPED;
+
 	rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);

 	uint64_t feat_flags = dev_info.feature_flags;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.092643000 +0800
+++ 0045-test-crypto-skip-some-synchronous-tests-with-CPU-cry.patch	2023-10-22 22:17:34.246723700 +0800
@@ -1 +1 @@
-From 38318ce05459391344acb53a73c9a99537a0bd0f Mon Sep 17 00:00:00 2001
+From 8506f6d67ce78ebf6e99f6e45b46e2dd77c8e061 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 38318ce05459391344acb53a73c9a99537a0bd0f ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 8fc90342de..aff1c8e55b 100644
+index 17e5777c97..8a9251c818 100644
@@ -22 +24 @@
-@@ -6394,6 +6394,9 @@ test_zuc_auth_cipher(const struct wireless_test_data *tdata,
+@@ -6258,6 +6258,9 @@ test_zuc_auth_cipher(const struct wireless_test_data *tdata,
@@ -32 +34 @@
-@@ -7829,6 +7832,9 @@ test_mixed_auth_cipher(const struct mixed_cipher_auth_test_data *tdata,
+@@ -7636,6 +7639,9 @@ test_mixed_auth_cipher_sgl(const struct mixed_cipher_auth_test_data *tdata,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test/crypto: fix return value for GMAC case' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (44 preceding siblings ...)
  2023-10-22 14:21 ` patch 'test/crypto: skip some synchronous tests with CPU crypto' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'test/crypto: fix typo in asym tests' " Xueming Li
                   ` (95 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Hemant Agrawal; +Cc: Akhil Goyal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=486fb2f97c5e78cabcc585f154841b0997458302

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 486fb2f97c5e78cabcc585f154841b0997458302 Mon Sep 17 00:00:00 2001
From: Hemant Agrawal <hemant.agrawal@nxp.com>
Date: Mon, 28 Aug 2023 12:21:07 +0530
Subject: [PATCH] test/crypto: fix return value for GMAC case
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 6660c7581990c2f1564a1b23a31d301f2135eb72 ]

create_gmac_session is already converting the return value
of ENOTSUP to TEST_SKIPPED.

Fixes: bdce2564dbf7 ("cryptodev: rework session framework")

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <gakhil@marvell.com>
---
 app/test/test_cryptodev.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 8a9251c818..b75edb2f2b 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -13009,7 +13009,7 @@ test_AES_GMAC_authentication(const struct gmac_test_data *tdata)
 	retval = create_gmac_session(ts_params->valid_devs[0],
 			tdata, RTE_CRYPTO_AUTH_OP_GENERATE);

-	if (retval == -ENOTSUP)
+	if (retval == TEST_SKIPPED)
 		return TEST_SKIPPED;
 	if (retval < 0)
 		return retval;
@@ -13140,7 +13140,7 @@ test_AES_GMAC_authentication_verify(const struct gmac_test_data *tdata)
 	retval = create_gmac_session(ts_params->valid_devs[0],
 			tdata, RTE_CRYPTO_AUTH_OP_VERIFY);

-	if (retval == -ENOTSUP)
+	if (retval == TEST_SKIPPED)
 		return TEST_SKIPPED;
 	if (retval < 0)
 		return retval;
@@ -13269,7 +13269,7 @@ test_AES_GMAC_authentication_SGL(const struct gmac_test_data *tdata,
 	retval = create_gmac_session(ts_params->valid_devs[0],
 			tdata, RTE_CRYPTO_AUTH_OP_GENERATE);

-	if (retval == -ENOTSUP)
+	if (retval == TEST_SKIPPED)
 		return TEST_SKIPPED;
 	if (retval < 0)
 		return retval;
@@ -13886,7 +13886,7 @@ test_authentication_verify_fail_when_data_corruption(
 			reference,
 			RTE_CRYPTO_AUTH_OP_VERIFY);

-	if (retval == -ENOTSUP)
+	if (retval == TEST_SKIPPED)
 		return TEST_SKIPPED;
 	if (retval < 0)
 		return retval;
@@ -13973,6 +13973,8 @@ test_authentication_verify_GMAC_fail_when_corruption(
 			reference,
 			RTE_CRYPTO_AUTH_OP_VERIFY,
 			RTE_CRYPTO_CIPHER_OP_DECRYPT);
+	if (retval == TEST_SKIPPED)
+		return TEST_SKIPPED;
 	if (retval < 0)
 		return retval;

@@ -14063,8 +14065,7 @@ test_authenticated_decryption_fail_when_corruption(
 			reference,
 			RTE_CRYPTO_AUTH_OP_VERIFY,
 			RTE_CRYPTO_CIPHER_OP_DECRYPT);
-
-	if (retval == -ENOTSUP)
+	if (retval == TEST_SKIPPED)
 		return TEST_SKIPPED;
 	if (retval < 0)
 		return retval;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.134205400 +0800
+++ 0046-test-crypto-fix-return-value-for-GMAC-case.patch	2023-10-22 22:17:34.256723700 +0800
@@ -1 +1 @@
-From 6660c7581990c2f1564a1b23a31d301f2135eb72 Mon Sep 17 00:00:00 2001
+From 486fb2f97c5e78cabcc585f154841b0997458302 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 6660c7581990c2f1564a1b23a31d301f2135eb72 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index aff1c8e55b..049ee17d41 100644
+index 8a9251c818..b75edb2f2b 100644
@@ -22 +24 @@
-@@ -13544,7 +13544,7 @@ test_AES_GMAC_authentication(const struct gmac_test_data *tdata)
+@@ -13009,7 +13009,7 @@ test_AES_GMAC_authentication(const struct gmac_test_data *tdata)
@@ -31 +33 @@
-@@ -13677,7 +13677,7 @@ test_AES_GMAC_authentication_verify(const struct gmac_test_data *tdata)
+@@ -13140,7 +13140,7 @@ test_AES_GMAC_authentication_verify(const struct gmac_test_data *tdata)
@@ -40 +42 @@
-@@ -13808,7 +13808,7 @@ test_AES_GMAC_authentication_SGL(const struct gmac_test_data *tdata,
+@@ -13269,7 +13269,7 @@ test_AES_GMAC_authentication_SGL(const struct gmac_test_data *tdata,
@@ -49 +51 @@
-@@ -14425,7 +14425,7 @@ test_authentication_verify_fail_when_data_corruption(
+@@ -13886,7 +13886,7 @@ test_authentication_verify_fail_when_data_corruption(
@@ -58 +60 @@
-@@ -14514,6 +14514,8 @@ test_authentication_verify_GMAC_fail_when_corruption(
+@@ -13973,6 +13973,8 @@ test_authentication_verify_GMAC_fail_when_corruption(
@@ -67 +69 @@
-@@ -14606,8 +14608,7 @@ test_authenticated_decryption_fail_when_corruption(
+@@ -14063,8 +14065,7 @@ test_authenticated_decryption_fail_when_corruption(

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test/crypto: fix typo in asym tests' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (45 preceding siblings ...)
  2023-10-22 14:21 ` patch 'test/crypto: fix return value for GMAC case' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'crypto/qat: fix raw API null algorithm digest' " Xueming Li
                   ` (94 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Sivaramakrishnan Venkat; +Cc: Ciara Power, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=31f6839de6ff355df3bf30dee8efaa8b672e62f1

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 31f6839de6ff355df3bf30dee8efaa8b672e62f1 Mon Sep 17 00:00:00 2001
From: Sivaramakrishnan Venkat <venkatx.sivaramakrishnan@intel.com>
Date: Fri, 18 Aug 2023 09:52:47 +0000
Subject: [PATCH] test/crypto: fix typo in asym tests
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit ea7b0e1a17717872a1d7d74b075a77fdb9414fa4 ]

test_dh_keygenration() changed to test_dh_key_generation()

Fixes: fc6c9066e40d ("test/crypto: add DH and DSA tests")
Fixes: da74df7d38c0 ("test/crypto: move test suite parameters to header file")

Signed-off-by: Sivaramakrishnan Venkat <venkatx.sivaramakrishnan@intel.com>
Acked-by: Ciara Power <ciara.power@intel.com>
---
 .mailmap                       | 1 +
 app/test/test_cryptodev_asym.c | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/.mailmap b/.mailmap
index 361e2dac4f..66fc87659a 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1258,6 +1258,7 @@ Simon Kuenzer <simon.kuenzer@neclab.eu>
 Siobhan Butler <siobhan.a.butler@intel.com>
 Sirshak Das <sirshak.das@arm.com>
 Sivaprasad Tummala <sivaprasad.tummala@amd.com> <sivaprasad.tummala@intel.com>
+Sivaramakrishnan Venkat <venkatx.sivaramakrishnan@intel.com>
 Siwar Zitouni <siwar.zitouni@6wind.com>
 Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
 Slawomir Rosek <slawomir.rosek@semihalf.com>
diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c
index c58c7f488b..67659cd1a6 100644
--- a/app/test/test_cryptodev_asym.c
+++ b/app/test/test_cryptodev_asym.c
@@ -1602,7 +1602,7 @@ error_exit:
 }

 static int
-test_dh_keygenration(void)
+test_dh_key_generation(void)
 {
 	int status;

@@ -2204,7 +2204,7 @@ static struct unit_test_suite cryptodev_openssl_asym_testsuite  = {
 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_capability),
 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_dsa),
 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym,
-				test_dh_keygenration),
+				test_dh_key_generation),
 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_rsa_enc_dec),
 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym,
 				test_rsa_sign_verify),
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.172289500 +0800
+++ 0047-test-crypto-fix-typo-in-asym-tests.patch	2023-10-22 22:17:34.266723700 +0800
@@ -1 +1 @@
-From ea7b0e1a17717872a1d7d74b075a77fdb9414fa4 Mon Sep 17 00:00:00 2001
+From 31f6839de6ff355df3bf30dee8efaa8b672e62f1 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ea7b0e1a17717872a1d7d74b075a77fdb9414fa4 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index aa3a55cd99..4765aa26b6 100644
+index 361e2dac4f..66fc87659a 100644
@@ -23 +25 @@
-@@ -1300,6 +1300,7 @@ Sinan Kaya <okaya@kernel.org>
+@@ -1258,6 +1258,7 @@ Simon Kuenzer <simon.kuenzer@neclab.eu>
@@ -32 +34 @@
-index 9820b80f7e..39de0bdac5 100644
+index c58c7f488b..67659cd1a6 100644
@@ -35 +37 @@
-@@ -1211,7 +1211,7 @@ error_exit:
+@@ -1602,7 +1602,7 @@ error_exit:
@@ -44 +46 @@
-@@ -2684,7 +2684,7 @@ static struct unit_test_suite cryptodev_openssl_asym_testsuite  = {
+@@ -2204,7 +2204,7 @@ static struct unit_test_suite cryptodev_openssl_asym_testsuite  = {
@@ -50,3 +52,3 @@
- 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_sm2_sign_rnd_secret),
- 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_sm2_verify),
- 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_sm2_enc_rnd_secret),
+ 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_rsa_enc_dec),
+ 		TEST_CASE_ST(ut_setup_asym, ut_teardown_asym,
+ 				test_rsa_sign_verify),

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'crypto/qat: fix raw API null algorithm digest' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (46 preceding siblings ...)
  2023-10-22 14:21 ` patch 'test/crypto: fix typo in asym tests' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'crypto/cnxk: fix IPsec CCM and GCM capabilities' " Xueming Li
                   ` (93 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Ciara Power; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=40ea03b5eaf1339200b0722a349b0896929aa25b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 40ea03b5eaf1339200b0722a349b0896929aa25b Mon Sep 17 00:00:00 2001
From: Ciara Power <ciara.power@intel.com>
Date: Thu, 7 Sep 2023 15:35:53 +0000
Subject: [PATCH] crypto/qat: fix raw API null algorithm digest
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit d7d52b37e89132f07121323c449ac838e6448ae0 ]

QAT HW generates bytes of 0x00 digest, even when a digest of len 0 is
requested for NULL. This caused test failures when the test vector had
digest len 0, as the buffer has unexpected changed bytes.

By placing the digest into the cookie for NULL authentication,
the buffer remains unchanged as expected, and the digest
is placed to the side, as it won't be used anyway.

This fix was previously added for the main QAT code path, but it also
needs to be included for the raw API code path.

Fixes: db0e952a5c01 ("crypto/qat: add NULL capability")

Signed-off-by: Ciara Power <ciara.power@intel.com>
---
 drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c | 19 ++++++++-
 drivers/crypto/qat/dev/qat_sym_pmd_gen1.c    | 41 +++++++++++++++++---
 2 files changed, 53 insertions(+), 7 deletions(-)

diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c
index 1f6f63c831..84d58accc7 100644
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c
@@ -605,6 +605,8 @@ qat_sym_dp_enqueue_single_auth_gen3(void *qp_data, uint8_t *drv_ctx,
 	struct icp_qat_fw_la_bulk_req *req;
 	int32_t data_len;
 	uint32_t tail = dp_ctx->tail;
+	struct rte_crypto_va_iova_ptr null_digest;
+	struct rte_crypto_va_iova_ptr *job_digest = digest;

 	req = (struct icp_qat_fw_la_bulk_req *)(
 		(uint8_t *)tx_queue->base_addr + tail);
@@ -618,7 +620,12 @@ qat_sym_dp_enqueue_single_auth_gen3(void *qp_data, uint8_t *drv_ctx,
 	if (unlikely(data_len < 0))
 		return -1;

-	enqueue_one_auth_job_gen3(ctx, cookie, req, digest, auth_iv, ofs,
+	if (ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL) {
+		null_digest.iova = cookie->digest_null_phys_addr;
+		job_digest = &null_digest;
+	}
+
+	enqueue_one_auth_job_gen3(ctx, cookie, req, job_digest, auth_iv, ofs,
 			(uint32_t)data_len);

 	dp_ctx->tail = tail;
@@ -640,6 +647,8 @@ qat_sym_dp_enqueue_auth_jobs_gen3(void *qp_data, uint8_t *drv_ctx,
 	uint32_t tail;
 	struct icp_qat_fw_la_bulk_req *req;
 	int32_t data_len;
+	struct rte_crypto_va_iova_ptr null_digest;
+	struct rte_crypto_va_iova_ptr *job_digest = NULL;

 	n = QAT_SYM_DP_GET_MAX_ENQ(qp, dp_ctx->cached_enqueue, vec->num);
 	if (unlikely(n == 0)) {
@@ -672,7 +681,13 @@ qat_sym_dp_enqueue_auth_jobs_gen3(void *qp_data, uint8_t *drv_ctx,

 		if (unlikely(data_len < 0))
 			break;
-		enqueue_one_auth_job_gen3(ctx, cookie, req, &vec->digest[i],
+		if (ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL) {
+			null_digest.iova = cookie->digest_null_phys_addr;
+			job_digest = &null_digest;
+		} else
+			job_digest = &vec->digest[i];
+
+		enqueue_one_auth_job_gen3(ctx, cookie, req, job_digest,
 			&vec->auth_iv[i], ofs, (uint32_t)data_len);
 		tail = (tail + tx_queue->msg_size) & tx_queue->modulo_mask;
 	}
diff --git a/drivers/crypto/qat/dev/qat_sym_pmd_gen1.c b/drivers/crypto/qat/dev/qat_sym_pmd_gen1.c
index 2709b0ab04..888dea4ad9 100644
--- a/drivers/crypto/qat/dev/qat_sym_pmd_gen1.c
+++ b/drivers/crypto/qat/dev/qat_sym_pmd_gen1.c
@@ -607,6 +607,8 @@ qat_sym_dp_enqueue_single_auth_gen1(void *qp_data, uint8_t *drv_ctx,
 	struct icp_qat_fw_la_bulk_req *req;
 	int32_t data_len;
 	uint32_t tail = dp_ctx->tail;
+	struct rte_crypto_va_iova_ptr null_digest;
+	struct rte_crypto_va_iova_ptr *job_digest = digest;

 	req = (struct icp_qat_fw_la_bulk_req *)(
 		(uint8_t *)tx_queue->base_addr + tail);
@@ -620,8 +622,13 @@ qat_sym_dp_enqueue_single_auth_gen1(void *qp_data, uint8_t *drv_ctx,
 	if (unlikely(data_len < 0))
 		return -1;

-	enqueue_one_auth_job_gen1(ctx, req, digest, auth_iv, ofs,
-			(uint32_t)data_len);
+	if (ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL) {
+		null_digest.iova = cookie->digest_null_phys_addr;
+		job_digest = &null_digest;
+	}
+
+	enqueue_one_auth_job_gen1(ctx, req, job_digest, auth_iv, ofs,
+		(uint32_t)data_len);

 	dp_ctx->tail = tail;
 	dp_ctx->cached_enqueue++;
@@ -646,6 +653,8 @@ qat_sym_dp_enqueue_auth_jobs_gen1(void *qp_data, uint8_t *drv_ctx,
 	uint32_t tail;
 	struct icp_qat_fw_la_bulk_req *req;
 	int32_t data_len;
+	struct rte_crypto_va_iova_ptr null_digest;
+	struct rte_crypto_va_iova_ptr *job_digest = NULL;

 	n = QAT_SYM_DP_GET_MAX_ENQ(qp, dp_ctx->cached_enqueue, vec->num);
 	if (unlikely(n == 0)) {
@@ -678,7 +687,14 @@ qat_sym_dp_enqueue_auth_jobs_gen1(void *qp_data, uint8_t *drv_ctx,

 		if (unlikely(data_len < 0))
 			break;
-		enqueue_one_auth_job_gen1(ctx, req, &vec->digest[i],
+
+		if (ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL) {
+			null_digest.iova = cookie->digest_null_phys_addr;
+			job_digest = &null_digest;
+		} else
+			job_digest = &vec->digest[i];
+
+		enqueue_one_auth_job_gen1(ctx, req, job_digest,
 			&vec->auth_iv[i], ofs, (uint32_t)data_len);
 		tail = (tail + tx_queue->msg_size) & tx_queue->modulo_mask;

@@ -715,6 +731,8 @@ qat_sym_dp_enqueue_single_chain_gen1(void *qp_data, uint8_t *drv_ctx,
 	struct icp_qat_fw_la_bulk_req *req;
 	int32_t data_len;
 	uint32_t tail = dp_ctx->tail;
+	struct rte_crypto_va_iova_ptr null_digest;
+	struct rte_crypto_va_iova_ptr *job_digest = digest;

 	req = (struct icp_qat_fw_la_bulk_req *)(
 		(uint8_t *)tx_queue->base_addr + tail);
@@ -727,8 +745,13 @@ qat_sym_dp_enqueue_single_chain_gen1(void *qp_data, uint8_t *drv_ctx,
 	if (unlikely(data_len < 0))
 		return -1;

+	if (ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL) {
+		null_digest.iova = cookie->digest_null_phys_addr;
+		job_digest = &null_digest;
+	}
+
 	if (unlikely(enqueue_one_chain_job_gen1(ctx, req, data, n_data_vecs,
-			NULL, 0, cipher_iv, digest, auth_iv, ofs,
+			NULL, 0, cipher_iv, job_digest, auth_iv, ofs,
 			(uint32_t)data_len)))
 		return -1;

@@ -756,6 +779,8 @@ qat_sym_dp_enqueue_chain_jobs_gen1(void *qp_data, uint8_t *drv_ctx,
 	uint32_t tail;
 	struct icp_qat_fw_la_bulk_req *req;
 	int32_t data_len;
+	struct rte_crypto_va_iova_ptr null_digest;
+	struct rte_crypto_va_iova_ptr *job_digest;

 	n = QAT_SYM_DP_GET_MAX_ENQ(qp, dp_ctx->cached_enqueue, vec->num);
 	if (unlikely(n == 0)) {
@@ -789,10 +814,16 @@ qat_sym_dp_enqueue_chain_jobs_gen1(void *qp_data, uint8_t *drv_ctx,
 		if (unlikely(data_len < 0))
 			break;

+		if (ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL) {
+			null_digest.iova = cookie->digest_null_phys_addr;
+			job_digest = &null_digest;
+		} else
+			job_digest = &vec->digest[i];
+
 		if (unlikely(enqueue_one_chain_job_gen1(ctx, req,
 				vec->src_sgl[i].vec, vec->src_sgl[i].num,
 				NULL, 0,
-				&vec->iv[i], &vec->digest[i],
+				&vec->iv[i], job_digest,
 				&vec->auth_iv[i], ofs, (uint32_t)data_len)))
 			break;

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.206129300 +0800
+++ 0048-crypto-qat-fix-raw-API-null-algorithm-digest.patch	2023-10-22 22:17:34.266723700 +0800
@@ -1 +1 @@
-From d7d52b37e89132f07121323c449ac838e6448ae0 Mon Sep 17 00:00:00 2001
+From 40ea03b5eaf1339200b0722a349b0896929aa25b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d7d52b37e89132f07121323c449ac838e6448ae0 ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -27 +29 @@
-index d25e1b2f3a..0a939161f9 100644
+index 1f6f63c831..84d58accc7 100644
@@ -30 +32 @@
-@@ -637,6 +637,8 @@ qat_sym_dp_enqueue_single_auth_gen3(void *qp_data, uint8_t *drv_ctx,
+@@ -605,6 +605,8 @@ qat_sym_dp_enqueue_single_auth_gen3(void *qp_data, uint8_t *drv_ctx,
@@ -39 +41 @@
-@@ -650,7 +652,12 @@ qat_sym_dp_enqueue_single_auth_gen3(void *qp_data, uint8_t *drv_ctx,
+@@ -618,7 +620,12 @@ qat_sym_dp_enqueue_single_auth_gen3(void *qp_data, uint8_t *drv_ctx,
@@ -53 +55 @@
-@@ -672,6 +679,8 @@ qat_sym_dp_enqueue_auth_jobs_gen3(void *qp_data, uint8_t *drv_ctx,
+@@ -640,6 +647,8 @@ qat_sym_dp_enqueue_auth_jobs_gen3(void *qp_data, uint8_t *drv_ctx,
@@ -62 +64 @@
-@@ -704,7 +713,13 @@ qat_sym_dp_enqueue_auth_jobs_gen3(void *qp_data, uint8_t *drv_ctx,
+@@ -672,7 +681,13 @@ qat_sym_dp_enqueue_auth_jobs_gen3(void *qp_data, uint8_t *drv_ctx,
@@ -78 +80 @@
-index 70938ba508..e4bcfa59e7 100644
+index 2709b0ab04..888dea4ad9 100644
@@ -81 +83 @@
-@@ -598,6 +598,8 @@ qat_sym_dp_enqueue_single_auth_gen1(void *qp_data, uint8_t *drv_ctx,
+@@ -607,6 +607,8 @@ qat_sym_dp_enqueue_single_auth_gen1(void *qp_data, uint8_t *drv_ctx,
@@ -90 +92 @@
-@@ -611,8 +613,13 @@ qat_sym_dp_enqueue_single_auth_gen1(void *qp_data, uint8_t *drv_ctx,
+@@ -620,8 +622,13 @@ qat_sym_dp_enqueue_single_auth_gen1(void *qp_data, uint8_t *drv_ctx,
@@ -106 +108 @@
-@@ -636,6 +643,8 @@ qat_sym_dp_enqueue_auth_jobs_gen1(void *qp_data, uint8_t *drv_ctx,
+@@ -646,6 +653,8 @@ qat_sym_dp_enqueue_auth_jobs_gen1(void *qp_data, uint8_t *drv_ctx,
@@ -115 +117 @@
-@@ -668,7 +677,14 @@ qat_sym_dp_enqueue_auth_jobs_gen1(void *qp_data, uint8_t *drv_ctx,
+@@ -678,7 +687,14 @@ qat_sym_dp_enqueue_auth_jobs_gen1(void *qp_data, uint8_t *drv_ctx,
@@ -131 +133 @@
-@@ -703,6 +719,8 @@ qat_sym_dp_enqueue_single_chain_gen1(void *qp_data, uint8_t *drv_ctx,
+@@ -715,6 +731,8 @@ qat_sym_dp_enqueue_single_chain_gen1(void *qp_data, uint8_t *drv_ctx,
@@ -140 +142 @@
-@@ -715,8 +733,13 @@ qat_sym_dp_enqueue_single_chain_gen1(void *qp_data, uint8_t *drv_ctx,
+@@ -727,8 +745,13 @@ qat_sym_dp_enqueue_single_chain_gen1(void *qp_data, uint8_t *drv_ctx,
@@ -155 +157 @@
-@@ -743,6 +766,8 @@ qat_sym_dp_enqueue_chain_jobs_gen1(void *qp_data, uint8_t *drv_ctx,
+@@ -756,6 +779,8 @@ qat_sym_dp_enqueue_chain_jobs_gen1(void *qp_data, uint8_t *drv_ctx,
@@ -164 +166 @@
-@@ -776,10 +801,16 @@ qat_sym_dp_enqueue_chain_jobs_gen1(void *qp_data, uint8_t *drv_ctx,
+@@ -789,10 +814,16 @@ qat_sym_dp_enqueue_chain_jobs_gen1(void *qp_data, uint8_t *drv_ctx,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'crypto/cnxk: fix IPsec CCM and GCM capabilities' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (47 preceding siblings ...)
  2023-10-22 14:21 ` patch 'crypto/qat: fix raw API null algorithm digest' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'crypto/ipsec_mb: add dependency check for cross build' " Xueming Li
                   ` (92 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Tejasree Kondoj; +Cc: Anoob Joseph, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=39b817dfee51a72c83f15e5cffde8c58e79dd352

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 39b817dfee51a72c83f15e5cffde8c58e79dd352 Mon Sep 17 00:00:00 2001
From: Tejasree Kondoj <ktejasree@marvell.com>
Date: Tue, 26 Sep 2023 11:28:37 +0530
Subject: [PATCH] crypto/cnxk: fix IPsec CCM and GCM capabilities
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e0cca92a6da05fd2b0071ad5b40d2d75a16deb23 ]

Fix lookaside IPsec AES-CCM and AES-GCM capabilities.
The patch to fix AES-CCM capabilities was applied incorrectly
which resulted in wrong AES-GCM capabilities.
Fix the same and update AES-CCM to correct values.

Fixes: eb581897e580 ("crypto/cnxk: fix IPsec CCM capabilities")

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
Signed-off-by: Tejasree Kondoj <ktejasree@marvell.com>
---
 drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c b/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c
index eb4e6ff966..b4d1925d23 100644
--- a/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c
+++ b/drivers/crypto/cnxk/cnxk_cryptodev_capabilities.c
@@ -851,8 +851,8 @@ static const struct rte_cryptodev_capabilities sec_caps_aes[] = {
 					.increment = 4
 				},
 				.iv_size = {
-					.min = 12,
-					.max = 12,
+					.min = 11,
+					.max = 11,
 					.increment = 0
 				}
 			}, }
@@ -936,8 +936,8 @@ static const struct rte_cryptodev_capabilities sec_caps_aes[] = {
 					.increment = 4
 				},
 				.iv_size = {
-					.min = 11,
-					.max = 11,
+					.min = 12,
+					.max = 12,
 					.increment = 0
 				}
 			}, }
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.250450500 +0800
+++ 0049-crypto-cnxk-fix-IPsec-CCM-and-GCM-capabilities.patch	2023-10-22 22:17:34.266723700 +0800
@@ -1 +1 @@
-From e0cca92a6da05fd2b0071ad5b40d2d75a16deb23 Mon Sep 17 00:00:00 2001
+From 39b817dfee51a72c83f15e5cffde8c58e79dd352 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e0cca92a6da05fd2b0071ad5b40d2d75a16deb23 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 4c6357353e..ac4a8c1572 100644
+index eb4e6ff966..b4d1925d23 100644
@@ -24 +26 @@
-@@ -1180,8 +1180,8 @@ static const struct rte_cryptodev_capabilities sec_caps_aes[] = {
+@@ -851,8 +851,8 @@ static const struct rte_cryptodev_capabilities sec_caps_aes[] = {
@@ -28,4 +30,4 @@
--					.min = 11,
--					.max = 11,
-+					.min = 12,
-+					.max = 12,
+-					.min = 12,
+-					.max = 12,
++					.min = 11,
++					.max = 11,
@@ -35 +37 @@
-@@ -1210,8 +1210,8 @@ static const struct rte_cryptodev_capabilities sec_caps_aes[] = {
+@@ -936,8 +936,8 @@ static const struct rte_cryptodev_capabilities sec_caps_aes[] = {
@@ -39,4 +41,4 @@
--					.min = 12,
--					.max = 12,
-+					.min = 11,
-+					.max = 11,
+-					.min = 11,
+-					.max = 11,
++					.min = 12,
++					.max = 12,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'crypto/ipsec_mb: add dependency check for cross build' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (48 preceding siblings ...)
  2023-10-22 14:21 ` patch 'crypto/cnxk: fix IPsec CCM and GCM capabilities' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'eventdev: fix symbol export for port maintenance' " Xueming Li
                   ` (91 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Ciara Power, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=f150a45b651ba38df3cbac2601379c2d0b80ee79

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f150a45b651ba38df3cbac2601379c2d0b80ee79 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Thu, 31 Aug 2023 13:10:57 +0100
Subject: [PATCH] crypto/ipsec_mb: add dependency check for cross build
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit fb94d8243894524316d872c8299b9e793832d991 ]

When cross-compiling for PowerPC on Ubuntu, the x86 IPSec_MB library was
getting found by the build system for use in the PPC build. This led to
failures at compile time due to the library not being linkable.

We can avoid these failures by checking the discovered library for
compatibility at configuration time. This needs a version check as it is
supported only from version 0.60 of meson onwards.

Fixes: c75542ae4200 ("crypto/ipsec_mb: introduce IPsec_mb framework")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Ciara Power <ciara.power@intel.com>
---
 drivers/crypto/ipsec_mb/meson.build | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/crypto/ipsec_mb/meson.build b/drivers/crypto/ipsec_mb/meson.build
index ec147d2110..4100d921ff 100644
--- a/drivers/crypto/ipsec_mb/meson.build
+++ b/drivers/crypto/ipsec_mb/meson.build
@@ -16,6 +16,11 @@ lib = cc.find_library('IPSec_MB', required: false)
 if not lib.found()
     build = false
     reason = 'missing dependency, "libIPSec_MB"'
+# if the lib is found, check it's the right format
+elif meson.version().version_compare('>=0.60') and not cc.links(
+        'int main(void) {return 0;}', dependencies: lib)
+    build = false
+    reason = 'incompatible dependency, "libIPSec_MB"'
 else
     ext_deps += lib

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.283422000 +0800
+++ 0050-crypto-ipsec_mb-add-dependency-check-for-cross-build.patch	2023-10-22 22:17:34.266723700 +0800
@@ -1 +1 @@
-From fb94d8243894524316d872c8299b9e793832d991 Mon Sep 17 00:00:00 2001
+From f150a45b651ba38df3cbac2601379c2d0b80ee79 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit fb94d8243894524316d872c8299b9e793832d991 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 3057e6fd10..87bf965554 100644
+index ec147d2110..4100d921ff 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'eventdev: fix symbol export for port maintenance' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (49 preceding siblings ...)
  2023-10-22 14:21 ` patch 'crypto/ipsec_mb: add dependency check for cross build' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'bus/pci: fix device ID log' " Xueming Li
                   ` (90 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: David Marchand; +Cc: Jerin Jacob, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=5a03754492a1b0120e822b26caacebf67d5d47bb

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 5a03754492a1b0120e822b26caacebf67d5d47bb Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Tue, 10 Oct 2023 16:00:29 +0200
Subject: [PATCH] eventdev: fix symbol export for port maintenance
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 4d23cf66ec1b666676b228f3d2a54d0c74b289da ]

Trying to call rte_event_maintain out of the eventdev library triggers
a link failure, as the tracepoint symbol associated to this inline
helper was not exported.

Fixes: 54f17843a887 ("eventdev: add port maintenance API")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
---
 lib/eventdev/version.map | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map
index c155af6d50..56000271a4 100644
--- a/lib/eventdev/version.map
+++ b/lib/eventdev/version.map
@@ -101,6 +101,7 @@ EXPERIMENTAL {
 	global:

 	# added in 21.11
+	__rte_eventdev_trace_maintain;
 	rte_event_eth_rx_adapter_create_with_params;
 	rte_event_eth_rx_adapter_queue_conf_get;
 	rte_event_eth_rx_adapter_queue_stats_get;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.313234200 +0800
+++ 0051-eventdev-fix-symbol-export-for-port-maintenance.patch	2023-10-22 22:17:34.266723700 +0800
@@ -1 +1 @@
-From 4d23cf66ec1b666676b228f3d2a54d0c74b289da Mon Sep 17 00:00:00 2001
+From 5a03754492a1b0120e822b26caacebf67d5d47bb Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4d23cf66ec1b666676b228f3d2a54d0c74b289da ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index b03c10d99f..2b2cd06c6f 100644
+index c155af6d50..56000271a4 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'bus/pci: fix device ID log' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (50 preceding siblings ...)
  2023-10-22 14:21 ` patch 'eventdev: fix symbol export for port maintenance' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'eventdev: fix alignment padding' " Xueming Li
                   ` (89 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Qiming Yang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=73fa336da5153b7c083611c7c31d04dc1d33692c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 73fa336da5153b7c083611c7c31d04dc1d33692c Mon Sep 17 00:00:00 2001
From: Qiming Yang <qiming.yang@intel.com>
Date: Wed, 13 Sep 2023 08:23:33 +0000
Subject: [PATCH] bus/pci: fix device ID log
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 5019f6c856fbd9663dd83465c11be423c3424e94 ]

This patch fixes the issue where device ID first 0 does not print.

Fixes: e4f27af0f448 ("bus/pci: reduce boot-up logs to absolute minimum")

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
---
 drivers/bus/pci/pci_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c
index e32a9d517a..e83d77090b 100644
--- a/drivers/bus/pci/pci_common.c
+++ b/drivers/bus/pci/pci_common.c
@@ -304,7 +304,7 @@ rte_pci_probe_one_driver(struct rte_pci_driver *dr,
 		}
 	}

-	RTE_LOG(INFO, EAL, "Probe PCI driver: %s (%x:%x) device: "PCI_PRI_FMT" (socket %i)\n",
+	RTE_LOG(INFO, EAL, "Probe PCI driver: %s (%x:%04x) device: "PCI_PRI_FMT" (socket %i)\n",
 			dr->driver.name, dev->id.vendor_id, dev->id.device_id,
 			loc->domain, loc->bus, loc->devid, loc->function,
 			dev->device.numa_node);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.345338200 +0800
+++ 0052-bus-pci-fix-device-ID-log.patch	2023-10-22 22:17:34.266723700 +0800
@@ -1 +1 @@
-From 5019f6c856fbd9663dd83465c11be423c3424e94 Mon Sep 17 00:00:00 2001
+From 73fa336da5153b7c083611c7c31d04dc1d33692c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5019f6c856fbd9663dd83465c11be423c3424e94 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -17 +19 @@
-index f149963364..921d957bf6 100644
+index e32a9d517a..e83d77090b 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'eventdev: fix alignment padding' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (51 preceding siblings ...)
  2023-10-22 14:21 ` patch 'bus/pci: fix device ID log' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'event/cnxk: fix getwork mode devargs parsing' " Xueming Li
                   ` (88 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Sivaprasad Tummala; +Cc: Jerin Jacob, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=d854ba2422c14b1e5648939543201df434995067

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d854ba2422c14b1e5648939543201df434995067 Mon Sep 17 00:00:00 2001
From: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
Date: Tue, 18 Apr 2023 03:45:47 -0700
Subject: [PATCH] eventdev: fix alignment padding
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 46a22124aef19f10e55c34235656a92712dc54b9 ]

fixed the padding required to align to cacheline size.

Fixes: 54f17843a887 ("eventdev: add port maintenance API")

Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
---
 lib/eventdev/rte_eventdev_core.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/eventdev/rte_eventdev_core.h b/lib/eventdev/rte_eventdev_core.h
index c328bdbc82..c27a52ccc0 100644
--- a/lib/eventdev/rte_eventdev_core.h
+++ b/lib/eventdev/rte_eventdev_core.h
@@ -65,7 +65,7 @@ struct rte_event_fp_ops {
 	/**< PMD Tx adapter enqueue same destination function. */
 	event_crypto_adapter_enqueue_t ca_enqueue;
 	/**< PMD Crypto adapter enqueue function. */
-	uintptr_t reserved[6];
+	uintptr_t reserved[5];
 } __rte_cache_aligned;

 extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.378082200 +0800
+++ 0053-eventdev-fix-alignment-padding.patch	2023-10-22 22:17:34.266723700 +0800
@@ -1 +1 @@
-From 46a22124aef19f10e55c34235656a92712dc54b9 Mon Sep 17 00:00:00 2001
+From d854ba2422c14b1e5648939543201df434995067 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 46a22124aef19f10e55c34235656a92712dc54b9 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'event/cnxk: fix getwork mode devargs parsing' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (52 preceding siblings ...)
  2023-10-22 14:21 ` patch 'eventdev: fix alignment padding' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'event/cnxk: fix CASP usage for clang' " Xueming Li
                   ` (87 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Pavan Nikhilesh; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=148478f997f740041ac0da856d3db012c8965064

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 148478f997f740041ac0da856d3db012c8965064 Mon Sep 17 00:00:00 2001
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Date: Mon, 24 Jul 2023 14:06:44 +0530
Subject: [PATCH] event/cnxk: fix getwork mode devargs parsing
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 343216ff0c9f89d8d31060c53ad7271c87bc1323 ]

CN10K can support up to three types of getwork modes, use parse value
function to parse the device arguments.

Fixes: 5fb651552c79 ("event/cnxk: fix SSO and TIM argument parsing")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 drivers/event/cnxk/cnxk_eventdev.c | 2 +-
 drivers/event/cnxk/cnxk_eventdev.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/event/cnxk/cnxk_eventdev.c b/drivers/event/cnxk/cnxk_eventdev.c
index 93e46e1b9b..d2f1708297 100644
--- a/drivers/event/cnxk/cnxk_eventdev.c
+++ b/drivers/event/cnxk/cnxk_eventdev.c
@@ -551,7 +551,7 @@ cnxk_sso_parse_devargs(struct cnxk_sso_evdev *dev, struct rte_devargs *devargs)
 			   &dev->force_ena_bp);
 	rte_kvargs_process(kvlist, CN9K_SSO_SINGLE_WS, &parse_kvargs_flag,
 			   &single_ws);
-	rte_kvargs_process(kvlist, CN10K_SSO_GW_MODE, &parse_kvargs_flag,
+	rte_kvargs_process(kvlist, CN10K_SSO_GW_MODE, &parse_kvargs_value,
 			   &dev->gw_mode);
 	dev->dual_ws = !single_ws;
 	rte_kvargs_free(kvlist);
diff --git a/drivers/event/cnxk/cnxk_eventdev.h b/drivers/event/cnxk/cnxk_eventdev.h
index 738e335ea4..b4e5f81f8c 100644
--- a/drivers/event/cnxk/cnxk_eventdev.h
+++ b/drivers/event/cnxk/cnxk_eventdev.h
@@ -128,7 +128,7 @@ struct cnxk_sso_evdev {
 	/* CN9K */
 	uint8_t dual_ws;
 	/* CN10K */
-	uint8_t gw_mode;
+	uint32_t gw_mode;
 	/* Crypto adapter */
 	uint8_t is_ca_internal_port;
 } __rte_cache_aligned;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.407209300 +0800
+++ 0054-event-cnxk-fix-getwork-mode-devargs-parsing.patch	2023-10-22 22:17:34.266723700 +0800
@@ -1 +1 @@
-From 343216ff0c9f89d8d31060c53ad7271c87bc1323 Mon Sep 17 00:00:00 2001
+From 148478f997f740041ac0da856d3db012c8965064 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 343216ff0c9f89d8d31060c53ad7271c87bc1323 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 27883a3619..9c9192bd40 100644
+index 93e46e1b9b..d2f1708297 100644
@@ -22 +24 @@
-@@ -612,7 +612,7 @@ cnxk_sso_parse_devargs(struct cnxk_sso_evdev *dev, struct rte_devargs *devargs)
+@@ -551,7 +551,7 @@ cnxk_sso_parse_devargs(struct cnxk_sso_evdev *dev, struct rte_devargs *devargs)
@@ -29,2 +31,2 @@
- 	rte_kvargs_process(kvlist, CN10K_SSO_STASH,
- 			   &parse_sso_kvargs_stash_dict, dev);
+ 	dev->dual_ws = !single_ws;
+ 	rte_kvargs_free(kvlist);
@@ -32 +34 @@
-index 962e630256..9d95092669 100644
+index 738e335ea4..b4e5f81f8c 100644
@@ -35 +37 @@
-@@ -119,7 +119,7 @@ struct cnxk_sso_evdev {
+@@ -128,7 +128,7 @@ struct cnxk_sso_evdev {
@@ -41,2 +43,2 @@
- 	uint16_t stash_cnt;
- 	struct cnxk_sso_stash *stash_parse_data;
+ 	/* Crypto adapter */
+ 	uint8_t is_ca_internal_port;

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'event/cnxk: fix CASP usage for clang' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (53 preceding siblings ...)
  2023-10-22 14:21 ` patch 'event/cnxk: fix getwork mode devargs parsing' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'eventdev/crypto: fix circular buffer full case' " Xueming Li
                   ` (86 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Pavan Nikhilesh; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=15b1bc964b4e369724224f0b6cf3737341ad0cd3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 15b1bc964b4e369724224f0b6cf3737341ad0cd3 Mon Sep 17 00:00:00 2001
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Date: Mon, 24 Jul 2023 14:11:56 +0530
Subject: [PATCH] event/cnxk: fix CASP usage for clang
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 694e8e643de3c763216bb5cc187fb9be0c520f92 ]

Clang fails to use register pairs for CASP instruction, use
inline asm to fix register pairs.

Fixes: e239e0d3faf7 ("event/cnxk: add SSO HW device operations")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 drivers/event/cnxk/cn10k_worker.h | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/event/cnxk/cn10k_worker.h b/drivers/event/cnxk/cn10k_worker.h
index a93d40ed40..1bce0631e5 100644
--- a/drivers/event/cnxk/cn10k_worker.h
+++ b/drivers/event/cnxk/cn10k_worker.h
@@ -300,19 +300,32 @@ cn10k_sso_hws_get_work(struct cn10k_sso_hws *ws, struct rte_event *ev,
 	} gw;

 	gw.get_work = ws->gw_wdata;
-#if defined(RTE_ARCH_ARM64) && !defined(__clang__)
+#if defined(RTE_ARCH_ARM64)
+#if !defined(__clang__)
 	asm volatile(
 		PLT_CPU_FEATURE_PREAMBLE
 		"caspal %[wdata], %H[wdata], %[wdata], %H[wdata], [%[gw_loc]]\n"
 		: [wdata] "+r"(gw.get_work)
 		: [gw_loc] "r"(ws->base + SSOW_LF_GWS_OP_GET_WORK0)
 		: "memory");
+#else
+	register uint64_t x0 __asm("x0") = (uint64_t)gw.u64[0];
+	register uint64_t x1 __asm("x1") = (uint64_t)gw.u64[1];
+	asm volatile(".arch armv8-a+lse\n"
+		     "caspal %[x0], %[x1], %[x0], %[x1], [%[dst]]\n"
+		     : [x0] "+r"(x0), [x1] "+r"(x1)
+		     : [dst] "r"(ws->base + SSOW_LF_GWS_OP_GET_WORK0)
+		     : "memory");
+	gw.u64[0] = x0;
+	gw.u64[1] = x1;
+#endif
 #else
 	plt_write64(gw.u64[0], ws->base + SSOW_LF_GWS_OP_GET_WORK0);
 	do {
 		roc_load_pair(gw.u64[0], gw.u64[1],
 			      ws->base + SSOW_LF_GWS_WQE0);
 	} while (gw.u64[0] & BIT_ULL(63));
+	rte_atomic_thread_fence(__ATOMIC_SEQ_CST);
 #endif
 	ws->gw_rdata = gw.u64[0];
 	if (gw.u64[1])
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.439761700 +0800
+++ 0055-event-cnxk-fix-CASP-usage-for-clang.patch	2023-10-22 22:17:34.266723700 +0800
@@ -1 +1 @@
-From 694e8e643de3c763216bb5cc187fb9be0c520f92 Mon Sep 17 00:00:00 2001
+From 15b1bc964b4e369724224f0b6cf3737341ad0cd3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 694e8e643de3c763216bb5cc187fb9be0c520f92 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 46bfa9dd9d..30290ddd06 100644
+index a93d40ed40..1bce0631e5 100644
@@ -21 +23 @@
-@@ -249,19 +249,32 @@ cn10k_sso_hws_get_work(struct cn10k_sso_hws *ws, struct rte_event *ev,
+@@ -300,19 +300,32 @@ cn10k_sso_hws_get_work(struct cn10k_sso_hws *ws, struct rte_event *ev,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'eventdev/crypto: fix circular buffer full case' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (54 preceding siblings ...)
  2023-10-22 14:21 ` patch 'event/cnxk: fix CASP usage for clang' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'event/cnxk: fix return values for capability API' " Xueming Li
                   ` (85 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Ganapati Kundapura; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=ba2ec17a2f57a88e89d12d88a9fc4ca0a4084ae3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ba2ec17a2f57a88e89d12d88a9fc4ca0a4084ae3 Mon Sep 17 00:00:00 2001
From: Ganapati Kundapura <ganapati.kundapura@intel.com>
Date: Thu, 3 Aug 2023 03:32:29 -0500
Subject: [PATCH] eventdev/crypto: fix circular buffer full case
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 6c3c888656fcb0ec419d751f90c0c2a18b5b709a ]

crypto ops from the circular buffer are not getting flushed
to crypto dev when crypto dev becomes busy and circular buffer
gets full.

Fix it by flushing ops from circular buffer when circular buffer
is full instead of returning without flushing.

Fixes: 2ae84b39ae7b ("eventdev/crypto: store operations in circular buffer")

Signed-off-by: Ganapati Kundapura <ganapati.kundapura@intel.com>
---
 lib/eventdev/rte_event_crypto_adapter.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/lib/eventdev/rte_event_crypto_adapter.c b/lib/eventdev/rte_event_crypto_adapter.c
index 4e1dbefb8e..ea50e405a8 100644
--- a/lib/eventdev/rte_event_crypto_adapter.c
+++ b/lib/eventdev/rte_event_crypto_adapter.c
@@ -240,9 +240,18 @@ eca_circular_buffer_flush_to_cdev(struct crypto_ops_circular_buffer *bufp,
 		n = *tailp - *headp;
 	else if (*tailp < *headp)
 		n = bufp->size - *headp;
-	else {
-		*nb_ops_flushed = 0;
-		return 0;  /* buffer empty */
+	else { /* head == tail case */
+		/* when head == tail,
+		 * circ buff is either full(tail pointer roll over) or empty
+		 */
+		if (bufp->count != 0) {
+			/* circ buffer is full */
+			n = bufp->count;
+		} else {
+			/* circ buffer is empty */
+			*nb_ops_flushed = 0;
+			return 0;  /* buffer empty */
+		}
 	}

 	*nb_ops_flushed = rte_cryptodev_enqueue_burst(cdev_id, qp_id,
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.470556900 +0800
+++ 0056-eventdev-crypto-fix-circular-buffer-full-case.patch	2023-10-22 22:17:34.266723700 +0800
@@ -1 +1 @@
-From 6c3c888656fcb0ec419d751f90c0c2a18b5b709a Mon Sep 17 00:00:00 2001
+From ba2ec17a2f57a88e89d12d88a9fc4ca0a4084ae3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 6c3c888656fcb0ec419d751f90c0c2a18b5b709a ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 52a28e52d6..1b435c9f0e 100644
+index 4e1dbefb8e..ea50e405a8 100644
@@ -25 +27 @@
-@@ -248,9 +248,18 @@ eca_circular_buffer_flush_to_cdev(struct crypto_ops_circular_buffer *bufp,
+@@ -240,9 +240,18 @@ eca_circular_buffer_flush_to_cdev(struct crypto_ops_circular_buffer *bufp,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'event/cnxk: fix return values for capability API' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (55 preceding siblings ...)
  2023-10-22 14:21 ` patch 'eventdev/crypto: fix circular buffer full case' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'test/event: fix crypto null device creation' " Xueming Li
                   ` (84 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Aakash Sasidharan; +Cc: Anoob Joseph, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=6e9061bd7785010b5c49c4dd70aaa3ff1caa91c3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6e9061bd7785010b5c49c4dd70aaa3ff1caa91c3 Mon Sep 17 00:00:00 2001
From: Aakash Sasidharan <asasidharan@marvell.com>
Date: Tue, 22 Aug 2023 18:46:47 +0530
Subject: [PATCH] event/cnxk: fix return values for capability API
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit bccb1d4f10e12c396058c06c3ba9e3565633390e ]

When event_cnxk or crypto_cnxk PMDs are not available,
return -ENOTSUP instead of -EINVAL.
This would allow unit test to be skipped when
the devices are not available.

Fixes: 19f81cb59cb4 ("event/cnxk: add crypto adapter operations")

Signed-off-by: Aakash Sasidharan <asasidharan@marvell.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
---
 drivers/event/cnxk/cn10k_eventdev.c | 16 ++++++++--------
 drivers/event/cnxk/cn9k_eventdev.c  | 16 ++++++++--------
 drivers/event/cnxk/cnxk_eventdev.h  |  4 ++--
 3 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/drivers/event/cnxk/cn10k_eventdev.c b/drivers/event/cnxk/cn10k_eventdev.c
index 30c922b5fc..77014ada00 100644
--- a/drivers/event/cnxk/cn10k_eventdev.c
+++ b/drivers/event/cnxk/cn10k_eventdev.c
@@ -1024,8 +1024,8 @@ static int
 cn10k_crypto_adapter_caps_get(const struct rte_eventdev *event_dev,
 			      const struct rte_cryptodev *cdev, uint32_t *caps)
 {
-	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn10k");
-	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn10k");
+	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn10k", ENOTSUP);
+	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn10k", ENOTSUP);

 	*caps = RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD |
 		RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA |
@@ -1043,8 +1043,8 @@ cn10k_crypto_adapter_qp_add(const struct rte_eventdev *event_dev,
 	struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);
 	int ret;

-	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn10k");
-	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn10k");
+	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn10k", EINVAL);
+	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn10k", EINVAL);

 	dev->is_ca_internal_port = 1;
 	cn10k_sso_fp_fns_set((struct rte_eventdev *)(uintptr_t)event_dev);
@@ -1059,8 +1059,8 @@ static int
 cn10k_crypto_adapter_qp_del(const struct rte_eventdev *event_dev, const struct rte_cryptodev *cdev,
 			    int32_t queue_pair_id)
 {
-	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn10k");
-	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn10k");
+	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn10k", EINVAL);
+	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn10k", EINVAL);

 	return cnxk_crypto_adapter_qp_del(cdev, queue_pair_id);
 }
@@ -1078,8 +1078,8 @@ cn10k_crypto_adapter_vec_limits(const struct rte_eventdev *event_dev,
 				const struct rte_cryptodev *cdev,
 				struct rte_event_crypto_adapter_vector_limits *limits)
 {
-	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn10k");
-	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn10k");
+	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn10k", EINVAL);
+	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn10k", EINVAL);

 	limits->log2_sz = false;
 	limits->min_sz = 0;
diff --git a/drivers/event/cnxk/cn9k_eventdev.c b/drivers/event/cnxk/cn9k_eventdev.c
index f5a42a86f8..4f362a8e80 100644
--- a/drivers/event/cnxk/cn9k_eventdev.c
+++ b/drivers/event/cnxk/cn9k_eventdev.c
@@ -1110,11 +1110,11 @@ cn9k_sso_tx_adapter_queue_del(uint8_t id, const struct rte_eventdev *event_dev,
 }

 static int
-cn9k_crypto_adapter_caps_get(const struct rte_eventdev *event_dev,
-			     const struct rte_cryptodev *cdev, uint32_t *caps)
+cn9k_crypto_adapter_caps_get(const struct rte_eventdev *event_dev, const struct rte_cryptodev *cdev,
+			     uint32_t *caps)
 {
-	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn9k");
-	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn9k");
+	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn9k", ENOTSUP);
+	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn9k", ENOTSUP);

 	*caps = RTE_EVENT_CRYPTO_ADAPTER_CAP_INTERNAL_PORT_OP_FWD |
 		RTE_EVENT_CRYPTO_ADAPTER_CAP_SESSION_PRIVATE_DATA;
@@ -1131,8 +1131,8 @@ cn9k_crypto_adapter_qp_add(const struct rte_eventdev *event_dev,
 	struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);
 	int ret;

-	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn9k");
-	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn9k");
+	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn9k", EINVAL);
+	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn9k", EINVAL);

 	dev->is_ca_internal_port = 1;
 	cn9k_sso_fp_fns_set((struct rte_eventdev *)(uintptr_t)event_dev);
@@ -1147,8 +1147,8 @@ static int
 cn9k_crypto_adapter_qp_del(const struct rte_eventdev *event_dev, const struct rte_cryptodev *cdev,
 			   int32_t queue_pair_id)
 {
-	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn9k");
-	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn9k");
+	CNXK_VALID_DEV_OR_ERR_RET(event_dev->dev, "event_cn9k", EINVAL);
+	CNXK_VALID_DEV_OR_ERR_RET(cdev->device, "crypto_cn9k", EINVAL);

 	return cnxk_crypto_adapter_qp_del(cdev, queue_pair_id);
 }
diff --git a/drivers/event/cnxk/cnxk_eventdev.h b/drivers/event/cnxk/cnxk_eventdev.h
index b4e5f81f8c..44a39648e3 100644
--- a/drivers/event/cnxk/cnxk_eventdev.h
+++ b/drivers/event/cnxk/cnxk_eventdev.h
@@ -65,10 +65,10 @@
 	(min + val / ((max + cnt - 1) / cnt))
 #define CNXK_SSO_FLUSH_RETRY_MAX 0xfff

-#define CNXK_VALID_DEV_OR_ERR_RET(dev, drv_name)                               \
+#define CNXK_VALID_DEV_OR_ERR_RET(dev, drv_name, err_val)                      \
 	do {                                                                   \
 		if (strncmp(dev->driver->name, drv_name, strlen(drv_name)))    \
-			return -EINVAL;                                        \
+			return -err_val;                                       \
 	} while (0)

 typedef void *(*cnxk_sso_init_hws_mem_t)(void *dev, uint8_t port_id);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.504530900 +0800
+++ 0057-event-cnxk-fix-return-values-for-capability-API.patch	2023-10-22 22:17:34.276723700 +0800
@@ -1 +1 @@
-From bccb1d4f10e12c396058c06c3ba9e3565633390e Mon Sep 17 00:00:00 2001
+From 6e9061bd7785010b5c49c4dd70aaa3ff1caa91c3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit bccb1d4f10e12c396058c06c3ba9e3565633390e ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 499a3aace7..c5d4be0474 100644
+index 30c922b5fc..77014ada00 100644
@@ -26 +28 @@
-@@ -911,8 +911,8 @@ static int
+@@ -1024,8 +1024,8 @@ static int
@@ -37,2 +39,2 @@
-@@ -929,8 +929,8 @@ cn10k_crypto_adapter_qp_add(const struct rte_eventdev *event_dev,
- {
+@@ -1043,8 +1043,8 @@ cn10k_crypto_adapter_qp_add(const struct rte_eventdev *event_dev,
+ 	struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);
@@ -45,0 +48 @@
+ 	dev->is_ca_internal_port = 1;
@@ -47,2 +50 @@
-
-@@ -944,8 +944,8 @@ static int
+@@ -1059,8 +1059,8 @@ static int
@@ -59 +61 @@
-@@ -963,8 +963,8 @@ cn10k_crypto_adapter_vec_limits(const struct rte_eventdev *event_dev,
+@@ -1078,8 +1078,8 @@ cn10k_crypto_adapter_vec_limits(const struct rte_eventdev *event_dev,
@@ -71 +73 @@
-index 6cce5477f0..f77a9d7085 100644
+index f5a42a86f8..4f362a8e80 100644
@@ -74 +76 @@
-@@ -942,11 +942,11 @@ cn9k_sso_tx_adapter_queue_del(uint8_t id, const struct rte_eventdev *event_dev,
+@@ -1110,11 +1110,11 @@ cn9k_sso_tx_adapter_queue_del(uint8_t id, const struct rte_eventdev *event_dev,
@@ -90,2 +92,2 @@
-@@ -962,8 +962,8 @@ cn9k_crypto_adapter_qp_add(const struct rte_eventdev *event_dev,
- {
+@@ -1131,8 +1131,8 @@ cn9k_crypto_adapter_qp_add(const struct rte_eventdev *event_dev,
+ 	struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);
@@ -98,0 +101 @@
+ 	dev->is_ca_internal_port = 1;
@@ -100,2 +103 @@
-
-@@ -977,8 +977,8 @@ static int
+@@ -1147,8 +1147,8 @@ static int
@@ -113 +115 @@
-index 9d95092669..bd50de87c0 100644
+index b4e5f81f8c..44a39648e3 100644
@@ -116 +118 @@
-@@ -48,10 +48,10 @@
+@@ -65,10 +65,10 @@

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test/event: fix crypto null device creation' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (56 preceding siblings ...)
  2023-10-22 14:21 ` patch 'event/cnxk: fix return values for capability API' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'event/sw: remove obsolete comment' " Xueming Li
                   ` (83 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Aakash Sasidharan; +Cc: Anoob Joseph, Abhinandan Gujjar, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=bb60e982129cd7259a3f52746a5608c8de6dad59

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From bb60e982129cd7259a3f52746a5608c8de6dad59 Mon Sep 17 00:00:00 2001
From: Aakash Sasidharan <asasidharan@marvell.com>
Date: Tue, 22 Aug 2023 18:46:49 +0530
Subject: [PATCH] test/event: fix crypto null device creation
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit cf57682e1b6fea41566325eb92b0978bd0209904 ]

Create crypto null device only if no other crypto devices
were found.

Fixes: 3c2c535ecfc0 ("test: add event crypto adapter auto-test")

Signed-off-by: Aakash Sasidharan <asasidharan@marvell.com>
Acked-by: Anoob Joseph <anoobj@marvell.com>
Acked-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
---
 app/test/test_event_crypto_adapter.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/app/test/test_event_crypto_adapter.c b/app/test/test_event_crypto_adapter.c
index a38e389abd..3d720fe68b 100644
--- a/app/test/test_event_crypto_adapter.c
+++ b/app/test/test_event_crypto_adapter.c
@@ -958,11 +958,10 @@ configure_cryptodev(void)
 		return TEST_FAILED;
 	}

-	/* Create a NULL crypto device */
-	nb_devs = rte_cryptodev_device_count_by_driver(
-			rte_cryptodev_driver_id_get(
-			RTE_STR(CRYPTODEV_NAME_NULL_PMD)));
+
+	nb_devs = rte_cryptodev_count();
 	if (!nb_devs) {
+		/* Create a NULL crypto device */
 		ret = rte_vdev_init(
 			RTE_STR(CRYPTODEV_NAME_NULL_PMD), NULL);

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.537920100 +0800
+++ 0058-test-event-fix-crypto-null-device-creation.patch	2023-10-22 22:17:34.276723700 +0800
@@ -1 +1 @@
-From cf57682e1b6fea41566325eb92b0978bd0209904 Mon Sep 17 00:00:00 2001
+From bb60e982129cd7259a3f52746a5608c8de6dad59 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit cf57682e1b6fea41566325eb92b0978bd0209904 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 00b20fa443..0c56744ba0 100644
+index a38e389abd..3d720fe68b 100644
@@ -23 +25 @@
-@@ -1072,11 +1072,10 @@ configure_cryptodev(void)
+@@ -958,11 +958,10 @@ configure_cryptodev(void)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'event/sw: remove obsolete comment' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (57 preceding siblings ...)
  2023-10-22 14:21 ` patch 'test/event: fix crypto null device creation' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'event/cnxk: fix context flush in port cleanup' " Xueming Li
                   ` (82 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Harry van Haaren, Stephen Hemminger, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=22d497557327c302d37f44ae8cb0115074e51564

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 22d497557327c302d37f44ae8cb0115074e51564 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Thu, 14 Sep 2023 10:37:51 +0100
Subject: [PATCH] event/sw: remove obsolete comment
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 34b067274c3b8b405e56322009844539a708820c ]

Code that the comment refers to was previously removed, but the
comment remained.

Fixes: dca926ca9faa ("event/sw: use dynamically-sized IQs")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/event/sw/sw_evdev_scheduler.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/event/sw/sw_evdev_scheduler.c b/drivers/event/sw/sw_evdev_scheduler.c
index 8bc21944f5..7de1c39dc0 100644
--- a/drivers/event/sw/sw_evdev_scheduler.c
+++ b/drivers/event/sw/sw_evdev_scheduler.c
@@ -368,12 +368,6 @@ __pull_port_lb(struct sw_evdev *sw, uint32_t port_id, int allow_reorder)
 		if (!allow_reorder && !eop)
 			flags = QE_FLAG_VALID;

-		/*
-		 * if we don't have space for this packet in an IQ,
-		 * then move on to next queue. Technically, for a
-		 * packet that needs reordering, we don't need to check
-		 * here, but it simplifies things not to special-case
-		 */
 		uint32_t iq_num = PRIO_TO_IQ(qe->priority);
 		struct sw_qid *qid = &sw->qids[qe->queue_id];

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.569757200 +0800
+++ 0059-event-sw-remove-obsolete-comment.patch	2023-10-22 22:17:34.276723700 +0800
@@ -1 +1 @@
-From 34b067274c3b8b405e56322009844539a708820c Mon Sep 17 00:00:00 2001
+From 22d497557327c302d37f44ae8cb0115074e51564 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 34b067274c3b8b405e56322009844539a708820c ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index de6ed21643..17953fde0e 100644
+index 8bc21944f5..7de1c39dc0 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'event/cnxk: fix context flush in port cleanup' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (58 preceding siblings ...)
  2023-10-22 14:21 ` patch 'event/sw: remove obsolete comment' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'eventdev/eth_rx: fix timestamp field register in mbuf' " Xueming Li
                   ` (81 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Pavan Nikhilesh; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=6d49fdbd99d28b4d5426d9e30ad0d0bbd4845afa

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6d49fdbd99d28b4d5426d9e30ad0d0bbd4845afa Mon Sep 17 00:00:00 2001
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Date: Sat, 9 Sep 2023 22:27:46 +0530
Subject: [PATCH] event/cnxk: fix context flush in port cleanup
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 5808b30ab74f04b687f4487718849f935bcab607 ]

Flush currently held flow context during event port cleanup.

Fixes: e8594de2731d ("event/cnxk: implement event port quiesce function")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 drivers/event/cnxk/cn10k_eventdev.c | 18 ++++++++++++++----
 drivers/event/cnxk/cn9k_eventdev.c  | 25 +++++++++++++++++++------
 2 files changed, 33 insertions(+), 10 deletions(-)

diff --git a/drivers/event/cnxk/cn10k_eventdev.c b/drivers/event/cnxk/cn10k_eventdev.c
index 77014ada00..d8e7c83462 100644
--- a/drivers/event/cnxk/cn10k_eventdev.c
+++ b/drivers/event/cnxk/cn10k_eventdev.c
@@ -197,12 +197,14 @@ cn10k_sso_hws_reset(void *arg, void *hws)
 			cnxk_sso_hws_swtag_untag(base +
 						 SSOW_LF_GWS_OP_SWTAG_UNTAG);
 		plt_write64(0, base + SSOW_LF_GWS_OP_DESCHED);
+	} else if (pend_tt != SSO_TT_EMPTY) {
+		plt_write64(0, base + SSOW_LF_GWS_OP_SWTAG_FLUSH);
 	}

 	/* Wait for desched to complete. */
 	do {
 		pend_state = plt_read64(base + SSOW_LF_GWS_PENDSTATE);
-	} while (pend_state & BIT_ULL(58));
+	} while (pend_state & (BIT_ULL(58) | BIT_ULL(56)));

 	switch (dev->gw_mode) {
 	case CN10K_GW_MODE_PREF:
@@ -711,11 +713,16 @@ cn10k_sso_port_quiesce(struct rte_eventdev *event_dev, void *port,
 	cn10k_sso_hws_get_work_empty(ws, &ev,
 				     (NIX_RX_OFFLOAD_MAX - 1) | NIX_RX_REAS_F |
 					     NIX_RX_MULTI_SEG_F | CPT_RX_WQE_F);
-	if (is_pend && ev.u64) {
+	if (is_pend && ev.u64)
 		if (flush_cb)
 			flush_cb(event_dev->data->dev_id, ev, args);
+	ptag = (plt_read64(ws->base + SSOW_LF_GWS_TAG) >> 32) & SSO_TT_EMPTY;
+	if (ptag != SSO_TT_EMPTY)
 		cnxk_sso_hws_swtag_flush(ws->base);
-	}
+
+	do {
+		ptag = plt_read64(ws->base + SSOW_LF_GWS_PENDSTATE);
+	} while (ptag & BIT_ULL(56));

 	/* Check if we have work in PRF_WQE0, if so extract it. */
 	switch (dev->gw_mode) {
@@ -741,8 +748,11 @@ cn10k_sso_port_quiesce(struct rte_eventdev *event_dev, void *port,
 		if (ev.u64) {
 			if (flush_cb)
 				flush_cb(event_dev->data->dev_id, ev, args);
-			cnxk_sso_hws_swtag_flush(ws->base);
 		}
+		cnxk_sso_hws_swtag_flush(ws->base);
+		do {
+			ptag = plt_read64(ws->base + SSOW_LF_GWS_PENDSTATE);
+		} while (ptag & BIT_ULL(56));
 	}
 	ws->swtag_req = 0;
 	plt_write64(0, ws->base + SSOW_LF_GWS_OP_GWC_INVAL);
diff --git a/drivers/event/cnxk/cn9k_eventdev.c b/drivers/event/cnxk/cn9k_eventdev.c
index 4f362a8e80..803e7ddd07 100644
--- a/drivers/event/cnxk/cn9k_eventdev.c
+++ b/drivers/event/cnxk/cn9k_eventdev.c
@@ -223,16 +223,16 @@ cn9k_sso_hws_reset(void *arg, void *hws)
 				cnxk_sso_hws_swtag_untag(
 					base + SSOW_LF_GWS_OP_SWTAG_UNTAG);
 			plt_write64(0, base + SSOW_LF_GWS_OP_DESCHED);
+		} else if (pend_tt != SSO_TT_EMPTY) {
+			plt_write64(0, base + SSOW_LF_GWS_OP_SWTAG_FLUSH);
 		}

 		/* Wait for desched to complete. */
 		do {
 			pend_state = plt_read64(base + SSOW_LF_GWS_PENDSTATE);
-		} while (pend_state & BIT_ULL(58));
-
+		} while (pend_state & (BIT_ULL(58) | BIT_ULL(56)));
 		plt_write64(0, base + SSOW_LF_GWS_OP_GWC_INVAL);
 	}
-
 	if (dev->dual_ws)
 		dws->swtag_req = 0;
 	else
@@ -846,12 +846,25 @@ cn9k_sso_port_quiesce(struct rte_eventdev *event_dev, void *port,
 			base, &ev, dev->rx_offloads,
 			dev->dual_ws ? dws->lookup_mem : ws->lookup_mem,
 			dev->dual_ws ? dws->tstamp : ws->tstamp);
-		if (is_pend && ev.u64) {
+		if (is_pend && ev.u64)
 			if (flush_cb)
 				flush_cb(event_dev->data->dev_id, ev, args);
-			cnxk_sso_hws_swtag_flush(ws->base);
-		}
+
+		ptag = (plt_read64(base + SSOW_LF_GWS_TAG) >> 32) & SSO_TT_EMPTY;
+		if (ptag != SSO_TT_EMPTY)
+			cnxk_sso_hws_swtag_flush(base);
+
+		do {
+			ptag = plt_read64(base + SSOW_LF_GWS_PENDSTATE);
+		} while (ptag & BIT_ULL(56));
+
+		plt_write64(0, base + SSOW_LF_GWS_OP_GWC_INVAL);
 	}
+
+	if (dev->dual_ws)
+		dws->swtag_req = 0;
+	else
+		ws->swtag_req = 0;
 }

 static int
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.604021000 +0800
+++ 0060-event-cnxk-fix-context-flush-in-port-cleanup.patch	2023-10-22 22:17:34.276723700 +0800
@@ -1 +1 @@
-From 5808b30ab74f04b687f4487718849f935bcab607 Mon Sep 17 00:00:00 2001
+From 6d49fdbd99d28b4d5426d9e30ad0d0bbd4845afa Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5808b30ab74f04b687f4487718849f935bcab607 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index cae2efbb69..cf186b9af4 100644
+index 77014ada00..d8e7c83462 100644
@@ -21 +23 @@
-@@ -204,12 +204,14 @@ cn10k_sso_hws_reset(void *arg, void *hws)
+@@ -197,12 +197,14 @@ cn10k_sso_hws_reset(void *arg, void *hws)
@@ -37,2 +39 @@
-@@ -587,11 +589,16 @@ cn10k_sso_port_quiesce(struct rte_eventdev *event_dev, void *port,
-
+@@ -711,11 +713,16 @@ cn10k_sso_port_quiesce(struct rte_eventdev *event_dev, void *port,
@@ -40 +41,2 @@
- 				     (NIX_RX_OFFLOAD_MAX - 1) | NIX_RX_REAS_F | NIX_RX_MULTI_SEG_F);
+ 				     (NIX_RX_OFFLOAD_MAX - 1) | NIX_RX_REAS_F |
+ 					     NIX_RX_MULTI_SEG_F | CPT_RX_WQE_F);
@@ -56 +58 @@
-@@ -615,8 +622,11 @@ cn10k_sso_port_quiesce(struct rte_eventdev *event_dev, void *port,
+@@ -741,8 +748,11 @@ cn10k_sso_port_quiesce(struct rte_eventdev *event_dev, void *port,
@@ -70 +72 @@
-index f77a9d7085..fe6f5d9f86 100644
+index 4f362a8e80..803e7ddd07 100644
@@ -73 +75 @@
-@@ -222,16 +222,16 @@ cn9k_sso_hws_reset(void *arg, void *hws)
+@@ -223,16 +223,16 @@ cn9k_sso_hws_reset(void *arg, void *hws)
@@ -93 +95 @@
-@@ -686,12 +686,25 @@ cn9k_sso_port_quiesce(struct rte_eventdev *event_dev, void *port,
+@@ -846,12 +846,25 @@ cn9k_sso_port_quiesce(struct rte_eventdev *event_dev, void *port,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'eventdev/eth_rx: fix timestamp field register in mbuf' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (59 preceding siblings ...)
  2023-10-22 14:21 ` patch 'event/cnxk: fix context flush in port cleanup' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'event/sw: fix ordering corruption with op release' " Xueming Li
                   ` (80 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Rahul Bhansali; +Cc: Naga Harish K S V, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e9da79d97321234ee77f3c1fd45464ec3848f12e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e9da79d97321234ee77f3c1fd45464ec3848f12e Mon Sep 17 00:00:00 2001
From: Rahul Bhansali <rbhansali@marvell.com>
Date: Wed, 20 Sep 2023 22:18:22 +0530
Subject: [PATCH] eventdev/eth_rx: fix timestamp field register in mbuf
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 5083736a4752e0701002297f871325c57568e1d0 ]

For eventdev internal port, timestamp dynamic field registration
in mbuf is not required as that will be done from net device.
For SW eventdev, Rx timestamp field registration will be
done during rxa service initialization.

Fixes: 83ab470d1259 ("eventdev/eth_rx: use timestamp as dynamic mbuf field")

Signed-off-by: Rahul Bhansali <rbhansali@marvell.com>
Acked-by: Naga Harish K S V <s.v.naga.harish.k@intel.com>
---
 lib/eventdev/rte_event_eth_rx_adapter.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c
index 170823a03c..6636128378 100644
--- a/lib/eventdev/rte_event_eth_rx_adapter.c
+++ b/lib/eventdev/rte_event_eth_rx_adapter.c
@@ -1906,6 +1906,13 @@ rxa_init_service(struct event_eth_rx_adapter *rx_adapter, uint8_t id)
 	if (rx_adapter->service_inited)
 		return 0;

+	if (rte_mbuf_dyn_rx_timestamp_register(
+			&event_eth_rx_timestamp_dynfield_offset,
+			&event_eth_rx_timestamp_dynflag) != 0) {
+		RTE_EDEV_LOG_ERR("Error registering timestamp field in mbuf\n");
+		return -rte_errno;
+	}
+
 	memset(&service, 0, sizeof(service));
 	snprintf(service.name, ETH_RX_ADAPTER_SERVICE_NAME_LEN,
 		"rte_event_eth_rx_adapter_%d", id);
@@ -2468,13 +2475,6 @@ rxa_create(uint8_t id, uint8_t dev_id,
 	if (conf_cb == rxa_default_conf_cb)
 		rx_adapter->default_cb_arg = 1;

-	if (rte_mbuf_dyn_rx_timestamp_register(
-			&event_eth_rx_timestamp_dynfield_offset,
-			&event_eth_rx_timestamp_dynflag) != 0) {
-		RTE_EDEV_LOG_ERR("Error registering timestamp field in mbuf\n");
-		return -rte_errno;
-	}
-
 	rte_eventdev_trace_eth_rx_adapter_create(id, dev_id, conf_cb,
 		conf_arg);
 	return 0;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.637572100 +0800
+++ 0061-eventdev-eth_rx-fix-timestamp-field-register-in-mbuf.patch	2023-10-22 22:17:34.276723700 +0800
@@ -1 +1 @@
-From 5083736a4752e0701002297f871325c57568e1d0 Mon Sep 17 00:00:00 2001
+From e9da79d97321234ee77f3c1fd45464ec3848f12e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5083736a4752e0701002297f871325c57568e1d0 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index e1660713cd..ea7106a1fe 100644
+index 170823a03c..6636128378 100644
@@ -24 +26 @@
-@@ -1912,6 +1912,13 @@ rxa_init_service(struct event_eth_rx_adapter *rx_adapter, uint8_t id)
+@@ -1906,6 +1906,13 @@ rxa_init_service(struct event_eth_rx_adapter *rx_adapter, uint8_t id)
@@ -38 +40 @@
-@@ -2474,13 +2481,6 @@ rxa_create(uint8_t id, uint8_t dev_id,
+@@ -2468,13 +2475,6 @@ rxa_create(uint8_t id, uint8_t dev_id,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'event/sw: fix ordering corruption with op release' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (60 preceding siblings ...)
  2023-10-22 14:21 ` patch 'eventdev/eth_rx: fix timestamp field register in mbuf' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'common/cnxk: fix default flow action setting' " Xueming Li
                   ` (79 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Harry van Haaren; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=1b7fb134d97b1a890af0380d733c0e48e7ae61b4

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 1b7fb134d97b1a890af0380d733c0e48e7ae61b4 Mon Sep 17 00:00:00 2001
From: Harry van Haaren <harry.van.haaren@intel.com>
Date: Mon, 2 Oct 2023 11:58:35 +0100
Subject: [PATCH] event/sw: fix ordering corruption with op release
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 5078a8f37d82f3b54cf373389b6754e2bafd584f ]

This commit changes the logic in the scheduler to always
reset reorder-buffer (and QID/FID) entries when writing
them. This avoids stale ROB/QID/FID data re-use, which
previously caused ordering issues.

Before this commit, release events left the history-list
in an inconsistent state, and future events with op type of
forward could be incorrectly reordered.

There was a partial fix previously committed which is now
being resolved for all cases in a more general way, hence
the two fixlines here.

Fixes: 2e516d18dc01 ("event/sw: fix events mis-identified as needing reorder")
Fixes: 617995dfc5b2 ("event/sw: add scheduling logic")

Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 drivers/event/sw/sw_evdev_scheduler.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/event/sw/sw_evdev_scheduler.c b/drivers/event/sw/sw_evdev_scheduler.c
index 7de1c39dc0..25f97c4ffb 100644
--- a/drivers/event/sw/sw_evdev_scheduler.c
+++ b/drivers/event/sw/sw_evdev_scheduler.c
@@ -90,8 +90,10 @@ sw_schedule_atomic_to_cq(struct sw_evdev *sw, struct sw_qid * const qid,
 		sw->cq_ring_space[cq]--;

 		int head = (p->hist_head++ & (SW_PORT_HIST_LIST-1));
-		p->hist_list[head].fid = flow_id;
-		p->hist_list[head].qid = qid_id;
+		p->hist_list[head] = (struct sw_hist_list_entry) {
+			.qid = qid_id,
+			.fid = flow_id,
+		};

 		p->stats.tx_pkts++;
 		qid->stats.tx_pkts++;
@@ -162,8 +164,10 @@ sw_schedule_parallel_to_cq(struct sw_evdev *sw, struct sw_qid * const qid,
 		qid->stats.tx_pkts++;

 		const int head = (p->hist_head & (SW_PORT_HIST_LIST-1));
-		p->hist_list[head].fid = SW_HASH_FLOWID(qe->flow_id);
-		p->hist_list[head].qid = qid_id;
+		p->hist_list[head] = (struct sw_hist_list_entry) {
+			.qid = qid_id,
+			.fid = SW_HASH_FLOWID(qe->flow_id),
+		};

 		if (keep_order)
 			rob_ring_dequeue(qid->reorder_buffer_freelist,
@@ -413,7 +417,6 @@ __pull_port_lb(struct sw_evdev *sw, uint32_t port_id, int allow_reorder)
 				struct reorder_buffer_entry *rob_entry =
 						hist_entry->rob_entry;

-				hist_entry->rob_entry = NULL;
 				/* Although fragmentation not currently
 				 * supported by eventdev API, we support it
 				 * here. Open: How do we alert the user that
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.672379100 +0800
+++ 0062-event-sw-fix-ordering-corruption-with-op-release.patch	2023-10-22 22:17:34.286723700 +0800
@@ -1 +1 @@
-From 5078a8f37d82f3b54cf373389b6754e2bafd584f Mon Sep 17 00:00:00 2001
+From 1b7fb134d97b1a890af0380d733c0e48e7ae61b4 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5078a8f37d82f3b54cf373389b6754e2bafd584f ]
@@ -21 +23,0 @@
-Cc: stable@dpdk.org
@@ -31 +33 @@
-index 17953fde0e..a5fdcf301b 100644
+index 7de1c39dc0..25f97c4ffb 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/cnxk: fix default flow action setting' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (61 preceding siblings ...)
  2023-10-22 14:21 ` patch 'event/sw: fix ordering corruption with op release' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'common/cnxk: fix xstats for different packet sizes' " Xueming Li
                   ` (78 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Satheesh Paul; +Cc: Kiran Kumar K, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8c360e4392d68edf793ab0d6dacf54e1c9e87f0d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8c360e4392d68edf793ab0d6dacf54e1c9e87f0d Mon Sep 17 00:00:00 2001
From: Satheesh Paul <psatheesh@marvell.com>
Date: Mon, 31 Jul 2023 08:26:07 +0530
Subject: [PATCH] common/cnxk: fix default flow action setting
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit b1f677d4386f7d9ad26a71615c00a2bdcb125c5e ]

For MCAM rules with PF/VF action, the PF's default rule action is
is copied and overwritten over the user provided action. Fixing this
by setting default action only if no other action (like queue) is
specified by user.

Fixes: a07f7ced436d ("common/cnxk: add NPC init and fini")

Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
Reviewed-by: Kiran Kumar K <kirankumark@marvell.com>
---
 drivers/common/cnxk/hw/nix.h            |  1 +
 drivers/common/cnxk/roc_npc.c           | 17 ++++++++++-------
 drivers/common/cnxk/roc_npc_mcam_dump.c |  4 ++++
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/drivers/common/cnxk/hw/nix.h b/drivers/common/cnxk/hw/nix.h
index 425c335bf3..3246ea6573 100644
--- a/drivers/common/cnxk/hw/nix.h
+++ b/drivers/common/cnxk/hw/nix.h
@@ -617,6 +617,7 @@
 #define NIX_RX_ACTIONOP_RSS	     (0x4ull)
 #define NIX_RX_ACTIONOP_PF_FUNC_DROP (0x5ull)
 #define NIX_RX_ACTIONOP_MIRROR	     (0x6ull)
+#define NIX_RX_ACTIONOP_DEFAULT	     (0xfull)

 #define NIX_RX_VTAGACTION_VTAG0_RELPTR (0x0ull)
 #define NIX_RX_VTAGACTION_VTAG1_RELPTR (0x4ull)
diff --git a/drivers/common/cnxk/roc_npc.c b/drivers/common/cnxk/roc_npc.c
index 5e1ca6bc03..2ee1233757 100644
--- a/drivers/common/cnxk/roc_npc.c
+++ b/drivers/common/cnxk/roc_npc.c
@@ -634,11 +634,15 @@ npc_parse_actions(struct roc_npc *roc_npc, const struct roc_npc_attr *attr,
 	if (req_act == ROC_NPC_ACTION_TYPE_VLAN_STRIP) {
 		/* Only VLAN action is provided */
 		flow->npc_action = NIX_RX_ACTIONOP_UCAST;
-	} else if (req_act &
-		   (ROC_NPC_ACTION_TYPE_PF | ROC_NPC_ACTION_TYPE_VF)) {
-		flow->npc_action = NIX_RX_ACTIONOP_UCAST;
-		if (req_act & ROC_NPC_ACTION_TYPE_QUEUE)
-			flow->npc_action |= (uint64_t)rq << 20;
+	} else if (req_act & (ROC_NPC_ACTION_TYPE_PF | ROC_NPC_ACTION_TYPE_VF)) {
+		/* Check if any other action is set */
+		if ((req_act == ROC_NPC_ACTION_TYPE_PF) || (req_act == ROC_NPC_ACTION_TYPE_VF)) {
+			flow->npc_action = NIX_RX_ACTIONOP_DEFAULT;
+		} else {
+			flow->npc_action = NIX_RX_ACTIONOP_UCAST;
+			if (req_act & ROC_NPC_ACTION_TYPE_QUEUE)
+				flow->npc_action |= (uint64_t)rq << 20;
+		}
 	} else if (req_act & ROC_NPC_ACTION_TYPE_DROP) {
 		flow->npc_action = NIX_RX_ACTIONOP_DROP;
 	} else if (req_act & ROC_NPC_ACTION_TYPE_QUEUE) {
@@ -649,8 +653,7 @@ npc_parse_actions(struct roc_npc *roc_npc, const struct roc_npc_attr *attr,
 	} else if (req_act & ROC_NPC_ACTION_TYPE_SEC) {
 		flow->npc_action = NIX_RX_ACTIONOP_UCAST_IPSEC;
 		flow->npc_action |= (uint64_t)rq << 20;
-	} else if (req_act &
-		   (ROC_NPC_ACTION_TYPE_FLAG | ROC_NPC_ACTION_TYPE_MARK)) {
+	} else if (req_act & (ROC_NPC_ACTION_TYPE_FLAG | ROC_NPC_ACTION_TYPE_MARK)) {
 		flow->npc_action = NIX_RX_ACTIONOP_UCAST;
 	} else if (req_act & ROC_NPC_ACTION_TYPE_COUNT) {
 		/* Keep ROC_NPC_ACTION_TYPE_COUNT_ACT always at the end
diff --git a/drivers/common/cnxk/roc_npc_mcam_dump.c b/drivers/common/cnxk/roc_npc_mcam_dump.c
index cc1599ef33..52f7d96b41 100644
--- a/drivers/common/cnxk/roc_npc_mcam_dump.c
+++ b/drivers/common/cnxk/roc_npc_mcam_dump.c
@@ -446,6 +446,10 @@ npc_flow_dump_rx_action(FILE *file, uint64_t npc_action)
 		plt_strlcpy(index_name, "Multicast/mirror table index",
 			    NPC_MAX_FIELD_NAME_SIZE);
 		break;
+	case NIX_RX_ACTIONOP_DEFAULT:
+		fprintf(file, "NIX_RX_ACTIONOP_DEFAULT (%" PRIu64 ")\n",
+			(uint64_t)NIX_RX_ACTIONOP_DEFAULT);
+		break;
 	default:
 		plt_err("Unknown NIX_RX_ACTIONOP found");
 		return;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.704104200 +0800
+++ 0063-common-cnxk-fix-default-flow-action-setting.patch	2023-10-22 22:17:34.286723700 +0800
@@ -1 +1 @@
-From b1f677d4386f7d9ad26a71615c00a2bdcb125c5e Mon Sep 17 00:00:00 2001
+From 8c360e4392d68edf793ab0d6dacf54e1c9e87f0d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b1f677d4386f7d9ad26a71615c00a2bdcb125c5e ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 319fe36e04..1720eb3815 100644
+index 425c335bf3..3246ea6573 100644
@@ -26 +28 @@
-@@ -619,6 +619,7 @@
+@@ -617,6 +617,7 @@
@@ -35 +37 @@
-index 86f4d85350..3f4a19b539 100644
+index 5e1ca6bc03..2ee1233757 100644
@@ -38 +40 @@
-@@ -726,11 +726,15 @@ npc_parse_actions(struct roc_npc *roc_npc, const struct roc_npc_attr *attr,
+@@ -634,11 +634,15 @@ npc_parse_actions(struct roc_npc *roc_npc, const struct roc_npc_attr *attr,
@@ -59 +61 @@
-@@ -741,8 +745,7 @@ npc_parse_actions(struct roc_npc *roc_npc, const struct roc_npc_attr *attr,
+@@ -649,8 +653,7 @@ npc_parse_actions(struct roc_npc *roc_npc, const struct roc_npc_attr *attr,
@@ -70 +72 @@
-index a88e166fbe..ff831b0a71 100644
+index cc1599ef33..52f7d96b41 100644
@@ -73 +75 @@
-@@ -496,6 +496,10 @@ npc_flow_dump_rx_action(FILE *file, uint64_t npc_action)
+@@ -446,6 +446,10 @@ npc_flow_dump_rx_action(FILE *file, uint64_t npc_action)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/cnxk: fix xstats for different packet sizes' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (62 preceding siblings ...)
  2023-10-22 14:21 ` patch 'common/cnxk: fix default flow action setting' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'common/cnxk: fix different size bit operations' " Xueming Li
                   ` (77 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Rakesh Kudurumalla; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=bc87fece072306001c173a32362c5b512952fa15

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From bc87fece072306001c173a32362c5b512952fa15 Mon Sep 17 00:00:00 2001
From: Rakesh Kudurumalla <rkudurumalla@marvell.com>
Date: Fri, 11 Aug 2023 14:27:41 +0530
Subject: [PATCH] common/cnxk: fix xstats for different packet sizes
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c68c442ff41c150e6d40b96817cfa8c17c44007e ]

xstats for transmitted packets with different sizes
are not updated as sizeof mailbox response structure
are different in DPDK and kernel. This patch fixes the
same.

Fixes: 503b82de2cbf ("common/cnxk: add mbox request and response definitions")

Signed-off-by: Rakesh Kudurumalla <rkudurumalla@marvell.com>
---
 drivers/common/cnxk/roc_mbox.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/common/cnxk/roc_mbox.h b/drivers/common/cnxk/roc_mbox.h
index fd9d3e73cd..18aa97b84a 100644
--- a/drivers/common/cnxk/roc_mbox.h
+++ b/drivers/common/cnxk/roc_mbox.h
@@ -471,7 +471,7 @@ struct lmtst_tbl_setup_req {

 struct cgx_stats_rsp {
 	struct mbox_msghdr hdr;
-#define CGX_RX_STATS_COUNT 13
+#define CGX_RX_STATS_COUNT 9
 #define CGX_TX_STATS_COUNT 18
 	uint64_t __io rx_stats[CGX_RX_STATS_COUNT];
 	uint64_t __io tx_stats[CGX_TX_STATS_COUNT];
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.742727100 +0800
+++ 0064-common-cnxk-fix-xstats-for-different-packet-sizes.patch	2023-10-22 22:17:34.286723700 +0800
@@ -1 +1 @@
-From c68c442ff41c150e6d40b96817cfa8c17c44007e Mon Sep 17 00:00:00 2001
+From bc87fece072306001c173a32362c5b512952fa15 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c68c442ff41c150e6d40b96817cfa8c17c44007e ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 1f267de980..8150e0c5e1 100644
+index fd9d3e73cd..18aa97b84a 100644
@@ -23 +25 @@
-@@ -560,7 +560,7 @@ enum cgx_af_status {
+@@ -471,7 +471,7 @@ struct lmtst_tbl_setup_req {

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/cnxk: fix different size bit operations' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (63 preceding siblings ...)
  2023-10-22 14:21 ` patch 'common/cnxk: fix xstats for different packet sizes' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'common/cnxk: fix incorrect aura ID' " Xueming Li
                   ` (76 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Akhil Goyal; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=0e8848d299df260d3c1ee17e4ceb33db2e5d9976

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 0e8848d299df260d3c1ee17e4ceb33db2e5d9976 Mon Sep 17 00:00:00 2001
From: Akhil Goyal <gakhil@marvell.com>
Date: Fri, 11 Aug 2023 14:27:44 +0530
Subject: [PATCH] common/cnxk: fix different size bit operations
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 199e78ab167b0df2b048353c499fa80e1e38977c ]

WORD_SIZE is made as unsigned long long so that
bit operations are done on same size of variables.

Fixes: 1ec23c7523b4 ("common/cnxk: support anti-replay check in SW for cn9k")

Signed-off-by: Akhil Goyal <gakhil@marvell.com>
---
 drivers/common/cnxk/cnxk_security_ar.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/common/cnxk/cnxk_security_ar.h b/drivers/common/cnxk/cnxk_security_ar.h
index deb38db0d0..d0151a752c 100644
--- a/drivers/common/cnxk/cnxk_security_ar.h
+++ b/drivers/common/cnxk/cnxk_security_ar.h
@@ -17,7 +17,7 @@
 	 BITS_PER_LONG_LONG)

 #define WORD_SHIFT 6
-#define WORD_SIZE  (1 << WORD_SHIFT)
+#define WORD_SIZE  (1ULL << WORD_SHIFT)
 #define WORD_MASK  (WORD_SIZE - 1)

 #define IPSEC_ANTI_REPLAY_FAILED (-1)
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.790047300 +0800
+++ 0065-common-cnxk-fix-different-size-bit-operations.patch	2023-10-22 22:17:34.286723700 +0800
@@ -1 +1 @@
-From 199e78ab167b0df2b048353c499fa80e1e38977c Mon Sep 17 00:00:00 2001
+From 0e8848d299df260d3c1ee17e4ceb33db2e5d9976 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 199e78ab167b0df2b048353c499fa80e1e38977c ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/cnxk: fix incorrect aura ID' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (64 preceding siblings ...)
  2023-10-22 14:21 ` patch 'common/cnxk: fix different size bit operations' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/cnxk: fix uninitialized variable' " Xueming Li
                   ` (75 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Pavan Nikhilesh; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e38988edfdcb96fb3a56152d47bd28271409df15

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e38988edfdcb96fb3a56152d47bd28271409df15 Mon Sep 17 00:00:00 2001
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Date: Fri, 11 Aug 2023 14:27:53 +0530
Subject: [PATCH] common/cnxk: fix incorrect aura ID
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit b4655ec69bbac2e830cc0acf2152b5caa54268bf ]

The function `sso_hwgrp_alloc_xaq` expects aura ID, fix incorrectly
passing aura handle to it.

Fixes: 7e9a94909eea ("common/cnxk: realloc inline device XAQ AURA")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 drivers/common/cnxk/roc_nix_inl_dev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/common/cnxk/roc_nix_inl_dev.c b/drivers/common/cnxk/roc_nix_inl_dev.c
index 4ab4209dba..746b3d0a03 100644
--- a/drivers/common/cnxk/roc_nix_inl_dev.c
+++ b/drivers/common/cnxk/roc_nix_inl_dev.c
@@ -643,7 +643,8 @@ no_pool:
 	}

 	/* Setup xaq for hwgrps */
-	rc = sso_hwgrp_alloc_xaq(&inl_dev->dev, inl_dev->xaq.aura_handle, 1);
+	rc = sso_hwgrp_alloc_xaq(&inl_dev->dev,
+				 roc_npa_aura_handle_to_aura(inl_dev->xaq.aura_handle), 1);
 	if (rc) {
 		plt_err("Failed to setup hwgrp xaq aura, rc=%d", rc);
 		return rc;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.825025400 +0800
+++ 0066-common-cnxk-fix-incorrect-aura-ID.patch	2023-10-22 22:17:34.286723700 +0800
@@ -1 +1 @@
-From b4655ec69bbac2e830cc0acf2152b5caa54268bf Mon Sep 17 00:00:00 2001
+From e38988edfdcb96fb3a56152d47bd28271409df15 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b4655ec69bbac2e830cc0acf2152b5caa54268bf ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index e9f1d18767..2fcc6b0b77 100644
+index 4ab4209dba..746b3d0a03 100644
@@ -21 +23 @@
-@@ -678,7 +678,8 @@ no_pool:
+@@ -643,7 +643,8 @@ no_pool:

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/cnxk: fix uninitialized variable' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (65 preceding siblings ...)
  2023-10-22 14:21 ` patch 'common/cnxk: fix incorrect aura ID' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'common/cnxk: fix DPI memzone name' " Xueming Li
                   ` (74 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Akhil Goyal; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=0259cb16f7bd600ce3257d3e0276fda02b2e92ea

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 0259cb16f7bd600ce3257d3e0276fda02b2e92ea Mon Sep 17 00:00:00 2001
From: Akhil Goyal <gakhil@marvell.com>
Date: Fri, 11 Aug 2023 14:28:00 +0530
Subject: [PATCH] net/cnxk: fix uninitialized variable
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 06f089b8e80d102a899c97b8691b4e1b82f25d7e ]

sa_base may be uninitialized in for cases. Initialize it.

Fixes: 4382a7ccf781 ("net/cnxk: support Rx security offload on cn10k")

Signed-off-by: Akhil Goyal <gakhil@marvell.com>
---
 drivers/net/cnxk/cn10k_rx.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/cnxk/cn10k_rx.h b/drivers/net/cnxk/cn10k_rx.h
index 20384e64c7..b60c158d55 100644
--- a/drivers/net/cnxk/cn10k_rx.h
+++ b/drivers/net/cnxk/cn10k_rx.h
@@ -888,7 +888,7 @@ cn10k_nix_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts,
 	struct nix_cqe_hdr_s *cq;
 	struct rte_mbuf *mbuf;
 	uint64_t aura_handle;
-	uint64_t sa_base;
+	uint64_t sa_base = 0;
 	uint16_t lmt_id;
 	uint64_t laddr;

@@ -1025,9 +1025,9 @@ cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,
 	uint8x16_t f0, f1, f2, f3;
 	uint16_t lmt_id, d_off;
 	uint64_t lbase, laddr;
+	uintptr_t sa_base = 0;
 	uint16_t packets = 0;
 	uint16_t pkts_left;
-	uintptr_t sa_base;
 	uint32_t head;
 	uintptr_t cq0;

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.856716100 +0800
+++ 0067-net-cnxk-fix-uninitialized-variable.patch	2023-10-22 22:17:34.286723700 +0800
@@ -1 +1 @@
-From 06f089b8e80d102a899c97b8691b4e1b82f25d7e Mon Sep 17 00:00:00 2001
+From 0259cb16f7bd600ce3257d3e0276fda02b2e92ea Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 06f089b8e80d102a899c97b8691b4e1b82f25d7e ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -17 +19 @@
-index a2ecb25211..cc224eb154 100644
+index 20384e64c7..b60c158d55 100644
@@ -20 +22 @@
-@@ -994,8 +994,8 @@ cn10k_nix_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts,
+@@ -888,7 +888,7 @@ cn10k_nix_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t pkts,
@@ -24,2 +25,0 @@
-+	uint64_t sa_base = 0;
- 	uintptr_t cpth = 0;
@@ -26,0 +27 @@
++	uint64_t sa_base = 0;
@@ -30 +31 @@
-@@ -1143,9 +1143,9 @@ cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,
+@@ -1025,9 +1025,9 @@ cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/cnxk: fix DPI memzone name' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (66 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/cnxk: fix uninitialized variable' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'dma/cnxk: fix device state' " Xueming Li
                   ` (73 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Amit Prakash Shukla; +Cc: Radha Mohan Chintakuntla, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=ab0aa8b245c03765d48ddb3fa569850a0cf66816

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ab0aa8b245c03765d48ddb3fa569850a0cf66816 Mon Sep 17 00:00:00 2001
From: Amit Prakash Shukla <amitprakashs@marvell.com>
Date: Wed, 23 Aug 2023 16:45:14 +0530
Subject: [PATCH] common/cnxk: fix DPI memzone name
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 7ca20b053cb739d021d2ff33a5ba75651048c322 ]

roc_dpi was using vfid as part of name for memzone allocation.
This led to memzone allocation failure in case of multiple
physical functions. vfid is not unique by itself since multiple
physical functions can have the same virtual function indices.
So use complete DBDF as part of memzone name to make it unique.

Fixes: b6e395692b6d ("common/cnxk: add DPI DMA support")

Signed-off-by: Radha Mohan Chintakuntla <radhac@marvell.com>
Signed-off-by: Amit Prakash Shukla <amitprakashs@marvell.com>
---
 drivers/common/cnxk/roc_dpi.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/common/cnxk/roc_dpi.c b/drivers/common/cnxk/roc_dpi.c
index 93c8318a3d..0e2f803077 100644
--- a/drivers/common/cnxk/roc_dpi.c
+++ b/drivers/common/cnxk/roc_dpi.c
@@ -81,10 +81,10 @@ roc_dpi_configure(struct roc_dpi *roc_dpi)
 		return rc;
 	}

-	snprintf(name, sizeof(name), "dpimem%d", roc_dpi->vfid);
+	snprintf(name, sizeof(name), "dpimem%d:%d:%d:%d", pci_dev->addr.domain, pci_dev->addr.bus,
+		 pci_dev->addr.devid, pci_dev->addr.function);
 	buflen = DPI_CMD_QUEUE_SIZE * DPI_CMD_QUEUE_BUFS;
-	dpi_mz = plt_memzone_reserve_aligned(name, buflen, 0,
-					     DPI_CMD_QUEUE_SIZE);
+	dpi_mz = plt_memzone_reserve_aligned(name, buflen, 0, DPI_CMD_QUEUE_SIZE);
 	if (dpi_mz == NULL) {
 		plt_err("dpi memzone reserve failed");
 		rc = -ENOMEM;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.890362500 +0800
+++ 0068-common-cnxk-fix-DPI-memzone-name.patch	2023-10-22 22:17:34.286723700 +0800
@@ -1 +1 @@
-From 7ca20b053cb739d021d2ff33a5ba75651048c322 Mon Sep 17 00:00:00 2001
+From ab0aa8b245c03765d48ddb3fa569850a0cf66816 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7ca20b053cb739d021d2ff33a5ba75651048c322 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'dma/cnxk: fix device state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (67 preceding siblings ...)
  2023-10-22 14:21 ` patch 'common/cnxk: fix DPI memzone name' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'dma/cnxk: fix device reconfigure' " Xueming Li
                   ` (72 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Amit Prakash Shukla; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=915fbdb68199c5f6df9aec08de7296a0ca2bbcc6

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 915fbdb68199c5f6df9aec08de7296a0ca2bbcc6 Mon Sep 17 00:00:00 2001
From: Amit Prakash Shukla <amitprakashs@marvell.com>
Date: Wed, 23 Aug 2023 16:45:16 +0530
Subject: [PATCH] dma/cnxk: fix device state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 190b2239b801d84179e5f57a1dda7ed19539281c ]

When a device is not set to a ready state, on exiting the application
proper cleanup is not done. This causes the application to fail on
trying to run next time.

Setting the device to ready state on successful probe fixes the issue.

Fixes: 53f6d7328bf4 ("dma/cnxk: create and initialize device on PCI probing")

Signed-off-by: Amit Prakash Shukla <amitprakashs@marvell.com>
---
 drivers/dma/cnxk/cnxk_dmadev.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/dma/cnxk/cnxk_dmadev.c b/drivers/dma/cnxk/cnxk_dmadev.c
index a6f4a31e0e..b2f4b332f4 100644
--- a/drivers/dma/cnxk/cnxk_dmadev.c
+++ b/drivers/dma/cnxk/cnxk_dmadev.c
@@ -628,8 +628,7 @@ static const struct rte_dma_dev_ops cnxk_dmadev_ops = {
 };

 static int
-cnxk_dmadev_probe(struct rte_pci_driver *pci_drv __rte_unused,
-		  struct rte_pci_device *pci_dev)
+cnxk_dmadev_probe(struct rte_pci_driver *pci_drv __rte_unused, struct rte_pci_device *pci_dev)
 {
 	struct cnxk_dpi_vf_s *dpivf = NULL;
 	char name[RTE_DEV_NAME_MAX_LEN];
@@ -648,8 +647,7 @@ cnxk_dmadev_probe(struct rte_pci_driver *pci_drv __rte_unused,
 	memset(name, 0, sizeof(name));
 	rte_pci_device_name(&pci_dev->addr, name, sizeof(name));

-	dmadev = rte_dma_pmd_allocate(name, pci_dev->device.numa_node,
-				      sizeof(*dpivf));
+	dmadev = rte_dma_pmd_allocate(name, pci_dev->device.numa_node, sizeof(*dpivf));
 	if (dmadev == NULL) {
 		plt_err("dma device allocation failed for %s", name);
 		return -ENOMEM;
@@ -682,6 +680,8 @@ cnxk_dmadev_probe(struct rte_pci_driver *pci_drv __rte_unused,
 	if (rc < 0)
 		goto err_out_free;

+	dmadev->state = RTE_DMA_DEV_READY;
+
 	return 0;

 err_out_free:
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.922712100 +0800
+++ 0069-dma-cnxk-fix-device-state.patch	2023-10-22 22:17:34.296723700 +0800
@@ -1 +1 @@
-From 190b2239b801d84179e5f57a1dda7ed19539281c Mon Sep 17 00:00:00 2001
+From 915fbdb68199c5f6df9aec08de7296a0ca2bbcc6 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 190b2239b801d84179e5f57a1dda7ed19539281c ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index f06c979b9c..d8bd61a048 100644
+index a6f4a31e0e..b2f4b332f4 100644
@@ -24 +26 @@
-@@ -668,8 +668,7 @@ static const struct rte_dma_dev_ops cnxk_dmadev_ops = {
+@@ -628,8 +628,7 @@ static const struct rte_dma_dev_ops cnxk_dmadev_ops = {
@@ -34 +36 @@
-@@ -688,8 +687,7 @@ cnxk_dmadev_probe(struct rte_pci_driver *pci_drv __rte_unused,
+@@ -648,8 +647,7 @@ cnxk_dmadev_probe(struct rte_pci_driver *pci_drv __rte_unused,
@@ -44 +46 @@
-@@ -723,6 +721,8 @@ cnxk_dmadev_probe(struct rte_pci_driver *pci_drv __rte_unused,
+@@ -682,6 +680,8 @@ cnxk_dmadev_probe(struct rte_pci_driver *pci_drv __rte_unused,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'dma/cnxk: fix device reconfigure' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (68 preceding siblings ...)
  2023-10-22 14:21 ` patch 'dma/cnxk: fix device state' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'dma/cnxk: fix chunk buffer failure return code' " Xueming Li
                   ` (71 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Amit Prakash Shukla; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=46d25f17a6bd5364a6b78c9ea1f78bb3e4525c98

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 46d25f17a6bd5364a6b78c9ea1f78bb3e4525c98 Mon Sep 17 00:00:00 2001
From: Amit Prakash Shukla <amitprakashs@marvell.com>
Date: Wed, 23 Aug 2023 16:45:17 +0530
Subject: [PATCH] dma/cnxk: fix device reconfigure
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 95a955e3e024770ea6b74556251b9da8caa87f17 ]

Multiple call to configure, setup queues without stopping the device
would leak the ring descriptor and hardware queue memory. This patch
adds flags support to prevent configuring without stopping the
device.

Fixes: b56f1e2dad38 ("dma/cnxk: add channel operations")

Signed-off-by: Amit Prakash Shukla <amitprakashs@marvell.com>
---
 drivers/dma/cnxk/cnxk_dmadev.c | 32 +++++++++++++++++++++++++++++---
 drivers/dma/cnxk/cnxk_dmadev.h |  5 +++++
 2 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/drivers/dma/cnxk/cnxk_dmadev.c b/drivers/dma/cnxk/cnxk_dmadev.c
index b2f4b332f4..95f47015dd 100644
--- a/drivers/dma/cnxk/cnxk_dmadev.c
+++ b/drivers/dma/cnxk/cnxk_dmadev.c
@@ -45,14 +45,22 @@ cnxk_dmadev_configure(struct rte_dma_dev *dev,
 	int rc = 0;

 	RTE_SET_USED(conf);
-	RTE_SET_USED(conf);
-	RTE_SET_USED(conf_sz);
 	RTE_SET_USED(conf_sz);
+
 	dpivf = dev->fp_obj->dev_private;
+
+	if (dpivf->flag & CNXK_DPI_DEV_CONFIG)
+		return rc;
+
 	rc = roc_dpi_configure(&dpivf->rdpi);
-	if (rc < 0)
+	if (rc < 0) {
 		plt_err("DMA configure failed err = %d", rc);
+		goto done;
+	}

+	dpivf->flag |= CNXK_DPI_DEV_CONFIG;
+
+done:
 	return rc;
 }

@@ -69,6 +77,9 @@ cnxk_dmadev_vchan_setup(struct rte_dma_dev *dev, uint16_t vchan,
 	RTE_SET_USED(vchan);
 	RTE_SET_USED(conf_sz);

+	if (dpivf->flag & CNXK_DPI_VCHAN_CONFIG)
+		return 0;
+
 	header->cn9k.pt = DPI_HDR_PT_ZBW_CA;

 	switch (conf->direction) {
@@ -108,6 +119,7 @@ cnxk_dmadev_vchan_setup(struct rte_dma_dev *dev, uint16_t vchan,
 	dpivf->conf.c_desc.max_cnt = DPI_MAX_DESC;
 	dpivf->conf.c_desc.head = 0;
 	dpivf->conf.c_desc.tail = 0;
+	dpivf->flag |= CNXK_DPI_VCHAN_CONFIG;

 	return 0;
 }
@@ -125,6 +137,10 @@ cn10k_dmadev_vchan_setup(struct rte_dma_dev *dev, uint16_t vchan,
 	RTE_SET_USED(vchan);
 	RTE_SET_USED(conf_sz);

+
+	if (dpivf->flag & CNXK_DPI_VCHAN_CONFIG)
+		return 0;
+
 	header->cn10k.pt = DPI_HDR_PT_ZBW_CA;

 	switch (conf->direction) {
@@ -164,6 +180,7 @@ cn10k_dmadev_vchan_setup(struct rte_dma_dev *dev, uint16_t vchan,
 	dpivf->conf.c_desc.max_cnt = DPI_MAX_DESC;
 	dpivf->conf.c_desc.head = 0;
 	dpivf->conf.c_desc.tail = 0;
+	dpivf->flag |= CNXK_DPI_VCHAN_CONFIG;

 	return 0;
 }
@@ -173,10 +190,15 @@ cnxk_dmadev_start(struct rte_dma_dev *dev)
 {
 	struct cnxk_dpi_vf_s *dpivf = dev->fp_obj->dev_private;

+	if (dpivf->flag & CNXK_DPI_DEV_START)
+		return 0;
+
 	dpivf->desc_idx = 0;
 	dpivf->num_words = 0;
 	roc_dpi_enable(&dpivf->rdpi);

+	dpivf->flag |= CNXK_DPI_DEV_START;
+
 	return 0;
 }

@@ -187,6 +209,8 @@ cnxk_dmadev_stop(struct rte_dma_dev *dev)

 	roc_dpi_disable(&dpivf->rdpi);

+	dpivf->flag &= ~CNXK_DPI_DEV_START;
+
 	return 0;
 }

@@ -198,6 +222,8 @@ cnxk_dmadev_close(struct rte_dma_dev *dev)
 	roc_dpi_disable(&dpivf->rdpi);
 	roc_dpi_dev_fini(&dpivf->rdpi);

+	dpivf->flag = 0;
+
 	return 0;
 }

diff --git a/drivers/dma/cnxk/cnxk_dmadev.h b/drivers/dma/cnxk/cnxk_dmadev.h
index e1f5694f50..d58554787f 100644
--- a/drivers/dma/cnxk/cnxk_dmadev.h
+++ b/drivers/dma/cnxk/cnxk_dmadev.h
@@ -15,6 +15,10 @@
  */
 #define DPI_REQ_CDATA		0xFF

+#define CNXK_DPI_DEV_CONFIG   (1ULL << 0)
+#define CNXK_DPI_VCHAN_CONFIG (1ULL << 1)
+#define CNXK_DPI_DEV_START    (1ULL << 2)
+
 struct cnxk_dpi_compl_s {
 	uint64_t cdata;
 	void *cb_data;
@@ -39,6 +43,7 @@ struct cnxk_dpi_vf_s {
 	uint64_t cmd[DPI_MAX_CMD_SIZE];
 	uint32_t num_words;
 	uint16_t desc_idx;
+	uint16_t flag;
 };

 #endif
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.956777100 +0800
+++ 0070-dma-cnxk-fix-device-reconfigure.patch	2023-10-22 22:17:34.296723700 +0800
@@ -1 +1 @@
-From 95a955e3e024770ea6b74556251b9da8caa87f17 Mon Sep 17 00:00:00 2001
+From 46d25f17a6bd5364a6b78c9ea1f78bb3e4525c98 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 95a955e3e024770ea6b74556251b9da8caa87f17 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index d8bd61a048..a7279fbd3a 100644
+index b2f4b332f4..95f47015dd 100644
@@ -60 +62,2 @@
-@@ -109,6 +120,7 @@ cnxk_dmadev_vchan_setup(struct rte_dma_dev *dev, uint16_t vchan,
+@@ -108,6 +119,7 @@ cnxk_dmadev_vchan_setup(struct rte_dma_dev *dev, uint16_t vchan,
+ 	dpivf->conf.c_desc.max_cnt = DPI_MAX_DESC;
@@ -63 +65,0 @@
- 	dpivf->pending = 0;
@@ -68 +70 @@
-@@ -126,6 +138,10 @@ cn10k_dmadev_vchan_setup(struct rte_dma_dev *dev, uint16_t vchan,
+@@ -125,6 +137,10 @@ cn10k_dmadev_vchan_setup(struct rte_dma_dev *dev, uint16_t vchan,
@@ -79 +81,2 @@
-@@ -166,6 +182,7 @@ cn10k_dmadev_vchan_setup(struct rte_dma_dev *dev, uint16_t vchan,
+@@ -164,6 +180,7 @@ cn10k_dmadev_vchan_setup(struct rte_dma_dev *dev, uint16_t vchan,
+ 	dpivf->conf.c_desc.max_cnt = DPI_MAX_DESC;
@@ -82 +84,0 @@
- 	dpivf->pending = 0;
@@ -87 +89 @@
-@@ -175,11 +192,16 @@ cnxk_dmadev_start(struct rte_dma_dev *dev)
+@@ -173,10 +190,15 @@ cnxk_dmadev_start(struct rte_dma_dev *dev)
@@ -95,2 +97 @@
- 	dpivf->pending = 0;
- 	dpivf->pnum_words = 0;
+ 	dpivf->num_words = 0;
@@ -104 +105 @@
-@@ -190,6 +212,8 @@ cnxk_dmadev_stop(struct rte_dma_dev *dev)
+@@ -187,6 +209,8 @@ cnxk_dmadev_stop(struct rte_dma_dev *dev)
@@ -113 +114 @@
-@@ -201,6 +225,8 @@ cnxk_dmadev_close(struct rte_dma_dev *dev)
+@@ -198,6 +222,8 @@ cnxk_dmadev_close(struct rte_dma_dev *dev)
@@ -123 +124 @@
-index 943e9e3013..573bcff165 100644
+index e1f5694f50..d58554787f 100644
@@ -126 +127 @@
-@@ -16,6 +16,10 @@
+@@ -15,6 +15,10 @@
@@ -137,3 +138,3 @@
-@@ -41,6 +45,7 @@ struct cnxk_dpi_vf_s {
- 	uint16_t pending;
- 	uint16_t pnum_words;
+@@ -39,6 +43,7 @@ struct cnxk_dpi_vf_s {
+ 	uint64_t cmd[DPI_MAX_CMD_SIZE];
+ 	uint32_t num_words;

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'dma/cnxk: fix chunk buffer failure return code' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (69 preceding siblings ...)
  2023-10-22 14:21 ` patch 'dma/cnxk: fix device reconfigure' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'mempool/cnxk: fix free from non-EAL threads' " Xueming Li
                   ` (70 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Amit Prakash Shukla; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=2b29a7975b23ec4b9750ce5b07a48ade68c94275

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 2b29a7975b23ec4b9750ce5b07a48ade68c94275 Mon Sep 17 00:00:00 2001
From: Amit Prakash Shukla <amitprakashs@marvell.com>
Date: Wed, 23 Aug 2023 16:45:19 +0530
Subject: [PATCH] dma/cnxk: fix chunk buffer failure return code
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3dd31150782e32b538d6c1396701a1bc36dc2bd6 ]

On chunk buffer alloc failure, ENOMEM is returned. As per DMA spec
ENOSPC shall be returned on failure to allocate memory. This
changeset fixes the same.

Fixes: b56f1e2dad38 ("dma/cnxk: add channel operations")

Signed-off-by: Amit Prakash Shukla <amitprakashs@marvell.com>
---
 drivers/dma/cnxk/cnxk_dmadev.c | 29 ++++++++++++++++++-----------
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/drivers/dma/cnxk/cnxk_dmadev.c b/drivers/dma/cnxk/cnxk_dmadev.c
index 95f47015dd..72dec60a9c 100644
--- a/drivers/dma/cnxk/cnxk_dmadev.c
+++ b/drivers/dma/cnxk/cnxk_dmadev.c
@@ -232,8 +232,7 @@ __dpi_queue_write(struct roc_dpi *dpi, uint64_t *cmds, int cmd_count)
 {
 	uint64_t *ptr = dpi->chunk_base;

-	if ((cmd_count < DPI_MIN_CMD_SIZE) || (cmd_count > DPI_MAX_CMD_SIZE) ||
-	    cmds == NULL)
+	if ((cmd_count < DPI_MIN_CMD_SIZE) || (cmd_count > DPI_MAX_CMD_SIZE) || cmds == NULL)
 		return -EINVAL;

 	/*
@@ -249,11 +248,15 @@ __dpi_queue_write(struct roc_dpi *dpi, uint64_t *cmds, int cmd_count)
 		int count;
 		uint64_t *new_buff = dpi->chunk_next;

-		dpi->chunk_next =
-			(void *)roc_npa_aura_op_alloc(dpi->aura_handle, 0);
+		dpi->chunk_next = (void *)roc_npa_aura_op_alloc(dpi->aura_handle, 0);
 		if (!dpi->chunk_next) {
-			plt_err("Failed to alloc next buffer from NPA");
-			return -ENOMEM;
+			plt_dp_dbg("Failed to alloc next buffer from NPA");
+
+			/* NPA failed to allocate a buffer. Restoring chunk_next
+			 * to its original address.
+			 */
+			dpi->chunk_next = new_buff;
+			return -ENOSPC;
 		}

 		/*
@@ -287,13 +290,17 @@ __dpi_queue_write(struct roc_dpi *dpi, uint64_t *cmds, int cmd_count)
 		/* queue index may be greater than pool size */
 		if (dpi->chunk_head >= dpi->pool_size_m1) {
 			new_buff = dpi->chunk_next;
-			dpi->chunk_next =
-				(void *)roc_npa_aura_op_alloc(dpi->aura_handle,
-							      0);
+			dpi->chunk_next = (void *)roc_npa_aura_op_alloc(dpi->aura_handle, 0);
 			if (!dpi->chunk_next) {
-				plt_err("Failed to alloc next buffer from NPA");
-				return -ENOMEM;
+				plt_dp_dbg("Failed to alloc next buffer from NPA");
+
+				/* NPA failed to allocate a buffer. Restoring chunk_next
+				 * to its original address.
+				 */
+				dpi->chunk_next = new_buff;
+				return -ENOSPC;
 			}
+
 			/* Write next buffer address */
 			*ptr = (uint64_t)new_buff;
 			dpi->chunk_base = new_buff;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:36.992367500 +0800
+++ 0071-dma-cnxk-fix-chunk-buffer-failure-return-code.patch	2023-10-22 22:17:34.296723700 +0800
@@ -1 +1 @@
-From 3dd31150782e32b538d6c1396701a1bc36dc2bd6 Mon Sep 17 00:00:00 2001
+From 2b29a7975b23ec4b9750ce5b07a48ade68c94275 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3dd31150782e32b538d6c1396701a1bc36dc2bd6 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 0db74b454d..aa6f6c710c 100644
+index 95f47015dd..72dec60a9c 100644
@@ -22 +24 @@
-@@ -257,8 +257,7 @@ __dpi_queue_write(struct roc_dpi *dpi, uint64_t *cmds, int cmd_count)
+@@ -232,8 +232,7 @@ __dpi_queue_write(struct roc_dpi *dpi, uint64_t *cmds, int cmd_count)
@@ -32 +34 @@
-@@ -274,11 +273,15 @@ __dpi_queue_write(struct roc_dpi *dpi, uint64_t *cmds, int cmd_count)
+@@ -249,11 +248,15 @@ __dpi_queue_write(struct roc_dpi *dpi, uint64_t *cmds, int cmd_count)
@@ -52 +54 @@
-@@ -312,13 +315,17 @@ __dpi_queue_write(struct roc_dpi *dpi, uint64_t *cmds, int cmd_count)
+@@ -287,13 +290,17 @@ __dpi_queue_write(struct roc_dpi *dpi, uint64_t *cmds, int cmd_count)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'mempool/cnxk: fix free from non-EAL threads' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (70 preceding siblings ...)
  2023-10-22 14:21 ` patch 'dma/cnxk: fix chunk buffer failure return code' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'mempool/cnxk: fix alloc " Xueming Li
                   ` (69 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Harman Kalra; +Cc: Ashwin Sekhar T K, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=0da4d859cda17cce000e86e3d2ccdf6680894e08

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 0da4d859cda17cce000e86e3d2ccdf6680894e08 Mon Sep 17 00:00:00 2001
From: Harman Kalra <hkalra@marvell.com>
Date: Tue, 22 Aug 2023 22:31:56 +0530
Subject: [PATCH] mempool/cnxk: fix free from non-EAL threads
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e97668dd1e34c7049a7a568bb945f739d7eff9da ]

For non-EAL pthreads, rte_lcore_id() will not be valid.
So, batch free cannot be used as those threads won't have
dedicated lmtlines. So, fallback to bulk alloc in such cases.

Fixes: ecbc731a2286 ("mempool/cnxk: add cn10k batch enqueue")

Signed-off-by: Harman Kalra <hkalra@marvell.com>
Signed-off-by: Ashwin Sekhar T K <asekhar@marvell.com>
---
 drivers/mempool/cnxk/cn10k_mempool_ops.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/mempool/cnxk/cn10k_mempool_ops.c b/drivers/mempool/cnxk/cn10k_mempool_ops.c
index ff0015d8de..310624730b 100644
--- a/drivers/mempool/cnxk/cn10k_mempool_ops.c
+++ b/drivers/mempool/cnxk/cn10k_mempool_ops.c
@@ -151,6 +151,12 @@ cn10k_mempool_enq(struct rte_mempool *mp, void *const *obj_table,
 	 */
 	rte_io_wmb();

+	/* For non-EAL threads, rte_lcore_id() will not be valid. Hence
+	 * fallback to bulk alloc
+	 */
+	if (unlikely(rte_lcore_id() == LCORE_ID_ANY))
+		return cnxk_mempool_enq(mp, obj_table, n);
+
 	if (n == 1) {
 		roc_npa_aura_op_free(mp->pool_id, 1, ptr[0]);
 		return 0;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.025279200 +0800
+++ 0072-mempool-cnxk-fix-free-from-non-EAL-threads.patch	2023-10-22 22:17:34.296723700 +0800
@@ -1 +1 @@
-From e97668dd1e34c7049a7a568bb945f739d7eff9da Mon Sep 17 00:00:00 2001
+From 0da4d859cda17cce000e86e3d2ccdf6680894e08 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e97668dd1e34c7049a7a568bb945f739d7eff9da ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 41b755b52b..2e46204c8d 100644
+index ff0015d8de..310624730b 100644
@@ -23 +25 @@
-@@ -162,6 +162,12 @@ cn10k_mempool_enq(struct rte_mempool *mp, void *const *obj_table,
+@@ -151,6 +151,12 @@ cn10k_mempool_enq(struct rte_mempool *mp, void *const *obj_table,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'mempool/cnxk: fix alloc from non-EAL threads' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (71 preceding siblings ...)
  2023-10-22 14:21 ` patch 'mempool/cnxk: fix free from non-EAL threads' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'common/cnxk: fix aura disable handling' " Xueming Li
                   ` (68 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Ashwin Sekhar T K; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=1ef99ed9dd5ecb32f1ebac1788045281ae3d59c8

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 1ef99ed9dd5ecb32f1ebac1788045281ae3d59c8 Mon Sep 17 00:00:00 2001
From: Ashwin Sekhar T K <asekhar@marvell.com>
Date: Tue, 22 Aug 2023 22:31:57 +0530
Subject: [PATCH] mempool/cnxk: fix alloc from non-EAL threads
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit b3ddd649ad063eb90035836b64b22fb4d6fea8b7 ]

For non-EAL pthreads, rte_lcore_id() will not be valid.
So, batch allocation cannot be used as we won't have a
dedicated alloc buffer for the thread. So, fallback to
bulk alloc in such cases.

Fixes: 91531e63f43b ("mempool/cnxk: add cn10k batch dequeue")

Signed-off-by: Ashwin Sekhar T K <asekhar@marvell.com>
---
 drivers/mempool/cnxk/cn10k_mempool_ops.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/mempool/cnxk/cn10k_mempool_ops.c b/drivers/mempool/cnxk/cn10k_mempool_ops.c
index 310624730b..9d6982fdab 100644
--- a/drivers/mempool/cnxk/cn10k_mempool_ops.c
+++ b/drivers/mempool/cnxk/cn10k_mempool_ops.c
@@ -257,6 +257,12 @@ cn10k_mempool_deq(struct rte_mempool *mp, void **obj_table, unsigned int n)
 		}
 	}

+	/* For non-EAL threads, rte_lcore_id() will not be valid. Hence
+	 * fallback to bulk alloc
+	 */
+	if (unlikely(rte_lcore_id() == LCORE_ID_ANY))
+		return cnxk_mempool_deq(mp, obj_table, n);
+
 	if (unlikely(count != n)) {
 		/* No partial alloc allowed. Free up allocated pointers */
 		cn10k_mempool_enq(mp, obj_table, count);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.056866500 +0800
+++ 0073-mempool-cnxk-fix-alloc-from-non-EAL-threads.patch	2023-10-22 22:17:34.296723700 +0800
@@ -1 +1 @@
-From b3ddd649ad063eb90035836b64b22fb4d6fea8b7 Mon Sep 17 00:00:00 2001
+From 1ef99ed9dd5ecb32f1ebac1788045281ae3d59c8 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b3ddd649ad063eb90035836b64b22fb4d6fea8b7 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 2e46204c8d..2a5aad0008 100644
+index 310624730b..9d6982fdab 100644
@@ -23,3 +25,3 @@
-@@ -332,6 +332,12 @@ cn10k_mempool_deq(struct rte_mempool *mp, void **obj_table, unsigned int n)
- 	struct batch_op_data *op_data;
- 	unsigned int count = 0;
+@@ -257,6 +257,12 @@ cn10k_mempool_deq(struct rte_mempool *mp, void **obj_table, unsigned int n)
+ 		}
+ 	}
@@ -33,3 +35,3 @@
- 	op_data = batch_op_data_get(mp->pool_id);
- 	if (op_data->max_async_batch)
- 		count = mempool_deq_batch_async(mp, obj_table, n);
+ 	if (unlikely(count != n)) {
+ 		/* No partial alloc allowed. Free up allocated pointers */
+ 		cn10k_mempool_enq(mp, obj_table, count);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/cnxk: fix aura disable handling' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (72 preceding siblings ...)
  2023-10-22 14:21 ` patch 'mempool/cnxk: fix alloc " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'common/cnxk: fix RSS key configuration' " Xueming Li
                   ` (67 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Ashwin Sekhar T K; +Cc: Nithin Dabilpuram, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=5dc2babce46dab04e67c6d4ce3ee8dcde0c5aa4c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 5dc2babce46dab04e67c6d4ce3ee8dcde0c5aa4c Mon Sep 17 00:00:00 2001
From: Ashwin Sekhar T K <asekhar@marvell.com>
Date: Fri, 25 Aug 2023 09:27:21 +0530
Subject: [PATCH] common/cnxk: fix aura disable handling
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit b1c7a08b1afc838809ed196c177c5aac0ca63a21 ]

As done in FLR, similar to CQ disable, in process of
aura disable we need to explicitly clear BP_ENA in order to
deassert backpressure if it was earlier asserted.

Fixes: f765f5611240 ("common/cnxk: add NPA pool HW operations")

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Signed-off-by: Ashwin Sekhar T K <asekhar@marvell.com>
---
 drivers/common/cnxk/roc_npa.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/common/cnxk/roc_npa.c b/drivers/common/cnxk/roc_npa.c
index ee42434c38..ce0b7e8a72 100644
--- a/drivers/common/cnxk/roc_npa.c
+++ b/drivers/common/cnxk/roc_npa.c
@@ -115,6 +115,8 @@ npa_aura_pool_fini(struct mbox *mbox, uint32_t aura_id, uint64_t aura_handle)
 	aura_req->op = NPA_AQ_INSTOP_WRITE;
 	aura_req->aura.ena = 0;
 	aura_req->aura_mask.ena = ~aura_req->aura_mask.ena;
+	aura_req->aura.bp_ena = 0;
+	aura_req->aura_mask.bp_ena = ~aura_req->aura_mask.bp_ena;

 	rc = mbox_process(mbox);
 	if (rc < 0)
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.088243400 +0800
+++ 0074-common-cnxk-fix-aura-disable-handling.patch	2023-10-22 22:17:34.296723700 +0800
@@ -1 +1 @@
-From b1c7a08b1afc838809ed196c177c5aac0ca63a21 Mon Sep 17 00:00:00 2001
+From 5dc2babce46dab04e67c6d4ce3ee8dcde0c5aa4c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b1c7a08b1afc838809ed196c177c5aac0ca63a21 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index e092b27ec3..1943bc5420 100644
+index ee42434c38..ce0b7e8a72 100644
@@ -23 +25 @@
-@@ -185,6 +185,8 @@ npa_aura_pool_fini(struct mbox *m_box, uint32_t aura_id, uint64_t aura_handle)
+@@ -115,6 +115,8 @@ npa_aura_pool_fini(struct mbox *mbox, uint32_t aura_id, uint64_t aura_handle)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/cnxk: fix RSS key configuration' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (73 preceding siblings ...)
  2023-10-22 14:21 ` patch 'common/cnxk: fix aura disable handling' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'common/cnxk: remove dead Meson code' " Xueming Li
                   ` (66 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Kiran Kumar K; +Cc: Jerin Jacob, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=257c5a049a9489aec5da0274148f30eb02a2c5dc

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 257c5a049a9489aec5da0274148f30eb02a2c5dc Mon Sep 17 00:00:00 2001
From: Kiran Kumar K <kirankumark@marvell.com>
Date: Mon, 4 Sep 2023 16:27:41 +0530
Subject: [PATCH] common/cnxk: fix RSS key configuration
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 56fa6f92e9e32cbc5c99af89da611a9f33bbe254 ]

Limit the configuring RSS key with rte_flow operations as
it is a global resource. Key can be update only with ethdev dev
operations using rte_eth_dev_rss_hash_update().

Fixes: 51dc6a80f843 ("common/cnxk: support RSS action in NPC rule")

Signed-off-by: Kiran Kumar K <kirankumark@marvell.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
---
 drivers/common/cnxk/roc_npc.c | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/drivers/common/cnxk/roc_npc.c b/drivers/common/cnxk/roc_npc.c
index 2ee1233757..bb478ec55b 100644
--- a/drivers/common/cnxk/roc_npc.c
+++ b/drivers/common/cnxk/roc_npc.c
@@ -835,9 +835,35 @@ npc_rss_action_configure(struct roc_npc *roc_npc,
 	uint8_t key[ROC_NIX_RSS_KEY_LEN];
 	const uint8_t *key_ptr;
 	uint8_t flowkey_algx;
+	uint32_t key_len;
 	uint16_t *reta;
 	int rc;

+	roc_nix_rss_key_get(roc_nix, key);
+	if (rss->key == NULL) {
+		key_ptr = key;
+	} else {
+		key_len = rss->key_len;
+		if (key_len > ROC_NIX_RSS_KEY_LEN)
+			key_len = ROC_NIX_RSS_KEY_LEN;
+
+		for (i = 0; i < key_len; i++) {
+			if (key[i] != rss->key[i]) {
+				plt_err("RSS key config not supported");
+				plt_err("New Key:");
+				for (i = 0; i < key_len; i++)
+					plt_dump_no_nl("0x%.2x ", rss->key[i]);
+				plt_dump_no_nl("\n");
+				plt_err("Configured Key:");
+				for (i = 0; i < ROC_NIX_RSS_KEY_LEN; i++)
+					plt_dump_no_nl("0x%.2x ", key[i]);
+				plt_dump_no_nl("\n");
+				return -ENOTSUP;
+			}
+		}
+		key_ptr = rss->key;
+	}
+
 	rc = npc_rss_free_grp_get(npc, &rss_grp_idx);
 	/* RSS group :0 is not usable for flow rss action */
 	if (rc < 0 || rss_grp_idx == 0)
@@ -852,13 +878,6 @@ npc_rss_action_configure(struct roc_npc *roc_npc,

 	*rss_grp = rss_grp_idx;

-	if (rss->key == NULL) {
-		roc_nix_rss_key_default_fill(roc_nix, key);
-		key_ptr = key;
-	} else {
-		key_ptr = rss->key;
-	}
-
 	roc_nix_rss_key_set(roc_nix, key_ptr);

 	/* If queue count passed in the rss action is less than
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.119029500 +0800
+++ 0075-common-cnxk-fix-RSS-key-configuration.patch	2023-10-22 22:17:34.296723700 +0800
@@ -1 +1 @@
-From 56fa6f92e9e32cbc5c99af89da611a9f33bbe254 Mon Sep 17 00:00:00 2001
+From 257c5a049a9489aec5da0274148f30eb02a2c5dc Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 56fa6f92e9e32cbc5c99af89da611a9f33bbe254 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 0df647c527..94c8e94400 100644
+index 2ee1233757..bb478ec55b 100644
@@ -23 +25 @@
-@@ -943,9 +943,35 @@ npc_rss_action_configure(struct roc_npc *roc_npc,
+@@ -835,9 +835,35 @@ npc_rss_action_configure(struct roc_npc *roc_npc,
@@ -59 +61 @@
-@@ -960,13 +986,6 @@ npc_rss_action_configure(struct roc_npc *roc_npc,
+@@ -852,13 +878,6 @@ npc_rss_action_configure(struct roc_npc *roc_npc,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/cnxk: remove dead Meson code' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (74 preceding siblings ...)
  2023-10-22 14:21 ` patch 'common/cnxk: fix RSS key configuration' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'common/cnxk: replace direct API usage in REE' " Xueming Li
                   ` (65 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: David Marchand; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=513e507ee470bc4a0c2986629511e512cf6c737e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 513e507ee470bc4a0c2986629511e512cf6c737e Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 13 Sep 2023 15:02:42 +0100
Subject: [PATCH] common/cnxk: remove dead Meson code
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9b99bf003793fe3e2108ea8f2fdef555542730d9 ]

config_flag_fmt was used in the past and was dropped with commit
762bfccc8abf ("config: remove compatibility build defines").

Fixes: fa8f86a14e2e ("common/cnxk: add build infrastructre and HW definition")

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/common/cnxk/meson.build | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/common/cnxk/meson.build b/drivers/common/cnxk/meson.build
index 849735921c..ca8170624d 100644
--- a/drivers/common/cnxk/meson.build
+++ b/drivers/common/cnxk/meson.build
@@ -8,7 +8,6 @@ if not is_linux or not dpdk_conf.get('RTE_ARCH_64')
     subdir_done()
 endif

-config_flag_fmt = 'RTE_LIBRTE_@0@_COMMON'
 deps = ['eal', 'pci', 'bus_pci', 'mbuf', 'security']
 sources = files(
         'roc_ae.c',
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.151630400 +0800
+++ 0076-common-cnxk-remove-dead-Meson-code.patch	2023-10-22 22:17:34.296723700 +0800
@@ -1 +1 @@
-From 9b99bf003793fe3e2108ea8f2fdef555542730d9 Mon Sep 17 00:00:00 2001
+From 513e507ee470bc4a0c2986629511e512cf6c737e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9b99bf003793fe3e2108ea8f2fdef555542730d9 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index d5dfd93e31..56eea52909 100644
+index 849735921c..ca8170624d 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/cnxk: replace direct API usage in REE' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (75 preceding siblings ...)
  2023-10-22 14:21 ` patch 'common/cnxk: remove dead Meson code' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'vdpa/mlx5: fix unregister kick handler order' " Xueming Li
                   ` (64 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Jerin Jacob; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=529b747a92e1ca4df8f74f15e57f5d61ee026f7b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 529b747a92e1ca4df8f74f15e57f5d61ee026f7b Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerinj@marvell.com>
Date: Wed, 4 Oct 2023 17:54:32 +0530
Subject: [PATCH] common/cnxk: replace direct API usage in REE
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 7557e3f5b9facc77247e59ad04ae99f47b0ddb3d ]

The common code is shared between different driver environments,
introduce missing plt_ abstractions of missing rte_ symbols and
use plt symbols to avoid changing roc_* files.

Fixes: c88d3638c7fc ("common/cnxk: support REE")

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
---
 drivers/common/cnxk/roc_ree.c | 4 ++--
 drivers/common/cnxk/roc_ree.h | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/common/cnxk/roc_ree.c b/drivers/common/cnxk/roc_ree.c
index 1eb2ae7272..b6392658c3 100644
--- a/drivers/common/cnxk/roc_ree.c
+++ b/drivers/common/cnxk/roc_ree.c
@@ -441,7 +441,7 @@ static void
 roc_ree_lf_err_intr_unregister(struct roc_ree_vf *vf, uint16_t msix_off,
 			       uintptr_t base)
 {
-	struct rte_pci_device *pci_dev = vf->pci_dev;
+	struct plt_pci_device *pci_dev = vf->pci_dev;

 	/* Disable error interrupts */
 	plt_write64(~0ull, base + REE_LF_MISC_INT_ENA_W1C);
@@ -468,7 +468,7 @@ static int
 roc_ree_lf_err_intr_register(struct roc_ree_vf *vf, uint16_t msix_off,
 			     uintptr_t base)
 {
-	struct rte_pci_device *pci_dev = vf->pci_dev;
+	struct plt_pci_device *pci_dev = vf->pci_dev;
 	int ret;

 	/* Disable error interrupts */
diff --git a/drivers/common/cnxk/roc_ree.h b/drivers/common/cnxk/roc_ree.h
index e138e4de66..bf994e7124 100644
--- a/drivers/common/cnxk/roc_ree.h
+++ b/drivers/common/cnxk/roc_ree.h
@@ -68,7 +68,7 @@ struct roc_ree_qp {
 	/**< Base address where BAR is mapped */
 	struct roc_ree_pending_queue pend_q;
 	/**< Pending queue */
-	rte_iova_t iq_dma_addr;
+	plt_iova_t iq_dma_addr;
 	/**< Instruction queue address */
 	uint32_t roc_regexdev_jobid;
 	/**< Job ID */
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.183224900 +0800
+++ 0077-common-cnxk-replace-direct-API-usage-in-REE.patch	2023-10-22 22:17:34.296723700 +0800
@@ -1 +1 @@
-From 7557e3f5b9facc77247e59ad04ae99f47b0ddb3d Mon Sep 17 00:00:00 2001
+From 529b747a92e1ca4df8f74f15e57f5d61ee026f7b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7557e3f5b9facc77247e59ad04ae99f47b0ddb3d ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'vdpa/mlx5: fix unregister kick handler order' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (76 preceding siblings ...)
  2023-10-22 14:21 ` patch 'common/cnxk: replace direct API usage in REE' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'baseband/acc: fix ACC100 HARQ input alignment' " Xueming Li
                   ` (63 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Yajun Wu; +Cc: Matan Azrad, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=9e7a4f889b0ca1755be668113f3ae991927c38a0

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 9e7a4f889b0ca1755be668113f3ae991927c38a0 Mon Sep 17 00:00:00 2001
From: Yajun Wu <yajunw@nvidia.com>
Date: Tue, 8 Aug 2023 19:32:21 +0800
Subject: [PATCH] vdpa/mlx5: fix unregister kick handler order
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 72ec059a1ca91c52c6139cfc32133d643f709986 ]

The mlx5_vdpa_virtq_kick_handler function may still be running and waiting
on virtq->virtq_lock while mlx5_vdpa_cqe_event_unset function is trying to
re-initialize the virtq->virtq_lock.

This causes mlx5_vdpa_virtq_kick_handler thread can't be wake up and can't
be unregister. Following print may loop forever when calling
rte_vhost_driver_unregister(socket_path):

    mlx5_vdpa: Try again to unregister fd 154 of virtq 11 interrupt
    mlx5_vdpa: Try again to unregister fd 154 of virtq 11 interrupt
    ...

The fix is to move mlx5_vdpa_virtq_unregister_intr_handle before
mlx5_vdpa_cqe_event_unset.

Fixes: 057f7d208499 ("vdpa/mlx5: optimize datapath-control synchronization")

Signed-off-by: Yajun Wu <yajunw@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/vdpa/mlx5/mlx5_vdpa.c         | 1 +
 drivers/vdpa/mlx5/mlx5_vdpa_cthread.c | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c
index 026daa3f24..8bcbedd071 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa.c
+++ b/drivers/vdpa/mlx5/mlx5_vdpa.c
@@ -282,6 +282,7 @@ _internal_mlx5_vdpa_dev_close(struct mlx5_vdpa_priv *priv,
 	int ret = 0;
 	int vid = priv->vid;

+	mlx5_vdpa_virtq_unreg_intr_handle_all(priv);
 	mlx5_vdpa_cqe_event_unset(priv);
 	if (priv->state == MLX5_VDPA_STATE_CONFIGURED) {
 		ret |= mlx5_vdpa_lm_log(priv);
diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_cthread.c b/drivers/vdpa/mlx5/mlx5_vdpa_cthread.c
index 6e6624e5a3..1d84e422d4 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa_cthread.c
+++ b/drivers/vdpa/mlx5/mlx5_vdpa_cthread.c
@@ -190,7 +190,6 @@ mlx5_vdpa_c_thread_handle(void *arg)
 			pthread_mutex_unlock(&virtq->virtq_lock);
 			break;
 		case MLX5_VDPA_TASK_DEV_CLOSE_NOWAIT:
-			mlx5_vdpa_virtq_unreg_intr_handle_all(priv);
 			pthread_mutex_lock(&priv->steer_update_lock);
 			mlx5_vdpa_steer_unset(priv);
 			pthread_mutex_unlock(&priv->steer_update_lock);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.217768600 +0800
+++ 0078-vdpa-mlx5-fix-unregister-kick-handler-order.patch	2023-10-22 22:17:34.296723700 +0800
@@ -1 +1 @@
-From 72ec059a1ca91c52c6139cfc32133d643f709986 Mon Sep 17 00:00:00 2001
+From 9e7a4f889b0ca1755be668113f3ae991927c38a0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 72ec059a1ca91c52c6139cfc32133d643f709986 ]
@@ -22 +24,0 @@
-Cc: stable@dpdk.org
@@ -33 +35 @@
-index 01a5877d08..f900384aeb 100644
+index 026daa3f24..8bcbedd071 100644
@@ -45 +47 @@
-index 1a5fd3eb17..68ed841efc 100644
+index 6e6624e5a3..1d84e422d4 100644
@@ -48 +50 @@
-@@ -189,7 +189,6 @@ mlx5_vdpa_c_thread_handle(void *arg)
+@@ -190,7 +190,6 @@ mlx5_vdpa_c_thread_handle(void *arg)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'baseband/acc: fix ACC100 HARQ input alignment' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (77 preceding siblings ...)
  2023-10-22 14:21 ` patch 'vdpa/mlx5: fix unregister kick handler order' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'app/bbdev: fix link with NXP LA12XX' " Xueming Li
                   ` (62 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Hernan Vargas; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=923d7a21ab27c26cfd5473c1837c92e6a6794a59

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 923d7a21ab27c26cfd5473c1837c92e6a6794a59 Mon Sep 17 00:00:00 2001
From: Hernan Vargas <hernan.vargas@intel.com>
Date: Tue, 19 Sep 2023 11:24:17 -0700
Subject: [PATCH] baseband/acc: fix ACC100 HARQ input alignment
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 7d048916644d7777872f957901222f2654b234dd ]

Some constraints are imposed onto the ACC100 HARQ input size,
but that value is incorrectly aligned down when getting close to
max (Ncb-F) which is not required.
The wireless performance impact is negligeable but still causes a
few LLRs no to be combined at the very end of the circular buffer.

Fixes: 5802f36dd492 ("baseband/acc100: enforce additional check on FCW")

Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/baseband/acc/rte_acc100_pmd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/baseband/acc/rte_acc100_pmd.c b/drivers/baseband/acc/rte_acc100_pmd.c
index 7757db81fe..56a11e98b8 100644
--- a/drivers/baseband/acc/rte_acc100_pmd.c
+++ b/drivers/baseband/acc/rte_acc100_pmd.c
@@ -1221,7 +1221,7 @@ acc100_fcw_ld_fill(struct rte_bbdev_dec_op *op, struct acc_fcw_ld *fcw,
 				- op->ldpc_dec.n_filler);

 		/* Alignment on next 64B - Already enforced from HC output */
-		harq_in_length = RTE_ALIGN_FLOOR(harq_in_length, ACC_HARQ_ALIGN_64B);
+		harq_in_length = RTE_ALIGN_CEIL(harq_in_length, ACC_HARQ_ALIGN_64B);

 		/* Stronger alignment requirement when in decompression mode */
 		if (fcw->hcin_decomp_mode > 0)
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.262792300 +0800
+++ 0079-baseband-acc-fix-ACC100-HARQ-input-alignment.patch	2023-10-22 22:17:34.306723700 +0800
@@ -1 +1 @@
-From 7d048916644d7777872f957901222f2654b234dd Mon Sep 17 00:00:00 2001
+From 923d7a21ab27c26cfd5473c1837c92e6a6794a59 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7d048916644d7777872f957901222f2654b234dd ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 5362d39c30..c736f3e420 100644
+index 7757db81fe..56a11e98b8 100644
@@ -25 +27 @@
-@@ -1218,7 +1218,7 @@ acc100_fcw_ld_fill(struct rte_bbdev_dec_op *op, struct acc_fcw_ld *fcw,
+@@ -1221,7 +1221,7 @@ acc100_fcw_ld_fill(struct rte_bbdev_dec_op *op, struct acc_fcw_ld *fcw,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/bbdev: fix link with NXP LA12XX' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (78 preceding siblings ...)
  2023-10-22 14:21 ` patch 'baseband/acc: fix ACC100 HARQ input alignment' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/i40e: fix FDIR queue receives broadcast packets' " Xueming Li
                   ` (61 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: David Marchand
  Cc: Nicolas Chautru, Hemant Agrawal, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=202402218ca664d22395f12a4a0c92ad421f3869

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 202402218ca664d22395f12a4a0c92ad421f3869 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 13 Sep 2023 14:58:42 +0100
Subject: [PATCH] app/bbdev: fix link with NXP LA12XX
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 77f913752a55c0262bfda99a1b69ca0bd804c6c7 ]

The LA12XX driver was not linked to the dpdk-test-bbdev tool because of
what looks like a rebase issue.

Fixes: 2b504721bfda ("app/bbdev: enable la12xx")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Nicolas Chautru <nicolas.chautru@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 app/test-bbdev/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test-bbdev/meson.build b/app/test-bbdev/meson.build
index cd6a5089d5..926e0a5271 100644
--- a/app/test-bbdev/meson.build
+++ b/app/test-bbdev/meson.build
@@ -23,6 +23,6 @@ endif
 if dpdk_conf.has('RTE_BASEBAND_ACC')
     deps += ['baseband_acc']
 endif
-if dpdk_conf.has('RTE_LIBRTE_PMD_BBDEV_LA12XX')
+if dpdk_conf.has('RTE_BASEBAND_LA12XX')
     deps += ['baseband_la12xx']
 endif
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.297040600 +0800
+++ 0080-app-bbdev-fix-link-with-NXP-LA12XX.patch	2023-10-22 22:17:34.306723700 +0800
@@ -1 +1 @@
-From 77f913752a55c0262bfda99a1b69ca0bd804c6c7 Mon Sep 17 00:00:00 2001
+From 202402218ca664d22395f12a4a0c92ad421f3869 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 77f913752a55c0262bfda99a1b69ca0bd804c6c7 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/i40e: fix FDIR queue receives broadcast packets' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (79 preceding siblings ...)
  2023-10-22 14:21 ` patch 'app/bbdev: fix link with NXP LA12XX' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/ice: write timestamp to first segment in scattered Rx' " Xueming Li
                   ` (60 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Beilei Xing; +Cc: Jingjing Wu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=d4cd7146409f41c1e3615a4fff72ecb369233e04

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d4cd7146409f41c1e3615a4fff72ecb369233e04 Mon Sep 17 00:00:00 2001
From: Beilei Xing <beilei.xing@intel.com>
Date: Fri, 21 Jul 2023 05:35:13 +0000
Subject: [PATCH] net/i40e: fix FDIR queue receives broadcast packets
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c07aa47b6272cc14842af06e437cda870e867fbd ]

FDIR Rxq is excepted to only receive FDIR programming status, won't
receive broadcast packets.

Fixes: a778a1fa2e4e ("i40e: set up and initialize flow director")

Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index cb0070f94b..0ff334745d 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -6006,14 +6006,16 @@ i40e_vsi_setup(struct i40e_pf *pf,
 		}
 	}

-	/* MAC/VLAN configuration */
-	rte_memcpy(&filter.mac_addr, &broadcast, RTE_ETHER_ADDR_LEN);
-	filter.filter_type = I40E_MACVLAN_PERFECT_MATCH;
+	if (vsi->type != I40E_VSI_FDIR) {
+		/* MAC/VLAN configuration for non-FDIR VSI*/
+		rte_memcpy(&filter.mac_addr, &broadcast, RTE_ETHER_ADDR_LEN);
+		filter.filter_type = I40E_MACVLAN_PERFECT_MATCH;

-	ret = i40e_vsi_add_mac(vsi, &filter);
-	if (ret != I40E_SUCCESS) {
-		PMD_DRV_LOG(ERR, "Failed to add MACVLAN filter");
-		goto fail_msix_alloc;
+		ret = i40e_vsi_add_mac(vsi, &filter);
+		if (ret != I40E_SUCCESS) {
+			PMD_DRV_LOG(ERR, "Failed to add MACVLAN filter");
+			goto fail_msix_alloc;
+		}
 	}

 	/* Get VSI BW information */
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.327652800 +0800
+++ 0081-net-i40e-fix-FDIR-queue-receives-broadcast-packets.patch	2023-10-22 22:17:34.316723700 +0800
@@ -1 +1 @@
-From c07aa47b6272cc14842af06e437cda870e867fbd Mon Sep 17 00:00:00 2001
+From d4cd7146409f41c1e3615a4fff72ecb369233e04 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c07aa47b6272cc14842af06e437cda870e867fbd ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 50ba9aac94..0482647cc1 100644
+index cb0070f94b..0ff334745d 100644
@@ -22 +24 @@
-@@ -6026,14 +6026,16 @@ i40e_vsi_setup(struct i40e_pf *pf,
+@@ -6006,14 +6006,16 @@ i40e_vsi_setup(struct i40e_pf *pf,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ice: write timestamp to first segment in scattered Rx' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (80 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/i40e: fix FDIR queue receives broadcast packets' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/iavf: fix VLAN offload strip flag' " Xueming Li
                   ` (59 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Martin Weiser; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=52c903949a6c812ad124e6ddfec9a91c9bb2d552

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 52c903949a6c812ad124e6ddfec9a91c9bb2d552 Mon Sep 17 00:00:00 2001
From: Martin Weiser <martin.weiser@allegro-packets.com>
Date: Tue, 8 Aug 2023 11:39:52 +0000
Subject: [PATCH] net/ice: write timestamp to first segment in scattered Rx
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 6fc6b7260e0cd122433b4e439d7372a5281fff69 ]

Previously, the Rx timestamp was written to the last segment of the mbuf
chain, which was unexpected.

Fixes: 5543827fc6df ("net/ice: improve performance of Rx timestamp offload")

Signed-off-by: Martin Weiser <martin.weiser@allegro-packets.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_rxtx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 598edb29c9..39e72047a5 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -2149,7 +2149,7 @@ ice_recv_scattered_pkts(void *rx_queue,
 			}
 			rxq->hw_time_update = rte_get_timer_cycles() /
 					     (rte_get_timer_hz() / 1000);
-			*RTE_MBUF_DYNFIELD(rxm,
+			*RTE_MBUF_DYNFIELD(first_seg,
 					   (ice_timestamp_dynfield_offset),
 					   rte_mbuf_timestamp_t *) = ts_ns;
 			pkt_flags |= ice_timestamp_dynflag;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.367314600 +0800
+++ 0082-net-ice-write-timestamp-to-first-segment-in-scattere.patch	2023-10-22 22:17:34.316723700 +0800
@@ -1 +1 @@
-From 6fc6b7260e0cd122433b4e439d7372a5281fff69 Mon Sep 17 00:00:00 2001
+From 52c903949a6c812ad124e6ddfec9a91c9bb2d552 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 6fc6b7260e0cd122433b4e439d7372a5281fff69 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 64c4486b4b..e07c6d1f15 100644
+index 598edb29c9..39e72047a5 100644
@@ -22 +24 @@
-@@ -2150,7 +2150,7 @@ ice_recv_scattered_pkts(void *rx_queue,
+@@ -2149,7 +2149,7 @@ ice_recv_scattered_pkts(void *rx_queue,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/iavf: fix VLAN offload strip flag' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (81 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/ice: write timestamp to first segment in scattered Rx' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/iavf: fix checksum offloading' " Xueming Li
                   ` (58 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Wenjing Qiao; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=491e9d37c14e6faefbd8fb21f9ad0252eb5857fb

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 491e9d37c14e6faefbd8fb21f9ad0252eb5857fb Mon Sep 17 00:00:00 2001
From: Wenjing Qiao <wenjing.qiao@intel.com>
Date: Mon, 21 Aug 2023 09:52:12 +0000
Subject: [PATCH] net/iavf: fix VLAN offload strip flag
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e25c7ed114b296ddaa583427824acc30bcf9c85d ]

For i40e kernel driver which only supports vlan(v1) VIRTCHNL OP,
it will set strip on when setting filter on but dpdk side will not
change strip flag. To be consistent with dpdk side, disable strip
again.

Fixes: cb25d4323fbf ("net/avf: enable MAC VLAN and promisc ops")

Signed-off-by: Wenjing Qiao <wenjing.qiao@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 610547502b..bca89362e1 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -1353,6 +1353,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
 	struct iavf_adapter *adapter =
 		IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
 	struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+	struct rte_eth_conf *dev_conf = &dev->data->dev_conf;
 	int err;

 	if (adapter->closed)
@@ -1371,6 +1372,23 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
 	err = iavf_add_del_vlan(adapter, vlan_id, on);
 	if (err)
 		return -EIO;
+
+	/* For i40e kernel driver which only supports vlan(v1) VIRTCHNL OP,
+	 * it will set strip on when setting filter on but dpdk side will not
+	 * change strip flag. To be consistent with dpdk side, disable strip
+	 * again.
+	 *
+	 * For i40e kernel driver which supports vlan v2, dpdk will invoke vlan v2
+	 * related function, so it won't go through here.
+	 */
+	if (adapter->hw.mac.type == IAVF_MAC_XL710 ||
+	    adapter->hw.mac.type == IAVF_MAC_X722_VF) {
+		if (on && !(dev_conf->rxmode.offloads & RTE_ETH_RX_OFFLOAD_VLAN_STRIP)) {
+			err = iavf_disable_vlan_strip(adapter);
+			if (err)
+				return -EIO;
+		}
+	}
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.400180700 +0800
+++ 0083-net-iavf-fix-VLAN-offload-strip-flag.patch	2023-10-22 22:17:34.316723700 +0800
@@ -1 +1 @@
-From e25c7ed114b296ddaa583427824acc30bcf9c85d Mon Sep 17 00:00:00 2001
+From 491e9d37c14e6faefbd8fb21f9ad0252eb5857fb Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e25c7ed114b296ddaa583427824acc30bcf9c85d ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index c0ca733c67..9591acef65 100644
+index 610547502b..bca89362e1 100644
@@ -24 +26 @@
-@@ -1369,6 +1369,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
+@@ -1353,6 +1353,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
@@ -32 +34 @@
-@@ -1387,6 +1388,23 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
+@@ -1371,6 +1372,23 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/iavf: fix checksum offloading' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (82 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/iavf: fix VLAN offload strip flag' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/i40e: fix buffer leak on Rx reconfiguration' " Xueming Li
                   ` (57 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: David Marchand; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=baaa29889396f58d78dd7d429c8ecf8970b9ca22

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From baaa29889396f58d78dd7d429c8ecf8970b9ca22 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 23 Aug 2023 08:29:11 +0200
Subject: [PATCH] net/iavf: fix checksum offloading
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3c715591ece0771b7a5503ffe5340c6f3cc1cb62 ]

l2_len and l3_len fields are related to Tx offloading features.

It is undefined in the DPDK API what those fields may contain if an
application did not request a Tx offload.

Skip reading them if no Tx offloads has been requested.

Fixes: 1e728b01120c ("net/iavf: rework Tx path")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 4a38a7b985..97df9d1699 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2597,6 +2597,9 @@ iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,
 		l2tag1 |= m->vlan_tci;
 	}

+	if ((m->ol_flags & IAVF_TX_CKSUM_OFFLOAD_MASK) == 0)
+		goto skip_cksum;
+
 	/* Set MACLEN */
 	if (m->ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK &&
 			!(m->ol_flags & RTE_MBUF_F_TX_SEC_OFFLOAD))
@@ -2656,6 +2659,7 @@ iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,
 		break;
 	}

+skip_cksum:
 	*qw1 = rte_cpu_to_le_64((((uint64_t)command <<
 		IAVF_TXD_DATA_QW1_CMD_SHIFT) & IAVF_TXD_DATA_QW1_CMD_MASK) |
 		(((uint64_t)offset << IAVF_TXD_DATA_QW1_OFFSET_SHIFT) &
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.434620200 +0800
+++ 0084-net-iavf-fix-checksum-offloading.patch	2023-10-22 22:17:34.316723700 +0800
@@ -1 +1 @@
-From 3c715591ece0771b7a5503ffe5340c6f3cc1cb62 Mon Sep 17 00:00:00 2001
+From baaa29889396f58d78dd7d429c8ecf8970b9ca22 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3c715591ece0771b7a5503ffe5340c6f3cc1cb62 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index f7df4665d1..33b0f9f482 100644
+index 4a38a7b985..97df9d1699 100644
@@ -26 +28 @@
-@@ -2643,6 +2643,9 @@ iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,
+@@ -2597,6 +2597,9 @@ iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,
@@ -36 +38 @@
-@@ -2702,6 +2705,7 @@ iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,
+@@ -2656,6 +2659,7 @@ iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/i40e: fix buffer leak on Rx reconfiguration' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (83 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/iavf: fix checksum offloading' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/ice: fix TM configuration clearing' " Xueming Li
                   ` (56 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=36e302e98b46a1a0999178d45b08937b469e7ca9

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 36e302e98b46a1a0999178d45b08937b469e7ca9 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Thu, 31 Aug 2023 13:33:34 +0100
Subject: [PATCH] net/i40e: fix buffer leak on Rx reconfiguration
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 56dcaa41325a8a347ba52e5d89dce5e8dafa7f8c ]

When reconfiguring a single queue on a device, the mbuf initializer
value was not getting set, and remained at zero. This lead to mbuf leaks
as the refcount was incorrect (0), so on free it wrapped around to
UINT16_MAX. When setting up the mbuf initializer, also ensure that the
queue is explicitly marked as using a vector function by setting the
"rx_using_sse" flag.

Fixes: a3c83a2527e1 ("net/i40e: enable runtime queue setup")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/i40e/i40e_rxtx.c            | 6 ++++++
 drivers/net/i40e/i40e_rxtx_vec_common.h | 1 +
 2 files changed, 7 insertions(+)

diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index b4f65b58fa..d96bbbb677 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -1918,6 +1918,12 @@ i40e_dev_rx_queue_setup_runtime(struct rte_eth_dev *dev,
 		if (use_def_burst_func)
 			ad->rx_bulk_alloc_allowed = false;
 		i40e_set_rx_function(dev);
+
+		if (ad->rx_vec_allowed && i40e_rxq_vec_setup(rxq)) {
+			PMD_DRV_LOG(ERR, "Failed vector rx setup.");
+			return -EINVAL;
+		}
+
 		return 0;
 	} else if (ad->rx_vec_allowed && !rte_is_power_of_2(rxq->nb_rx_desc)) {
 		PMD_DRV_LOG(ERR, "Vector mode is allowed, but descriptor"
diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h b/drivers/net/i40e/i40e_rxtx_vec_common.h
index fe1a6ec75e..8b745630e4 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_common.h
+++ b/drivers/net/i40e/i40e_rxtx_vec_common.h
@@ -201,6 +201,7 @@ i40e_rxq_vec_setup_default(struct i40e_rx_queue *rxq)
 	rte_compiler_barrier();
 	p = (uintptr_t)&mb_def.rearm_data;
 	rxq->mbuf_initializer = *(uint64_t *)p;
+	rxq->rx_using_sse = 1;
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.473782200 +0800
+++ 0085-net-i40e-fix-buffer-leak-on-Rx-reconfiguration.patch	2023-10-22 22:17:34.326723700 +0800
@@ -1 +1 @@
-From 56dcaa41325a8a347ba52e5d89dce5e8dafa7f8c Mon Sep 17 00:00:00 2001
+From 36e302e98b46a1a0999178d45b08937b469e7ca9 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 56dcaa41325a8a347ba52e5d89dce5e8dafa7f8c ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index f37bf30d56..9aa5facb53 100644
+index b4f65b58fa..d96bbbb677 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ice: fix TM configuration clearing' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (84 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/i40e: fix buffer leak on Rx reconfiguration' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/iavf: fix port stats " Xueming Li
                   ` (55 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Kaiwen Deng; +Cc: Wenjun Wu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=4467e32db96de11e97d01bc0e7cfb34e7d4db791

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 4467e32db96de11e97d01bc0e7cfb34e7d4db791 Mon Sep 17 00:00:00 2001
From: Kaiwen Deng <kaiwenx.deng@intel.com>
Date: Wed, 6 Sep 2023 15:49:30 +0800
Subject: [PATCH] net/ice: fix TM configuration clearing
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c21a6a3ff6c49965d4373677255058d041dafe96 ]

When the device is stopped, the PMD resets the commit flag so that
we can update the hierarchy configuration. The commit flag is also
used to determine if the hierarchy configuration needs to be cleared.
When the PMD exits, it always stops the device first and also resets
the commit flag result in the hierarchy configuration is not cleared.

This commit changes the PMD to not reset the commit flag when the
device is stopped. And we prevent additional commit when device is
running by only checking the stop flag.

Fixes: f5ec6a3a1987 ("net/ice: fix TM hierarchy commit flag reset")

Signed-off-by: Kaiwen Deng <kaiwenx.deng@intel.com>
Acked-by: Wenjun Wu <wenjun1.wu@intel.com>
---
 drivers/net/ice/ice_dcf_ethdev.c |  2 --
 drivers/net/ice/ice_dcf_sched.c  | 14 ++++++++------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ice/ice_dcf_ethdev.c b/drivers/net/ice/ice_dcf_ethdev.c
index 7304ea721c..a7d90f46dc 100644
--- a/drivers/net/ice/ice_dcf_ethdev.c
+++ b/drivers/net/ice/ice_dcf_ethdev.c
@@ -671,7 +671,6 @@ ice_dcf_dev_stop(struct rte_eth_dev *dev)
 	struct ice_dcf_adapter *dcf_ad = dev->data->dev_private;
 	struct rte_intr_handle *intr_handle = dev->intr_handle;
 	struct ice_adapter *ad = &dcf_ad->parent;
-	struct ice_dcf_hw *hw = &dcf_ad->real_hw;

 	if (ad->pf.adapter_stopped == 1) {
 		PMD_DRV_LOG(DEBUG, "Port is already stopped");
@@ -698,7 +697,6 @@ ice_dcf_dev_stop(struct rte_eth_dev *dev)

 	dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;
 	ad->pf.adapter_stopped = 1;
-	hw->tm_conf.committed = false;

 	return 0;
 }
diff --git a/drivers/net/ice/ice_dcf_sched.c b/drivers/net/ice/ice_dcf_sched.c
index a231c1e60b..b08bc5f1de 100644
--- a/drivers/net/ice/ice_dcf_sched.c
+++ b/drivers/net/ice/ice_dcf_sched.c
@@ -237,6 +237,7 @@ ice_dcf_node_add(struct rte_eth_dev *dev, uint32_t node_id,
 	enum ice_dcf_tm_node_type node_type = ICE_DCF_TM_NODE_TYPE_MAX;
 	struct ice_dcf_tm_shaper_profile *shaper_profile = NULL;
 	struct ice_dcf_adapter *adapter = dev->data->dev_private;
+	struct ice_adapter *ad = &adapter->parent;
 	struct ice_dcf_hw *hw = &adapter->real_hw;
 	struct ice_dcf_tm_node *parent_node;
 	struct ice_dcf_tm_node *tm_node;
@@ -246,10 +247,10 @@ ice_dcf_node_add(struct rte_eth_dev *dev, uint32_t node_id,
 	if (!params || !error)
 		return -EINVAL;

-	/* if already committed */
-	if (hw->tm_conf.committed) {
+	/* if port is running */
+	if (!ad->pf.adapter_stopped) {
 		error->type = RTE_TM_ERROR_TYPE_UNSPECIFIED;
-		error->message = "already committed";
+		error->message = "port is running";
 		return -EINVAL;
 	}

@@ -400,16 +401,17 @@ ice_dcf_node_delete(struct rte_eth_dev *dev, uint32_t node_id,
 {
 	enum ice_dcf_tm_node_type node_type = ICE_DCF_TM_NODE_TYPE_MAX;
 	struct ice_dcf_adapter *adapter = dev->data->dev_private;
+	struct ice_adapter *ad = &adapter->parent;
 	struct ice_dcf_hw *hw = &adapter->real_hw;
 	struct ice_dcf_tm_node *tm_node;

 	if (!error)
 		return -EINVAL;

-	/* if already committed */
-	if (hw->tm_conf.committed) {
+	/* if port is running */
+	if (!ad->pf.adapter_stopped) {
 		error->type = RTE_TM_ERROR_TYPE_UNSPECIFIED;
-		error->message = "already committed";
+		error->message = "port is running";
 		return -EINVAL;
 	}

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.507796100 +0800
+++ 0086-net-ice-fix-TM-configuration-clearing.patch	2023-10-22 22:17:34.326723700 +0800
@@ -1 +1 @@
-From c21a6a3ff6c49965d4373677255058d041dafe96 Mon Sep 17 00:00:00 2001
+From 4467e32db96de11e97d01bc0e7cfb34e7d4db791 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c21a6a3ff6c49965d4373677255058d041dafe96 ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -27 +29 @@
-index 30ad18d8fc..065ec728c2 100644
+index 7304ea721c..a7d90f46dc 100644
@@ -30 +32 @@
-@@ -670,7 +670,6 @@ ice_dcf_dev_stop(struct rte_eth_dev *dev)
+@@ -671,7 +671,6 @@ ice_dcf_dev_stop(struct rte_eth_dev *dev)
@@ -38 +40 @@
-@@ -697,7 +696,6 @@ ice_dcf_dev_stop(struct rte_eth_dev *dev)
+@@ -698,7 +697,6 @@ ice_dcf_dev_stop(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/iavf: fix port stats clearing' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (85 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/ice: fix TM configuration clearing' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/iavf: unregister interrupt handler before FD close' " Xueming Li
                   ` (54 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Yiding Zhou; +Cc: Kuan Xu, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=948b21bd593a998e1231654626d0a01d195ce18b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 948b21bd593a998e1231654626d0a01d195ce18b Mon Sep 17 00:00:00 2001
From: Yiding Zhou <yidingx.zhou@intel.com>
Date: Thu, 7 Sep 2023 10:39:42 +0800
Subject: [PATCH] net/iavf: fix port stats clearing
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 57fc68cf11cf3ec49526d8a8eca98956d5b77989 ]

After VF reset, kernel driver may reuse the original VSI without reset its
stats. Call 'iavf_dev_stats_reset' during the initialization of the VF in
order to clear any statistics that may exist from the last use of the VF
and to avoid statistics errors.

Fixes: 22b123a36d07 ("net/avf: initialize PMD")

Signed-off-by: Kuan Xu <kuanx.xu@intel.com>
Signed-off-by: Yiding Zhou <yidingx.zhou@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 .mailmap                       | 1 +
 drivers/net/iavf/iavf_ethdev.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/.mailmap b/.mailmap
index 66fc87659a..d3c05941d5 100644
--- a/.mailmap
+++ b/.mailmap
@@ -727,6 +727,7 @@ Krzysztof Galazka <krzysztof.galazka@intel.com>
 Krzysztof Kanas <kkanas@marvell.com> <krzysztof.kanas@caviumnetworks.com>
 Krzysztof Karas <krzysztof.karas@intel.com>
 Krzysztof Witek <krzysztof.witek@6wind.com>
+Kuan Xu <kuanx.xu@intel.com>
 Kuba Kozak <kubax.kozak@intel.com>
 Kumar Amber <kumar.amber@intel.com>
 Kumara Parameshwaran <kumaraparamesh92@gmail.com> <kparameshwar@vmware.com>
diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index bca89362e1..fb2c9364cd 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -2701,6 +2701,7 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)

 	iavf_default_rss_disable(adapter);

+	iavf_dev_stats_reset(eth_dev);

 	/* Start device watchdog */
 	iavf_dev_watchdog_enable(adapter);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.541476400 +0800
+++ 0087-net-iavf-fix-port-stats-clearing.patch	2023-10-22 22:17:34.336723700 +0800
@@ -1 +1 @@
-From 57fc68cf11cf3ec49526d8a8eca98956d5b77989 Mon Sep 17 00:00:00 2001
+From 948b21bd593a998e1231654626d0a01d195ce18b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 57fc68cf11cf3ec49526d8a8eca98956d5b77989 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 85682c3ec4..013ad8cbca 100644
+index 66fc87659a..d3c05941d5 100644
@@ -26 +28 @@
-@@ -752,6 +752,7 @@ Krzysztof Galazka <krzysztof.galazka@intel.com>
+@@ -727,6 +727,7 @@ Krzysztof Galazka <krzysztof.galazka@intel.com>
@@ -35 +37 @@
-index c71b6565f3..27a6a7b80f 100644
+index bca89362e1..fb2c9364cd 100644
@@ -38 +40 @@
-@@ -2748,6 +2748,7 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
+@@ -2701,6 +2701,7 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/iavf: unregister interrupt handler before FD close' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (86 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/iavf: fix port stats " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/iavf: fix ESN session update' " Xueming Li
                   ` (53 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Saurabh Singhal; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=efdea6d6f43f02f533617471a72e7bc184cfe367

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From efdea6d6f43f02f533617471a72e7bc184cfe367 Mon Sep 17 00:00:00 2001
From: Saurabh Singhal <saurabhs@arista.com>
Date: Wed, 6 Sep 2023 20:15:29 -0700
Subject: [PATCH] net/iavf: unregister interrupt handler before FD close
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e35a5737a7469423880a0946afffd2568f6156dd ]

Unregister VFIO interrupt handler before the interrupt fd gets closed in
case iavf_dev_init() returns an error.

dpdk creates a standalone thread named eal-intr-thread for processing
interrupts for the PCI devices. The interrupt handler callbacks are
registered by the VF driver(iavf, in this case).

When we do a PCI probe of the network interfaces, we register an
interrupt handler, open a vfio-device fd using ioctl, and an eventfd in
dpdk. These interrupt sources are registered in a global linked list
that the eal-intr-thread keeps iterating over for handling the
interrupts. In our internal testing, we see eal-intr-thread crash in
these two ways:

Error adding fd 660 epoll_ctl, Operation not permitted

or

Error adding fd 660 epoll_ctl, Bad file descriptor

epoll_ctl() returns EPERM if the target fd does not support poll.
It returns EBADF when the epoll fd itself is closed or the target fd is
closed.

When the first type of crash happens, we see that the fd 660 is
anon_inode:[vfio-device] which does not support poll.

When the second type of crash happens, we could see from the fd map of
the crashing process that the fd 660 was already closed.

This means the said fd has been closed and in certain cases may have
been reassigned to a different device by the operating system but the
eal-intr-thread does not know about it.

We observed that these crashes were always accompanied by an error in
iavf_dev_init() after rte_intr_callback_register() and
iavf_enable_irq0() have already happened. In the error path, the
intr_handle_fd was being closed but the interrupt handler wasn't being
unregistered.

The fix is to unregister the interrupt handle in the
iavf_dev_init() error path.

Ensure proper cleanup if iavf_security_init() or
iavf_security_ctx_create() fail. Earlier, we were leaking memory by
simply returning from iavf_dev_init().

Fixes: 22b123a36d07 ("net/avf: initialize PMD")
Fixes: 6bc987ecb860 ("net/iavf: support IPsec inline crypto")

Signed-off-by: Saurabh Singhal <saurabhs@arista.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 .mailmap                       |  1 +
 drivers/net/iavf/iavf_ethdev.c | 22 ++++++++++++++++++++--
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/.mailmap b/.mailmap
index d3c05941d5..83b960753a 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1193,6 +1193,7 @@ Satananda Burla <sburla@marvell.com>
 Satha Rao <skoteshwar@marvell.com> <skoteshwar@caviumnetworks.com>
 Satheesh Paul <psatheesh@marvell.com>
 Sathesh Edara <sedara@marvell.com>
+Saurabh Singhal <saurabhs@arista.com>
 Savinay Dharmappa <savinay.dharmappa@intel.com>
 Scott Branden <scott.branden@broadcom.com>
 Scott Daniels <daniels@research.att.com>
diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index fb2c9364cd..fce56d33cc 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -131,6 +131,8 @@ static int iavf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev,
 					uint16_t queue_id);
 static int iavf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev,
 					 uint16_t queue_id);
+static void iavf_dev_interrupt_handler(void *param);
+static void iavf_disable_irq0(struct iavf_hw *hw);
 static int iavf_dev_flow_ops_get(struct rte_eth_dev *dev,
 				 const struct rte_flow_ops **ops);
 static int iavf_set_mc_addr_list(struct rte_eth_dev *dev,
@@ -2689,13 +2691,13 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
 		ret = iavf_security_ctx_create(adapter);
 		if (ret) {
 			PMD_INIT_LOG(ERR, "failed to create ipsec crypto security instance");
-			return ret;
+			goto flow_init_err;
 		}

 		ret = iavf_security_init(adapter);
 		if (ret) {
 			PMD_INIT_LOG(ERR, "failed to initialized ipsec crypto resources");
-			return ret;
+			goto security_init_err;
 		}
 	}

@@ -2709,7 +2711,23 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)

 	return 0;

+security_init_err:
+	iavf_security_ctx_destroy(adapter);
+
 flow_init_err:
+	iavf_disable_irq0(hw);
+
+	if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_WB_ON_ITR) {
+		/* disable uio intr before callback unregiser */
+		rte_intr_disable(pci_dev->intr_handle);
+
+		/* unregister callback func from eal lib */
+		rte_intr_callback_unregister(pci_dev->intr_handle,
+					     iavf_dev_interrupt_handler, eth_dev);
+	} else {
+		rte_eal_alarm_cancel(iavf_dev_alarm_handler, eth_dev);
+	}
+
 	rte_free(eth_dev->data->mac_addrs);
 	eth_dev->data->mac_addrs = NULL;

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.576185500 +0800
+++ 0088-net-iavf-unregister-interrupt-handler-before-FD-clos.patch	2023-10-22 22:17:34.336723700 +0800
@@ -1 +1 @@
-From e35a5737a7469423880a0946afffd2568f6156dd Mon Sep 17 00:00:00 2001
+From efdea6d6f43f02f533617471a72e7bc184cfe367 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e35a5737a7469423880a0946afffd2568f6156dd ]
@@ -55 +57,0 @@
-Cc: stable@dpdk.org
@@ -65 +67 @@
-index 013ad8cbca..d35257d6eb 100644
+index d3c05941d5..83b960753a 100644
@@ -68 +70 @@
-@@ -1235,6 +1235,7 @@ Satananda Burla <sburla@marvell.com>
+@@ -1193,6 +1193,7 @@ Satananda Burla <sburla@marvell.com>
@@ -77 +79 @@
-index 27a6a7b80f..97390237ba 100644
+index fb2c9364cd..fce56d33cc 100644
@@ -80 +82 @@
-@@ -133,6 +133,8 @@ static int iavf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev,
+@@ -131,6 +131,8 @@ static int iavf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev,
@@ -89 +91 @@
-@@ -2736,13 +2738,13 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
+@@ -2689,13 +2691,13 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
@@ -105 +107 @@
-@@ -2756,7 +2758,23 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)
+@@ -2709,7 +2711,23 @@ iavf_dev_init(struct rte_eth_dev *eth_dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/iavf: fix ESN session update' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (87 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/iavf: unregister interrupt handler before FD close' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:21 ` patch 'net/ice: fix initial link status' " Xueming Li
                   ` (52 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Radu Nicolau; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=b64cc84bb5e41e21abbc0d611868e3595e961447

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b64cc84bb5e41e21abbc0d611868e3595e961447 Mon Sep 17 00:00:00 2001
From: Radu Nicolau <radu.nicolau@intel.com>
Date: Mon, 11 Sep 2023 10:20:40 +0100
Subject: [PATCH] net/iavf: fix ESN session update
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 53f85be62be6cfd4b55b9b011bf235eb14dd484a ]

Update both high and low section of the ESN.

Fixes: 6bc987ecb860 ("net/iavf: support IPsec inline crypto")

Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_ipsec_crypto.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/iavf/iavf_ipsec_crypto.c b/drivers/net/iavf/iavf_ipsec_crypto.c
index 868921cac5..26459088af 100644
--- a/drivers/net/iavf/iavf_ipsec_crypto.c
+++ b/drivers/net/iavf/iavf_ipsec_crypto.c
@@ -828,6 +828,7 @@ iavf_ipsec_crypto_sa_update_esn(struct iavf_adapter *adapter,
 	/* set request params */
 	request->ipsec_data.sa_update->sa_index = sess->sa.hw_idx;
 	request->ipsec_data.sa_update->esn_hi = sess->esn.hi;
+	request->ipsec_data.sa_update->esn_low = sess->esn.low;

 	/* send virtual channel request to add SA to hardware database */
 	rc = iavf_ipsec_crypto_request(adapter,
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.612171500 +0800
+++ 0089-net-iavf-fix-ESN-session-update.patch	2023-10-22 22:17:34.346723700 +0800
@@ -1 +1 @@
-From 53f85be62be6cfd4b55b9b011bf235eb14dd484a Mon Sep 17 00:00:00 2001
+From b64cc84bb5e41e21abbc0d611868e3595e961447 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 53f85be62be6cfd4b55b9b011bf235eb14dd484a ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 408b410f15..07a69db540 100644
+index 868921cac5..26459088af 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ice: fix initial link status' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (88 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/iavf: fix ESN session update' " Xueming Li
@ 2023-10-22 14:21 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/iavf: fix Tx debug' " Xueming Li
                   ` (51 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:21 UTC (permalink / raw)
  To: Qiming Yang; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=101faaba08ae439f3e03aa80dd192a378b81d1f4

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 101faaba08ae439f3e03aa80dd192a378b81d1f4 Mon Sep 17 00:00:00 2001
From: Qiming Yang <qiming.yang@intel.com>
Date: Wed, 13 Sep 2023 09:02:08 +0000
Subject: [PATCH] net/ice: fix initial link status
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 5274d4309139e963bbd369c5639ab24695c5574f ]

This patch fixed the issue which the link status still up
when the link status changed from up to downi after device
restart.

Fixes: fdcf92ed6637 ("net/ice: fix link status recovery")

Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index bba2715b1d..b0c8e843f7 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -3608,6 +3608,8 @@ ice_get_init_link_status(struct rte_eth_dev *dev)

 	if (link_status.link_info & ICE_AQ_LINK_UP)
 		pf->init_link_up = true;
+	else
+		pf->init_link_up = false;
 }

 static int
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.648707200 +0800
+++ 0090-net-ice-fix-initial-link-status.patch	2023-10-22 22:17:34.346723700 +0800
@@ -1 +1 @@
-From 5274d4309139e963bbd369c5639ab24695c5574f Mon Sep 17 00:00:00 2001
+From 101faaba08ae439f3e03aa80dd192a378b81d1f4 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5274d4309139e963bbd369c5639ab24695c5574f ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 4bad39c2c1..ed9771be1c 100644
+index bba2715b1d..b0c8e843f7 100644
@@ -23 +25 @@
-@@ -3646,6 +3646,8 @@ ice_get_init_link_status(struct rte_eth_dev *dev)
+@@ -3608,6 +3608,8 @@ ice_get_init_link_status(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/iavf: fix Tx debug' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (89 preceding siblings ...)
  2023-10-22 14:21 ` patch 'net/ice: fix initial link status' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/iavf: remove log from Tx prepare function' " Xueming Li
                   ` (50 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: David Marchand; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=eec9ac43a7f44c049619078d4a1aed4915167553

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From eec9ac43a7f44c049619078d4a1aed4915167553 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 13 Sep 2023 15:03:27 +0100
Subject: [PATCH] net/iavf: fix Tx debug
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 145b3f04a2971423c483c7f4cc00a7491668a893 ]

Commit 1e728b01120c ("net/iavf: rework Tx path") reintroduced a check on
RTE_LIBRTE_IAVF_DEBUG_TX that has been dropped in favor of
RTE_ETHDEV_DEBUG_TX.

Fixes: 1e728b01120c ("net/iavf: rework Tx path")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 97df9d1699..79da50f273 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2483,7 +2483,7 @@ iavf_fill_ctx_desc_segmentation_field(volatile uint64_t *field,
 			total_length -= m->outer_l3_len + m->outer_l2_len;
 	}

-#ifdef RTE_LIBRTE_IAVF_DEBUG_TX
+#ifdef RTE_ETHDEV_DEBUG_TX
 	if (!m->l4_len || !m->tso_segsz)
 		PMD_TX_LOG(DEBUG, "L4 length %d, LSO Segment size %d",
 			 m->l4_len, m->tso_segsz);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.693560000 +0800
+++ 0091-net-iavf-fix-Tx-debug.patch	2023-10-22 22:17:34.346723700 +0800
@@ -1 +1 @@
-From 145b3f04a2971423c483c7f4cc00a7491668a893 Mon Sep 17 00:00:00 2001
+From eec9ac43a7f44c049619078d4a1aed4915167553 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 145b3f04a2971423c483c7f4cc00a7491668a893 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index e2d61659cd..72e8ae8aa6 100644
+index 97df9d1699..79da50f273 100644
@@ -23 +25 @@
-@@ -2536,7 +2536,7 @@ iavf_fill_ctx_desc_segmentation_field(volatile uint64_t *field,
+@@ -2483,7 +2483,7 @@ iavf_fill_ctx_desc_segmentation_field(volatile uint64_t *field,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/iavf: remove log from Tx prepare function' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (90 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/iavf: fix Tx debug' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/iavf: fix TSO with big segments' " Xueming Li
                   ` (49 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: David Marchand; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=235b473bf97a23c6db14ec508fa0bd321091715c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 235b473bf97a23c6db14ec508fa0bd321091715c Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 27 Sep 2023 11:41:45 +0200
Subject: [PATCH] net/iavf: remove log from Tx prepare function
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 4015aed58aefb3cceba6766f1fcaaa483c21ede0 ]

iavf_prep_pkts reports to the application that the packet is invalid
(from the driver pov). Having a log message only in this branch is not
consistent with all other checks in this function and it may slow down
the application if such invalid packets are being sent continuously.

Fixes: 19ee91c6bd9a ("net/iavf: check illegal packet sizes")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 79da50f273..77c37423dd 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -3008,7 +3008,6 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		if (m->data_len < IAVF_TX_MIN_PKT_LEN ||
 			m->data_len > max_frame_size) {
 			rte_errno = EINVAL;
-			PMD_DRV_LOG(ERR, "INVALID mbuf: bad data_len=[%hu]", m->data_len);
 			return i;
 		}

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.734982100 +0800
+++ 0092-net-iavf-remove-log-from-Tx-prepare-function.patch	2023-10-22 22:17:34.356723700 +0800
@@ -1 +1 @@
-From 4015aed58aefb3cceba6766f1fcaaa483c21ede0 Mon Sep 17 00:00:00 2001
+From 235b473bf97a23c6db14ec508fa0bd321091715c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4015aed58aefb3cceba6766f1fcaaa483c21ede0 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 0484988d13..21a06b8351 100644
+index 79da50f273..77c37423dd 100644
@@ -24 +26 @@
-@@ -3669,7 +3669,6 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3008,7 +3008,6 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/iavf: fix TSO with big segments' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (91 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/iavf: remove log from Tx prepare function' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/ice: remove log from Tx prepare function' " Xueming Li
                   ` (48 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: David Marchand; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=50e27677ba28f46145692b2c180c138e677d1aa2

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 50e27677ba28f46145692b2c180c138e677d1aa2 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 27 Sep 2023 11:41:46 +0200
Subject: [PATCH] net/iavf: fix TSO with big segments
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 8a1a5327ba71a19d8a6e1b9ceb5563b4af2c2029 ]

Packets to be segmented with TSO are usually larger than MTU.
Plus, a single segment for the whole packet may be used: in OVS case,
an external rte_malloc'd buffer is used for packets received
from vhost-user ports.

Before this fix, TSO packets were dropped by net/iavf with the following
message:
2023-09-18T14:08:52.739Z|00610|dpdk(pmd-c31/id:11)|ERR|iavf_prep_pkts():
	INVALID mbuf: bad data_len=[2962]

Remove the check on data_len.

Fixes: 19ee91c6bd9a ("net/iavf: check illegal packet sizes")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 77c37423dd..b6bc904228 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2975,7 +2975,6 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 	struct rte_mbuf *m;
 	struct iavf_tx_queue *txq = tx_queue;
 	struct rte_eth_dev *dev = &rte_eth_devices[txq->port_id];
-	uint16_t max_frame_size = dev->data->mtu + IAVF_ETH_OVERHEAD;
 	struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 	struct iavf_adapter *adapter = IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);

@@ -3004,9 +3003,7 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 			return i;
 		}

-		/* check the data_len in mbuf */
-		if (m->data_len < IAVF_TX_MIN_PKT_LEN ||
-			m->data_len > max_frame_size) {
+		if (m->pkt_len < IAVF_TX_MIN_PKT_LEN) {
 			rte_errno = EINVAL;
 			return i;
 		}
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.778043300 +0800
+++ 0093-net-iavf-fix-TSO-with-big-segments.patch	2023-10-22 22:17:34.356723700 +0800
@@ -1 +1 @@
-From 8a1a5327ba71a19d8a6e1b9ceb5563b4af2c2029 Mon Sep 17 00:00:00 2001
+From 50e27677ba28f46145692b2c180c138e677d1aa2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 8a1a5327ba71a19d8a6e1b9ceb5563b4af2c2029 ]
@@ -19 +21,0 @@
-Cc: stable@dpdk.org
@@ -28 +30 @@
-index 21a06b8351..c6ef6af1d8 100644
+index 77c37423dd..b6bc904228 100644
@@ -31 +33 @@
-@@ -3636,7 +3636,6 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -2975,7 +2975,6 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -39 +41 @@
-@@ -3665,9 +3664,7 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3004,9 +3003,7 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ice: remove log from Tx prepare function' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (92 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/iavf: fix TSO with big segments' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/ice: fix TSO with big segments' " Xueming Li
                   ` (47 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: David Marchand; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=a2799805b6e0385e79a52408d6afe06439b10801

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a2799805b6e0385e79a52408d6afe06439b10801 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 27 Sep 2023 11:41:47 +0200
Subject: [PATCH] net/ice: remove log from Tx prepare function
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9aa546d868b60027a6723f1a772d287d44f17ef8 ]

ice_prep_pkts reports to the application that the packet is invalid
(from the driver pov). Having a log message in those branches is not
consistent with all other checks in this function and it may slow down
the application if such invalid packets are being sent continuously.

Fixes: ccf33dccf7aa ("net/ice: check illegal packet sizes")
Fixes: 688cb2f2c61e ("net/ice: fix scalar Tx path segment")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_rxtx.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 39e72047a5..dc07a73b66 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -3699,7 +3699,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		if (m->data_len < ICE_TX_MIN_PKT_LEN ||
 			m->data_len > max_frame_size) {
 			rte_errno = EINVAL;
-			PMD_DRV_LOG(ERR, "INVALID mbuf: bad data_len=[%hu]", m->data_len);
 			return i;
 		}

@@ -3718,7 +3717,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

 		if (ice_check_empty_mbuf(m) != 0) {
 			rte_errno = EINVAL;
-			PMD_DRV_LOG(ERR, "INVALID mbuf:	last mbuf data_len=[0]");
 			return i;
 		}
 	}
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.819537300 +0800
+++ 0094-net-ice-remove-log-from-Tx-prepare-function.patch	2023-10-22 22:17:34.356723700 +0800
@@ -1 +1 @@
-From 9aa546d868b60027a6723f1a772d287d44f17ef8 Mon Sep 17 00:00:00 2001
+From a2799805b6e0385e79a52408d6afe06439b10801 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9aa546d868b60027a6723f1a772d287d44f17ef8 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index e07c6d1f15..d5513e9e93 100644
+index 39e72047a5..dc07a73b66 100644
@@ -25 +27 @@
-@@ -3708,7 +3708,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3699,7 +3699,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -33 +35 @@
-@@ -3727,7 +3726,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3718,7 +3717,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ice: fix TSO with big segments' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (93 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/ice: remove log from Tx prepare function' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/axgbe: identify CPU with cpuid' " Xueming Li
                   ` (46 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: David Marchand; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=a7ff0ba143d6bc0d12c4f158a59bd94a44e2a508

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a7ff0ba143d6bc0d12c4f158a59bd94a44e2a508 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Wed, 27 Sep 2023 11:41:48 +0200
Subject: [PATCH] net/ice: fix TSO with big segments
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit d7b35f53cadd6f228b3787f8dceca5481c034740 ]

Packets to be segmented with TSO are usually larger than MTU.
Plus, a single segment for the whole packet may be used: in OVS case,
an external rte_malloc'd buffer is used for packets received
from vhost-user ports.

Before this fix, TSO packets were dropped by net/ice with the following
message:
2023-09-18T13:34:31.064Z|00020|dpdk(pmd-c31/id:22)|ERR|ice_prep_pkts():
	INVALID mbuf: bad data_len=[2962]

Remove the check on data_len.

Fixes: ccf33dccf7aa ("net/ice: check illegal packet sizes")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_rxtx.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index dc07a73b66..31434f0ee5 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -3676,9 +3676,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 	int i, ret;
 	uint64_t ol_flags;
 	struct rte_mbuf *m;
-	struct ice_tx_queue *txq = tx_queue;
-	struct rte_eth_dev *dev = &rte_eth_devices[txq->port_id];
-	uint16_t max_frame_size = dev->data->mtu + ICE_ETH_OVERHEAD;

 	for (i = 0; i < nb_pkts; i++) {
 		m = tx_pkts[i];
@@ -3695,9 +3692,7 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 			return i;
 		}

-		/* check the data_len in mbuf */
-		if (m->data_len < ICE_TX_MIN_PKT_LEN ||
-			m->data_len > max_frame_size) {
+		if (m->pkt_len < ICE_TX_MIN_PKT_LEN) {
 			rte_errno = EINVAL;
 			return i;
 		}
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.861675000 +0800
+++ 0095-net-ice-fix-TSO-with-big-segments.patch	2023-10-22 22:17:34.366723700 +0800
@@ -1 +1 @@
-From d7b35f53cadd6f228b3787f8dceca5481c034740 Mon Sep 17 00:00:00 2001
+From a7ff0ba143d6bc0d12c4f158a59bd94a44e2a508 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d7b35f53cadd6f228b3787f8dceca5481c034740 ]
@@ -19 +21,0 @@
-Cc: stable@dpdk.org
@@ -28 +30 @@
-index d5513e9e93..ee9cb7b955 100644
+index dc07a73b66..31434f0ee5 100644
@@ -31 +33 @@
-@@ -3685,9 +3685,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3676,9 +3676,6 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -41 +43 @@
-@@ -3704,9 +3701,7 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3695,9 +3692,7 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/axgbe: identify CPU with cpuid' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (94 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/ice: fix TSO with big segments' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/ark: support single function with multiple port' " Xueming Li
                   ` (45 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Selwin Sebastian; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=b796460bce754d25377a4e8b3a52c0d0ad7d47c4

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b796460bce754d25377a4e8b3a52c0d0ad7d47c4 Mon Sep 17 00:00:00 2001
From: Selwin Sebastian <selwin.sebastian@amd.com>
Date: Wed, 4 Oct 2023 15:37:54 +0530
Subject: [PATCH] net/axgbe: identify CPU with cpuid
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a27ff9cac18cdc5800d8b1c181ddf2a8c92aaac2 ]

Using root complex to identify CPU will not work for VM passthrough.
cpuid is used to get family and model id to identify CPU.

Fixes: b0db927b5eba ("net/axgbe: use PCI root complex device to distinguish device")

Signed-off-by: Selwin Sebastian <selwin.sebastian@amd.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/axgbe/axgbe_ethdev.c | 106 ++++++++++++++++++-------------
 1 file changed, 63 insertions(+), 43 deletions(-)

diff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_ethdev.c
index b071e4e460..da48a3ac42 100644
--- a/drivers/net/axgbe/axgbe_ethdev.c
+++ b/drivers/net/axgbe/axgbe_ethdev.c
@@ -12,6 +12,12 @@

 #include "eal_filesystem.h"

+#ifdef RTE_ARCH_X86
+#include <cpuid.h>
+#else
+#define __cpuid(n, a, b, c, d)
+#endif
+
 static int eth_axgbe_dev_init(struct rte_eth_dev *eth_dev);
 static int  axgbe_dev_configure(struct rte_eth_dev *dev);
 static int  axgbe_dev_start(struct rte_eth_dev *dev);
@@ -172,9 +178,14 @@ static const struct axgbe_xstats axgbe_xstats_strings[] = {

 /* The set of PCI devices this driver supports */
 #define AMD_PCI_VENDOR_ID       0x1022
-#define AMD_PCI_RV_ROOT_COMPLEX_ID	0x15d0
-#define AMD_PCI_YC_ROOT_COMPLEX_ID	0x14b5
-#define AMD_PCI_SNOWY_ROOT_COMPLEX_ID	0x1450
+
+#define	Fam17h	0x17
+#define	Fam19h	0x19
+
+#define	CPUID_VENDOR_AuthenticAMD_ebx	0x68747541
+#define	CPUID_VENDOR_AuthenticAMD_ecx	0x444d4163
+#define	CPUID_VENDOR_AuthenticAMD_edx	0x69746e65
+
 #define AMD_PCI_AXGBE_DEVICE_V2A 0x1458
 #define AMD_PCI_AXGBE_DEVICE_V2B 0x1459

@@ -2122,29 +2133,6 @@ static void axgbe_default_config(struct axgbe_port *pdata)
 	pdata->power_down = 0;
 }

-/*
- * Return PCI root complex device id on success else 0
- */
-static uint16_t
-get_pci_rc_devid(void)
-{
-	char pci_sysfs[PATH_MAX];
-	const struct rte_pci_addr pci_rc_addr = {0, 0, 0, 0};
-	unsigned long device_id;
-
-	snprintf(pci_sysfs, sizeof(pci_sysfs), "%s/" PCI_PRI_FMT "/device",
-		 rte_pci_get_sysfs_path(), pci_rc_addr.domain,
-		 pci_rc_addr.bus, pci_rc_addr.devid, pci_rc_addr.function);
-
-	/* get device id */
-	if (eal_parse_sysfs_value(pci_sysfs, &device_id) < 0) {
-		PMD_INIT_LOG(ERR, "Error in reading PCI sysfs\n");
-		return 0;
-	}
-
-	return (uint16_t)device_id;
-}
-
 /*
  * It returns 0 on success.
  */
@@ -2158,6 +2146,9 @@ eth_axgbe_dev_init(struct rte_eth_dev *eth_dev)
 	uint32_t len;
 	int ret;

+	unsigned int eax = 0, ebx = 0, ecx = 0, edx = 0;
+	unsigned char cpu_family = 0, cpu_model = 0;
+
 	eth_dev->dev_ops = &axgbe_eth_dev_ops;

 	eth_dev->rx_descriptor_status = axgbe_dev_rx_descriptor_status;
@@ -2196,26 +2187,55 @@ eth_axgbe_dev_init(struct rte_eth_dev *eth_dev)
 		pdata->vdata = &axgbe_v2b;

 	/*
-	 * Use PCI root complex device ID to identify the CPU
+	 * Use CPUID to get Family and model ID to identify the CPU
 	 */
-	switch (get_pci_rc_devid()) {
-	case AMD_PCI_RV_ROOT_COMPLEX_ID:
-		pdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;
-		pdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;
-		break;
-	case AMD_PCI_YC_ROOT_COMPLEX_ID:
-		pdata->xpcs_window_def_reg = PCS_V2_YC_WINDOW_DEF;
-		pdata->xpcs_window_sel_reg = PCS_V2_YC_WINDOW_SELECT;
-		/* Yellow Carp devices do not need cdr workaround */
-		pdata->vdata->an_cdr_workaround = 0;
+	__cpuid(0x0, eax, ebx, ecx, edx);
+
+	if (ebx == CPUID_VENDOR_AuthenticAMD_ebx &&
+		edx == CPUID_VENDOR_AuthenticAMD_edx &&
+		ecx == CPUID_VENDOR_AuthenticAMD_ecx) {
+		int unknown_cpu = 0;
+		eax = 0, ebx = 0, ecx = 0, edx = 0;
+
+		__cpuid(0x1, eax, ebx, ecx, edx);
+
+		cpu_family = ((GET_BITS(eax, 8, 4)) + (GET_BITS(eax, 20, 8)));
+		cpu_model = ((GET_BITS(eax, 4, 4)) | (((GET_BITS(eax, 16, 4)) << 4) & 0xF0));
+
+		switch (cpu_family) {
+		case Fam17h:
+		/* V1000/R1000 */
+		if (cpu_model >= 0x10 && cpu_model <= 0x1F) {
+			pdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;
+			pdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;
+		/* EPYC 3000 */
+		} else if (cpu_model >= 0x01 && cpu_model <= 0x0F) {
+			pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
+			pdata->xpcs_window_sel_reg = PCS_V2_WINDOW_SELECT;
+		} else {
+			unknown_cpu = 1;
+		}
 		break;
-	case AMD_PCI_SNOWY_ROOT_COMPLEX_ID:
-		pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
-		pdata->xpcs_window_sel_reg = PCS_V2_WINDOW_SELECT;
+		case Fam19h:
+		/* V3000 (Yellow Carp) */
+		if (cpu_model >= 0x44 && cpu_model <= 0x47) {
+			pdata->xpcs_window_def_reg = PCS_V2_YC_WINDOW_DEF;
+			pdata->xpcs_window_sel_reg = PCS_V2_YC_WINDOW_SELECT;
+
+			/* Yellow Carp devices do not need cdr workaround */
+			pdata->vdata->an_cdr_workaround = 0;
+		} else {
+			unknown_cpu = 1;
+		}
 		break;
-	default:
-		PMD_DRV_LOG(ERR, "No supported devices found\n");
-		return -ENODEV;
+		default:
+			unknown_cpu = 1;
+			break;
+		}
+		if (unknown_cpu) {
+			PMD_DRV_LOG(ERR, "Unknown CPU family, no supported axgbe device found\n");
+			return -ENODEV;
+		}
 	}

 	/* Configure the PCS indirect addressing support */
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.900686300 +0800
+++ 0096-net-axgbe-identify-CPU-with-cpuid.patch	2023-10-22 22:17:34.366723700 +0800
@@ -1 +1 @@
-From a27ff9cac18cdc5800d8b1c181ddf2a8c92aaac2 Mon Sep 17 00:00:00 2001
+From b796460bce754d25377a4e8b3a52c0d0ad7d47c4 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a27ff9cac18cdc5800d8b1c181ddf2a8c92aaac2 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 48714eebe6..d08ea4893c 100644
+index b071e4e460..da48a3ac42 100644
@@ -53 +55 @@
-@@ -2111,29 +2122,6 @@ static void axgbe_default_config(struct axgbe_port *pdata)
+@@ -2122,29 +2133,6 @@ static void axgbe_default_config(struct axgbe_port *pdata)
@@ -80,2 +82,2 @@
- /* Used in dev_start by primary process and then
-  * in dev_init by secondary process when attaching to an existing ethdev.
+ /*
+  * It returns 0 on success.
@@ -83 +85 @@
-@@ -2186,6 +2174,9 @@ eth_axgbe_dev_init(struct rte_eth_dev *eth_dev)
+@@ -2158,6 +2146,9 @@ eth_axgbe_dev_init(struct rte_eth_dev *eth_dev)
@@ -93 +95 @@
-@@ -2230,26 +2221,55 @@ eth_axgbe_dev_init(struct rte_eth_dev *eth_dev)
+@@ -2196,26 +2187,55 @@ eth_axgbe_dev_init(struct rte_eth_dev *eth_dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ark: support single function with multiple port' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (95 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/axgbe: identify CPU with cpuid' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/nfp: fix initialization of physical representors' " Xueming Li
                   ` (44 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Ed Czeck; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e054f121ef867aa4c96659f6b57ed3513a6dc48c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e054f121ef867aa4c96659f6b57ed3513a6dc48c Mon Sep 17 00:00:00 2001
From: Ed Czeck <ed.czeck@atomicrules.com>
Date: Tue, 10 Oct 2023 16:42:05 -0400
Subject: [PATCH] net/ark: support single function with multiple port
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit bf73ee28f47b1df65407ab324bc9d3452aea90c2 ]

Support the creation of multiple ports from one ark device via
the use of ark pmd extension.  I.e., one device with q queue can
seen a p ports each with q/p queues.

Add unique dev_private data for each port to manage queue assignment.

This patch repairs a latent issue uncovered during testing.

Fixes: 6799275eeea6 ("net/ark: support virtual functions")

Signed-off-by: Ed Czeck <ed.czeck@atomicrules.com>
---
 drivers/net/ark/ark_ethdev.c    | 15 ++++++++++++++-
 drivers/net/ark/ark_ethdev_rx.c |  6 +++---
 drivers/net/ark/ark_ethdev_tx.c |  2 +-
 drivers/net/ark/ark_global.h    |  3 +++
 4 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c
index c654a229f7..c1681e8ecd 100644
--- a/drivers/net/ark/ark_ethdev.c
+++ b/drivers/net/ark/ark_ethdev.c
@@ -299,6 +299,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
 	int ret;
 	int port_count = 1;
 	int p;
+	uint16_t num_queues;
 	bool rqpacing = false;

 	ark->eth_dev = dev;
@@ -426,6 +427,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
 			ark->user_ext.dev_get_port_count(dev,
 				 ark->user_data[dev->data->port_id]);
 	ark->num_ports = port_count;
+	num_queues = ark_api_num_queues_per_port(ark->mpurx.v, port_count);

 	for (p = 0; p < port_count; p++) {
 		struct rte_eth_dev *eth_dev;
@@ -451,7 +453,18 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
 		}

 		eth_dev->device = &pci_dev->device;
-		eth_dev->data->dev_private = ark;
+		/* Device requires new dev_private data */
+		eth_dev->data->dev_private =
+			rte_zmalloc_socket(name,
+					   sizeof(struct ark_adapter),
+					   RTE_CACHE_LINE_SIZE,
+					   rte_socket_id());
+
+		memcpy(eth_dev->data->dev_private, ark,
+		       sizeof(struct ark_adapter));
+		ark = eth_dev->data->dev_private;
+		ark->qbase = p * num_queues;
+
 		eth_dev->dev_ops = ark->eth_dev->dev_ops;
 		eth_dev->tx_pkt_burst = ark->eth_dev->tx_pkt_burst;
 		eth_dev->rx_pkt_burst = ark->eth_dev->rx_pkt_burst;
diff --git a/drivers/net/ark/ark_ethdev_rx.c b/drivers/net/ark/ark_ethdev_rx.c
index cbc0416bc2..38bc69dff4 100644
--- a/drivers/net/ark/ark_ethdev_rx.c
+++ b/drivers/net/ark/ark_ethdev_rx.c
@@ -68,7 +68,7 @@ struct ark_rx_queue {
 static int
 eth_ark_rx_hw_setup(struct rte_eth_dev *dev,
 		    struct ark_rx_queue *queue,
-		    uint16_t rx_queue_id __rte_unused, uint16_t rx_queue_idx)
+		    uint16_t rx_queue_idx)
 {
 	rte_iova_t queue_base;
 	rte_iova_t phys_addr_q_base;
@@ -124,7 +124,7 @@ eth_ark_dev_rx_queue_setup(struct rte_eth_dev *dev,
 	uint32_t i;
 	int status;

-	int qidx = queue_idx;
+	int qidx = ark->qbase + queue_idx;

 	/* We may already be setup, free memory prior to re-allocation */
 	if (dev->data->rx_queues[queue_idx] != NULL) {
@@ -215,7 +215,7 @@ eth_ark_dev_rx_queue_setup(struct rte_eth_dev *dev,
 	}
 	/* MPU Setup */
 	if (status == 0)
-		status = eth_ark_rx_hw_setup(dev, queue, qidx, queue_idx);
+		status = eth_ark_rx_hw_setup(dev, queue, queue_idx);

 	if (unlikely(status != 0)) {
 		struct rte_mbuf **mbuf;
diff --git a/drivers/net/ark/ark_ethdev_tx.c b/drivers/net/ark/ark_ethdev_tx.c
index 5940a592a2..4792754f19 100644
--- a/drivers/net/ark/ark_ethdev_tx.c
+++ b/drivers/net/ark/ark_ethdev_tx.c
@@ -229,7 +229,7 @@ eth_ark_tx_queue_setup(struct rte_eth_dev *dev,
 	struct ark_tx_queue *queue;
 	int status;

-	int qidx = queue_idx;
+	int qidx = ark->qbase + queue_idx;

 	if (!rte_is_power_of_2(nb_desc)) {
 		ARK_PMD_LOG(ERR,
diff --git a/drivers/net/ark/ark_global.h b/drivers/net/ark/ark_global.h
index 71d0b53e03..2f198edfe4 100644
--- a/drivers/net/ark/ark_global.h
+++ b/drivers/net/ark/ark_global.h
@@ -112,7 +112,10 @@ struct ark_adapter {
 	ark_pkt_chkr_t pc;
 	ark_pkt_dir_t pd;

+	/* For single function, multiple ports */
 	int num_ports;
+	uint16_t qbase;
+
 	bool isvf;

 	/* Packet generator/checker args */
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.939693100 +0800
+++ 0097-net-ark-support-single-function-with-multiple-port.patch	2023-10-22 22:17:34.366723700 +0800
@@ -1 +1 @@
-From bf73ee28f47b1df65407ab324bc9d3452aea90c2 Mon Sep 17 00:00:00 2001
+From e054f121ef867aa4c96659f6b57ed3513a6dc48c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit bf73ee28f47b1df65407ab324bc9d3452aea90c2 ]
@@ -25 +28 @@
-index 3ddcc9b461..90d3c8abe6 100644
+index c654a229f7..c1681e8ecd 100644
@@ -28 +31 @@
-@@ -300,6 +300,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
+@@ -299,6 +299,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
@@ -36 +39 @@
-@@ -427,6 +428,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
+@@ -426,6 +427,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
@@ -44 +47 @@
-@@ -452,7 +454,18 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
+@@ -451,7 +453,18 @@ eth_ark_dev_init(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/nfp: fix initialization of physical representors' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (96 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/ark: support single function with multiple port' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/mlx5: fix leak in sysfs port name translation' " Xueming Li
                   ` (43 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Zerun Fu; +Cc: Long Wu, Peng Zhang, Chaoyong He, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=06cd13b57e238c55ad359ea171040b2564351722

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 06cd13b57e238c55ad359ea171040b2564351722 Mon Sep 17 00:00:00 2001
From: Zerun Fu <zerun.fu@corigine.com>
Date: Tue, 10 Oct 2023 14:03:12 +0800
Subject: [PATCH] net/nfp: fix initialization of physical representors
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit ae23bfd0291a40222ec2acb802d519ac4d61cb7c ]

The former logic of initializing the array of physical port
representors is according to 'nfp_idx', but referencing based
on 'port_id'. This is a potential bug and will cause segment
fault when these two values are not equal. Fix it by using the
'port_id' as index at all time.

Fixes: e1124c4f8a45 ("net/nfp: add flower representor framework")

Signed-off-by: Zerun Fu <zerun.fu@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
---
 drivers/net/nfp/flower/nfp_flower_representor.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c
index d319aefb08..b9f2f631ff 100644
--- a/drivers/net/nfp/flower/nfp_flower_representor.c
+++ b/drivers/net/nfp/flower/nfp_flower_representor.c
@@ -637,6 +637,7 @@ nfp_flower_repr_init(struct rte_eth_dev *eth_dev,
 		void *init_params)
 {
 	int ret;
+	uint16_t index;
 	unsigned int numa_node;
 	char ring_name[RTE_ETH_NAME_MAX_LEN];
 	struct nfp_app_fw_flower *app_fw_flower;
@@ -710,10 +711,13 @@ nfp_flower_repr_init(struct rte_eth_dev *eth_dev,
 	}

 	/* Add repr to correct array */
-	if (repr->repr_type == NFP_REPR_TYPE_PHYS_PORT)
-		app_fw_flower->phy_reprs[repr->nfp_idx] = repr;
-	else
-		app_fw_flower->vf_reprs[repr->vf_id] = repr;
+	if (repr->repr_type == NFP_REPR_TYPE_PHYS_PORT) {
+		index = NFP_FLOWER_CMSG_PORT_PHYS_PORT_NUM(repr->port_id);
+		app_fw_flower->phy_reprs[index] = repr;
+	} else {
+		index = repr->vf_id;
+		app_fw_flower->vf_reprs[index] = repr;
+	}

 	return 0;

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.972977700 +0800
+++ 0098-net-nfp-fix-initialization-of-physical-representors.patch	2023-10-22 22:17:34.366723700 +0800
@@ -1 +1 @@
-From ae23bfd0291a40222ec2acb802d519ac4d61cb7c Mon Sep 17 00:00:00 2001
+From 06cd13b57e238c55ad359ea171040b2564351722 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ae23bfd0291a40222ec2acb802d519ac4d61cb7c ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 55ca3e6db0..e4c5d765e7 100644
+index d319aefb08..b9f2f631ff 100644
@@ -27 +29 @@
-@@ -646,6 +646,7 @@ nfp_flower_repr_init(struct rte_eth_dev *eth_dev,
+@@ -637,6 +637,7 @@ nfp_flower_repr_init(struct rte_eth_dev *eth_dev,
@@ -35 +37 @@
-@@ -719,10 +720,13 @@ nfp_flower_repr_init(struct rte_eth_dev *eth_dev,
+@@ -710,10 +711,13 @@ nfp_flower_repr_init(struct rte_eth_dev *eth_dev,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix leak in sysfs port name translation' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (97 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/nfp: fix initialization of physical representors' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'common/mlx5: replace use of PMD log type' " Xueming Li
                   ` (42 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: David Marchand; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8115fe334542f8dba41a55f20aa20e08de71d20a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8115fe334542f8dba41a55f20aa20e08de71d20a Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Tue, 1 Aug 2023 17:18:31 +0200
Subject: [PATCH] net/mlx5: fix leak in sysfs port name translation
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 1296e8d0d0fe74646fbb0339969cf3946f1ce84d ]

getline() may allocate a buffer even though it returns -1:
"""
If  *lineptr  is set to NULL before the call, then getline() will allocate
a buffer for storing the line.  This buffer should be freed by the user
program even if getline() failed.
"""

This leak has been observed on a RHEL8 system with two CX5 PF devices
(no VFs).

ASan reports:
==8899==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 120 byte(s) in 1 object(s) allocated from:
    #0 0x7fe58576aba8 in __interceptor_malloc
	(/lib64/libasan.so.5+0xefba8)
    #1 0x7fe583e866b2 in __getdelim (/lib64/libc.so.6+0x886b2)
    #2 0x327bd23 in mlx5_sysfs_switch_info
	../drivers/net/mlx5/linux/mlx5_ethdev_os.c:1084
    #3 0x3271f86 in mlx5_os_pci_probe_pf
	../drivers/net/mlx5/linux/mlx5_os.c:2282
    #4 0x3273c83 in mlx5_os_pci_probe
	../drivers/net/mlx5/linux/mlx5_os.c:2497
    #5 0x327475f in mlx5_os_net_probe
	../drivers/net/mlx5/linux/mlx5_os.c:2578
    #6 0xc6eac7 in drivers_probe
	../drivers/common/mlx5/mlx5_common.c:937
    #7 0xc6f150 in mlx5_common_dev_probe
	../drivers/common/mlx5/mlx5_common.c:1027
    #8 0xc8ef80 in mlx5_common_pci_probe
	../drivers/common/mlx5/mlx5_common_pci.c:168
    #9 0xc21b67 in rte_pci_probe_one_driver
	../drivers/bus/pci/pci_common.c:312
    #10 0xc2224c in pci_probe_all_drivers
	../drivers/bus/pci/pci_common.c:396
    #11 0xc222f4 in pci_probe ../drivers/bus/pci/pci_common.c:423
    #12 0xb71fff in rte_bus_probe ../lib/eal/common/eal_common_bus.c:78
    #13 0xbe6888 in rte_eal_init ../lib/eal/linux/eal.c:1300
    #14 0x5ec717 in main ../app/test-pmd/testpmd.c:4515
    #15 0x7fe583e38d84 in __libc_start_main (/lib64/libc.so.6+0x3ad84)

As far as why getline() errors, strace gives a hint:
8516  openat(AT_FDCWD, "/sys/class/net/enp130s0f0/phys_port_name",
	O_RDONLY) = 34
8516  fstat(34, {st_mode=S_IFREG|0444, st_size=4096, ...}) = 0
8516  read(34, 0x621000098900, 4096)    = -1 EOPNOTSUPP (Operation
	not supported)

Fixes: f8a226ed65fa ("net/mlx5: fix sysfs port name translation")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/linux/mlx5_ethdev_os.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c b/drivers/net/mlx5/linux/mlx5_ethdev_os.c
index 639e629fe4..dd5a0c546d 100644
--- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c
+++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c
@@ -1083,6 +1083,7 @@ mlx5_sysfs_switch_info(unsigned int ifindex, struct mlx5_switch_info *info)

 		line_size = getline(&port_name, &port_name_size, file);
 		if (line_size < 0) {
+			free(port_name);
 			fclose(file);
 			rte_errno = errno;
 			return -rte_errno;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.002026700 +0800
+++ 0099-net-mlx5-fix-leak-in-sysfs-port-name-translation.patch	2023-10-22 22:17:34.366723700 +0800
@@ -1 +1 @@
-From 1296e8d0d0fe74646fbb0339969cf3946f1ce84d Mon Sep 17 00:00:00 2001
+From 8115fe334542f8dba41a55f20aa20e08de71d20a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1296e8d0d0fe74646fbb0339969cf3946f1ce84d ]
@@ -55 +57,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/mlx5: replace use of PMD log type' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (98 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/mlx5: fix leak in sysfs port name translation' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/mlx5: fix jump ipool entry size' " Xueming Li
                   ` (41 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Tyler Retzlaff, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=62a937220c125aa1b0cb40cfbb6a6e058ed0975e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 62a937220c125aa1b0cb40cfbb6a6e058ed0975e Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 21 Aug 2023 09:16:25 -0700
Subject: [PATCH] common/mlx5: replace use of PMD log type
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 8c3a4688cca2b3179c6fea6f724e21848cacc80b ]

The goal to eliminate the generic PMD logtype.
One place it is used unnecessarily is in the mlx5 common code.
Change the one RTE_LOG() call here to use the same macro
as other log messages in same file.

Fixes: 9c410b28b27a ("common/mlx5: refactor HCA attributes query")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
 drivers/common/mlx5/linux/mlx5_common_os.c | 2 +-
 drivers/common/mlx5/mlx5_devx_cmds.c       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/common/mlx5/linux/mlx5_common_os.c b/drivers/common/mlx5/linux/mlx5_common_os.c
index 2ebb8ac8b6..7260c1a19f 100644
--- a/drivers/common/mlx5/linux/mlx5_common_os.c
+++ b/drivers/common/mlx5/linux/mlx5_common_os.c
@@ -266,7 +266,7 @@ mlx5_glue_path(char *buf, size_t size)
 		goto error;
 	return buf;
 error:
-	RTE_LOG(ERR, PMD, "unable to append \"-glue\" to last component of"
+	DRV_LOG(ERR, "unable to append \"-glue\" to last component of"
 		" RTE_EAL_PMD_PATH (\"" RTE_EAL_PMD_PATH "\"), please"
 		" re-configure DPDK");
 	return NULL;
diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c
index 5742f9e831..5ae2627caa 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.c
+++ b/drivers/common/mlx5/mlx5_devx_cmds.c
@@ -543,7 +543,7 @@ mlx5_devx_cmd_query_hca_vdpa_attr(void *ctx,
 			MLX5_GET_HCA_CAP_OP_MOD_VDPA_EMULATION |
 			MLX5_HCA_CAP_OPMOD_GET_CUR);
 	if (!hcattr) {
-		RTE_LOG(DEBUG, PMD, "Failed to query devx VDPA capabilities");
+		DRV_LOG(DEBUG, "Failed to query devx VDPA capabilities");
 		vdpa_attr->valid = 0;
 	} else {
 		vdpa_attr->valid = 1;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.031556300 +0800
+++ 0100-common-mlx5-replace-use-of-PMD-log-type.patch	2023-10-22 22:17:34.366723700 +0800
@@ -1 +1 @@
-From 8c3a4688cca2b3179c6fea6f724e21848cacc80b Mon Sep 17 00:00:00 2001
+From 62a937220c125aa1b0cb40cfbb6a6e058ed0975e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 8c3a4688cca2b3179c6fea6f724e21848cacc80b ]
@@ -34 +37 @@
-index 66a77159a0..9db0b2ac89 100644
+index 5742f9e831..5ae2627caa 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix jump ipool entry size' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (99 preceding siblings ...)
  2023-10-22 14:22 ` patch 'common/mlx5: replace use of PMD log type' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/mlx5/hws: fix field copy bind' " Xueming Li
                   ` (40 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Suanming Mou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=1c9bab50cca4023aad3f12dfab27a39b5f72fdba

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 1c9bab50cca4023aad3f12dfab27a39b5f72fdba Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Fri, 25 Aug 2023 21:43:30 +0300
Subject: [PATCH] net/mlx5: fix jump ipool entry size
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 015a3e811148e9135fba20e5b679989520ab56f6 ]

In mlx5 PMD, MLX5_IPOOL_JUMP ipool configuration is used to initialize
the ipool containing either:

- flow table entry when DV flow engine is chosen or,
- group table entry when HW steering flow engine is chosen.

Default configuration for MLX5_IPOOL_JUMP ipool specified entry size as
size of mlx5_flow_tbl_data_entry struct, used with DV flow engine.
This could lead to memory corruption when mlx5_flow_group struct
(used with HW steering flow engine) would have bigger size than
mlx5_flow_tbl_data_entry.

This patch fixes that. Entry size for MLX5_IPOOL_JUMP ipool is chosen
dynamically based on device configuration.

Fixes: d1559d66ed2d ("net/mlx5: add table management")

Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
 drivers/net/mlx5/mlx5.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index 8250c94803..f787ae91fe 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -241,7 +241,12 @@ static const struct mlx5_indexed_pool_config mlx5_ipool_cfg[] = {
 		.type = "mlx5_port_id_ipool",
 	},
 	[MLX5_IPOOL_JUMP] = {
-		.size = sizeof(struct mlx5_flow_tbl_data_entry),
+		/*
+		 * MLX5_IPOOL_JUMP ipool entry size depends on selected flow engine.
+		 * When HW steering is enabled mlx5_flow_group struct is used.
+		 * Otherwise mlx5_flow_tbl_data_entry struct is used.
+		 */
+		.size = 0,
 		.trunk_size = 64,
 		.grow_trunk = 3,
 		.grow_shift = 2,
@@ -902,6 +907,14 @@ mlx5_flow_ipool_create(struct mlx5_dev_ctx_shared *sh)
 				sizeof(struct mlx5_flow_handle) :
 				MLX5_FLOW_HANDLE_VERBS_SIZE;
 			break;
+#if defined(HAVE_IBV_FLOW_DV_SUPPORT) || !defined(HAVE_INFINIBAND_VERBS_H)
+		/* Set MLX5_IPOOL_JUMP ipool entry size depending on selected flow engine. */
+		case MLX5_IPOOL_JUMP:
+			cfg.size = sh->config.dv_flow_en == 2 ?
+				sizeof(struct mlx5_flow_group) :
+				sizeof(struct mlx5_flow_tbl_data_entry);
+			break;
+#endif
 		}
 		if (sh->config.reclaim_mode) {
 			cfg.release_mem_en = 1;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.064060900 +0800
+++ 0101-net-mlx5-fix-jump-ipool-entry-size.patch	2023-10-22 22:17:34.376723700 +0800
@@ -1 +1 @@
-From 015a3e811148e9135fba20e5b679989520ab56f6 Mon Sep 17 00:00:00 2001
+From 1c9bab50cca4023aad3f12dfab27a39b5f72fdba Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 015a3e811148e9135fba20e5b679989520ab56f6 ]
@@ -22 +24,0 @@
-Cc: stable@dpdk.org
@@ -31 +33 @@
-index 6d05de114e..997df595d0 100644
+index 8250c94803..f787ae91fe 100644
@@ -48 +50 @@
-@@ -904,6 +909,14 @@ mlx5_flow_ipool_create(struct mlx5_dev_ctx_shared *sh)
+@@ -902,6 +907,14 @@ mlx5_flow_ipool_create(struct mlx5_dev_ctx_shared *sh)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5/hws: fix field copy bind' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (100 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/mlx5: fix jump ipool entry size' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'fib: fix adding default route overwriting entire table' " Xueming Li
                   ` (39 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Alex Vesker; +Cc: Erez Shitrit, Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=461a81717f5d82967baf371f6d1c8be06480a405

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 461a81717f5d82967baf371f6d1c8be06480a405 Mon Sep 17 00:00:00 2001
From: Alex Vesker <valex@nvidia.com>
Date: Mon, 18 Sep 2023 15:07:05 +0300
Subject: [PATCH] net/mlx5/hws: fix field copy bind
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 1e6cb8f290b65d27c94e0caf108d6c35c30fe42b ]

Fix an issue with binding for unused DW selectors,
these selectors are set to zero but zero is also
a valid value used for DMAC_47_16.

Fixes: c55c2bf35333 ("net/mlx5/hws: add definer layer")

Signed-off-by: Alex Vesker <valex@nvidia.com>
Reviewed-by: Erez Shitrit <erezsh@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/net/mlx5/hws/mlx5dr_definer.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c
index e61ca7b9b9..24bab9518b 100644
--- a/drivers/net/mlx5/hws/mlx5dr_definer.c
+++ b/drivers/net/mlx5/hws/mlx5dr_definer.c
@@ -1635,11 +1635,15 @@ mlx5dr_definer_find_byte_in_tag(struct mlx5dr_definer *definer,
 				uint32_t *tag_byte_off)
 {
 	uint8_t byte_offset;
-	int i;
+	int i, dw_to_scan;
+
+	/* Avoid accessing unused DW selectors */
+	dw_to_scan = mlx5dr_definer_is_jumbo(definer) ?
+		DW_SELECTORS : DW_SELECTORS_MATCH;

 	/* Add offset since each DW covers multiple BYTEs */
 	byte_offset = hl_byte_off % DW_SIZE;
-	for (i = 0; i < DW_SELECTORS; i++) {
+	for (i = 0; i < dw_to_scan; i++) {
 		if (definer->dw_selector[i] == hl_byte_off / DW_SIZE) {
 			*tag_byte_off = byte_offset + DW_SIZE * (DW_SELECTORS - i - 1);
 			return 0;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.093477900 +0800
+++ 0102-net-mlx5-hws-fix-field-copy-bind.patch	2023-10-22 22:17:34.376723700 +0800
@@ -1 +1 @@
-From 1e6cb8f290b65d27c94e0caf108d6c35c30fe42b Mon Sep 17 00:00:00 2001
+From 461a81717f5d82967baf371f6d1c8be06480a405 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1e6cb8f290b65d27c94e0caf108d6c35c30fe42b ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 68ba906ba1..95b5d4b70e 100644
+index e61ca7b9b9..24bab9518b 100644
@@ -24 +26 @@
-@@ -2364,11 +2364,15 @@ mlx5dr_definer_find_byte_in_tag(struct mlx5dr_definer *definer,
+@@ -1635,11 +1635,15 @@ mlx5dr_definer_find_byte_in_tag(struct mlx5dr_definer *definer,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'fib: fix adding default route overwriting entire table' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (101 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/mlx5/hws: fix field copy bind' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'fib6: fix adding default route as first route' " Xueming Li
                   ` (38 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Vladimir Medvedkin; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e4649e8d7857f6e9cbd3347b801c7f54246a082c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e4649e8d7857f6e9cbd3347b801c7f54246a082c Mon Sep 17 00:00:00 2001
From: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Date: Mon, 2 Oct 2023 15:11:48 +0000
Subject: [PATCH] fib: fix adding default route overwriting entire table
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit ab1b927cd73e96643cfe93dc2493d03c737b59ae ]

When FIB contains any route covering last IP address
(255.255.255.255), upon adding a new default route
the entire FIB table will be overwritten with corresponding
default route next hop.

Previous fix added check for ledge against 0 for case
if default route is added as a first route, however
this check was also erroneously triggered in case when
ledge was wrapped around the address space
(this would happen if FIB contains any route covering
last possible address - 255.255.255.255).

This fix prevents wrap around from happening.

Fixes: 880bc2b5f3bd ("fib: fix adding default route")

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
---
 lib/fib/dir24_8.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/fib/dir24_8.c b/lib/fib/dir24_8.c
index 3efdcb533c..5f73b8a7f0 100644
--- a/lib/fib/dir24_8.c
+++ b/lib/fib/dir24_8.c
@@ -388,6 +388,12 @@ modify_fib(struct dir24_8_tbl *dp, struct rte_rib *rib, uint32_t ip,
 				return ret;
 			ledge = redge +
 				(uint32_t)(1ULL << (32 - tmp_depth));
+			/*
+			 * we got to the end of address space
+			 * and wrapped around
+			 */
+			if (ledge == 0)
+				break;
 		} else {
 			redge = ip + (uint32_t)(1ULL << (32 - depth));
 			if (ledge == redge && ledge != 0)
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.126017500 +0800
+++ 0103-fib-fix-adding-default-route-overwriting-entire-tabl.patch	2023-10-22 22:17:34.376723700 +0800
@@ -1 +1 @@
-From ab1b927cd73e96643cfe93dc2493d03c737b59ae Mon Sep 17 00:00:00 2001
+From e4649e8d7857f6e9cbd3347b801c7f54246a082c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ab1b927cd73e96643cfe93dc2493d03c737b59ae ]
@@ -21 +23,0 @@
-Cc: stable@dpdk.org
@@ -29 +31 @@
-index a61897667b..c739e92304 100644
+index 3efdcb533c..5f73b8a7f0 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'fib6: fix adding default route as first route' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (102 preceding siblings ...)
  2023-10-22 14:22 ` patch 'fib: fix adding default route overwriting entire table' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/mana: add missing new line to data path logs' " Xueming Li
                   ` (37 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Vladimir Medvedkin; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=c6b2c85ca46d331f2eb448ab58b212d233726086

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c6b2c85ca46d331f2eb448ab58b212d233726086 Mon Sep 17 00:00:00 2001
From: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Date: Mon, 2 Oct 2023 15:12:01 +0000
Subject: [PATCH] fib6: fix adding default route as first route
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit fd66617c5774a2869cbb69f86494d1b4803890fc ]

Currently when adding default route as first route
it is not added and no error is reported.
When we enter the loop over an address range in
the general case we will eventually reach the check
for when the range has ended, and exit the loop.
However when adding default route as first route,
since address range covered begins and ends at zero
this also triggers loop exit without writing to the table.

Fixed by adding check for default route,
i.e. both ledge and redge are equal to 0::0.

Bugzilla ID: 1272
Fixes: c3e12e0f0354 ("fib: add dataplane algorithm for IPv6")

Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
---
 lib/fib/trie.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/lib/fib/trie.c b/lib/fib/trie.c
index 3e780afdaf..09470e7287 100644
--- a/lib/fib/trie.c
+++ b/lib/fib/trie.c
@@ -451,6 +451,14 @@ get_nxt_net(uint8_t *ip, uint8_t depth)
 	}
 }

+static int
+v6_addr_is_zero(const uint8_t ip[RTE_FIB6_IPV6_ADDR_SIZE])
+{
+	uint8_t ip_addr[RTE_FIB6_IPV6_ADDR_SIZE] = {0};
+
+	return rte_rib6_is_equal(ip, ip_addr);
+}
+
 static int
 modify_dp(struct rte_trie_tbl *dp, struct rte_rib6 *rib,
 	const uint8_t ip[RTE_FIB6_IPV6_ADDR_SIZE],
@@ -484,11 +492,19 @@ modify_dp(struct rte_trie_tbl *dp, struct rte_rib6 *rib,
 				return ret;
 			get_nxt_net(redge, tmp_depth);
 			rte_rib6_copy_addr(ledge, redge);
+			/*
+			 * we got to the end of address space
+			 * and wrapped around
+			 */
+			if (v6_addr_is_zero(ledge))
+				break;
 		} else {
 			rte_rib6_copy_addr(redge, ip);
 			get_nxt_net(redge, depth);
-			if (rte_rib6_is_equal(ledge, redge))
+			if (rte_rib6_is_equal(ledge, redge) &&
+					!v6_addr_is_zero(ledge))
 				break;
+
 			ret = install_to_dp(dp, ledge, redge,
 				next_hop);
 			if (ret != 0)
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.157739900 +0800
+++ 0104-fib6-fix-adding-default-route-as-first-route.patch	2023-10-22 22:17:34.376723700 +0800
@@ -1 +1 @@
-From fd66617c5774a2869cbb69f86494d1b4803890fc Mon Sep 17 00:00:00 2001
+From c6b2c85ca46d331f2eb448ab58b212d233726086 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit fd66617c5774a2869cbb69f86494d1b4803890fc ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mana: add missing new line to data path logs' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (103 preceding siblings ...)
  2023-10-22 14:22 ` patch 'fib6: fix adding default route as first route' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/af_packet: fix Rx and Tx queue state' " Xueming Li
                   ` (36 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Long Li; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=a8fd5060ac766daf159e1d42bea52a4191c36e5e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a8fd5060ac766daf159e1d42bea52a4191c36e5e Mon Sep 17 00:00:00 2001
From: Long Li <longli@microsoft.com>
Date: Fri, 13 Oct 2023 13:37:21 -0700
Subject: [PATCH] net/mana: add missing new line to data path logs
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit ee15bf9db2fb70d81d9c4b8f25622def7989b552 ]

Add a missing "\n" to DP logs. This makes the logs correctly formatted.

Fixes: e2d3a3c060c4 ("net/mana: use datapath logging")

Signed-off-by: Long Li <longli@microsoft.com>
---
 drivers/net/mana/mana.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mana/mana.h b/drivers/net/mana/mana.h
index cd877afcf9..f70a3e0b3d 100644
--- a/drivers/net/mana/mana.h
+++ b/drivers/net/mana/mana.h
@@ -462,7 +462,7 @@ extern int mana_logtype_init;
 		__func__, ## args)

 #define DP_LOG(level, fmt, args...) \
-	RTE_LOG_DP(level, PMD, fmt, ## args)
+	RTE_LOG_DP(level, PMD, fmt "\n", ## args)

 #define PMD_INIT_LOG(level, fmt, args...) \
 	rte_log(RTE_LOG_ ## level, mana_logtype_init, "%s(): " fmt "\n",\
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.184668400 +0800
+++ 0105-net-mana-add-missing-new-line-to-data-path-logs.patch	2023-10-22 22:17:34.376723700 +0800
@@ -1 +1 @@
-From ee15bf9db2fb70d81d9c4b8f25622def7989b552 Mon Sep 17 00:00:00 2001
+From a8fd5060ac766daf159e1d42bea52a4191c36e5e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ee15bf9db2fb70d81d9c4b8f25622def7989b552 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -17 +19 @@
-index 9bff90ab77..6836872dc2 100644
+index cd877afcf9..f70a3e0b3d 100644
@@ -20 +22 @@
-@@ -467,7 +467,7 @@ extern int mana_logtype_init;
+@@ -462,7 +462,7 @@ extern int mana_logtype_init;

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/af_packet: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (104 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/mana: add missing new line to data path logs' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/af_xdp: " Xueming Li
                   ` (35 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=6c8f427c5705f33b77adec17a04fea52c82e72fc

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6c8f427c5705f33b77adec17a04fea52c82e72fc Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:27 +0800
Subject: [PATCH] net/af_packet: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a059e4632df46ab0ab10ffe4f0b78a3e23c69f9c ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/af_packet/rte_eth_af_packet.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
index c13a0942aa..397a32db58 100644
--- a/drivers/net/af_packet/rte_eth_af_packet.c
+++ b/drivers/net/af_packet/rte_eth_af_packet.c
@@ -313,7 +313,14 @@ eth_af_packet_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
 static int
 eth_dev_start(struct rte_eth_dev *dev)
 {
+	struct pmd_internals *internals = dev->data->dev_private;
+	uint16_t i;
+
 	dev->data->dev_link.link_status = RTE_ETH_LINK_UP;
+	for (i = 0; i < internals->nb_queues; i++) {
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	}
 	return 0;
 }

@@ -341,6 +348,8 @@ eth_dev_stop(struct rte_eth_dev *dev)

 		internals->rx_queue[i].sockfd = -1;
 		internals->tx_queue[i].sockfd = -1;
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 	}

 	dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.211946700 +0800
+++ 0106-net-af_packet-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.376723700 +0800
@@ -1 +1 @@
-From a059e4632df46ab0ab10ffe4f0b78a3e23c69f9c Mon Sep 17 00:00:00 2001
+From 6c8f427c5705f33b77adec17a04fea52c82e72fc Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a059e4632df46ab0ab10ffe4f0b78a3e23c69f9c ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/af_xdp: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (105 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/af_packet: fix Rx and Tx queue state' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/avp: " Xueming Li
                   ` (34 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=b4078f8a6b8bdc098df5dddf181a029510d42a14

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b4078f8a6b8bdc098df5dddf181a029510d42a14 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:28 +0800
Subject: [PATCH] net/af_xdp: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9a204f7e4e86d8270cae3cdec2b7949f5954fde2 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/af_xdp/rte_eth_af_xdp.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c
index b6ec9bf490..738f4158e0 100644
--- a/drivers/net/af_xdp/rte_eth_af_xdp.c
+++ b/drivers/net/af_xdp/rte_eth_af_xdp.c
@@ -672,7 +672,13 @@ eth_af_xdp_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
 static int
 eth_dev_start(struct rte_eth_dev *dev)
 {
+	uint16_t i;
+
 	dev->data->dev_link.link_status = RTE_ETH_LINK_UP;
+	for (i = 0; i < dev->data->nb_rx_queues; i++) {
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	}

 	return 0;
 }
@@ -681,7 +687,14 @@ eth_dev_start(struct rte_eth_dev *dev)
 static int
 eth_dev_stop(struct rte_eth_dev *dev)
 {
+	uint16_t i;
+
 	dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;
+	for (i = 0; i < dev->data->nb_rx_queues; i++) {
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	}
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.245087200 +0800
+++ 0107-net-af_xdp-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.376723700 +0800
@@ -1 +1 @@
-From 9a204f7e4e86d8270cae3cdec2b7949f5954fde2 Mon Sep 17 00:00:00 2001
+From b4078f8a6b8bdc098df5dddf181a029510d42a14 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9a204f7e4e86d8270cae3cdec2b7949f5954fde2 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index c7786cc53a..0cc51223ba 100644
+index b6ec9bf490..738f4158e0 100644
@@ -26 +28 @@
-@@ -694,7 +694,13 @@ eth_af_xdp_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
+@@ -672,7 +672,13 @@ eth_af_xdp_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
@@ -40 +42 @@
-@@ -703,7 +709,14 @@ eth_dev_start(struct rte_eth_dev *dev)
+@@ -681,7 +687,14 @@ eth_dev_start(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/avp: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (106 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/af_xdp: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/bnx2x: " Xueming Li
                   ` (33 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=c0001c91152c801090381d75831a43dcf3b24417

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c0001c91152c801090381d75831a43dcf3b24417 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:29 +0800
Subject: [PATCH] net/avp: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 68601507b43cc2441baaa172115034870ab618a6 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/avp/avp_ethdev.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c
index b2a08f5635..53d9e38c93 100644
--- a/drivers/net/avp/avp_ethdev.c
+++ b/drivers/net/avp/avp_ethdev.c
@@ -2036,6 +2036,7 @@ static int
 avp_dev_start(struct rte_eth_dev *eth_dev)
 {
 	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
+	uint16_t i;
 	int ret;

 	rte_spinlock_lock(&avp->lock);
@@ -2056,6 +2057,11 @@ avp_dev_start(struct rte_eth_dev *eth_dev)
 	/* remember current link state */
 	avp->flags |= AVP_F_LINKUP;

+	for (i = 0; i < avp->num_rx_queues; i++)
+		eth_dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < avp->num_tx_queues; i++)
+		eth_dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	ret = 0;

 unlock:
@@ -2067,6 +2073,7 @@ static int
 avp_dev_stop(struct rte_eth_dev *eth_dev)
 {
 	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
+	uint16_t i;
 	int ret;

 	rte_spinlock_lock(&avp->lock);
@@ -2086,6 +2093,11 @@ avp_dev_stop(struct rte_eth_dev *eth_dev)
 			    ret);
 	}

+	for (i = 0; i < avp->num_rx_queues; i++)
+		eth_dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < avp->num_tx_queues; i++)
+		eth_dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 unlock:
 	rte_spinlock_unlock(&avp->lock);
 	return ret;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.285007900 +0800
+++ 0108-net-avp-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.376723700 +0800
@@ -1 +1 @@
-From 68601507b43cc2441baaa172115034870ab618a6 Mon Sep 17 00:00:00 2001
+From c0001c91152c801090381d75831a43dcf3b24417 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 68601507b43cc2441baaa172115034870ab618a6 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/bnx2x: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (107 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/avp: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/bnxt: " Xueming Li
                   ` (32 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=ad55189740bb5f50337863c4edf1c1ea423af6a5

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ad55189740bb5f50337863c4edf1c1ea423af6a5 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:30 +0800
Subject: [PATCH] net/bnx2x: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3eaf4ba9372f1c5ffdbcbc8fa0ba86defe8d19a4 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/bnx2x/bnx2x_ethdev.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
index 4448cf2de2..1327cbe912 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -211,6 +211,7 @@ bnx2x_dev_start(struct rte_eth_dev *dev)
 {
 	struct bnx2x_softc *sc = dev->data->dev_private;
 	int ret = 0;
+	uint16_t i;

 	PMD_INIT_FUNC_TRACE(sc);

@@ -244,6 +245,11 @@ bnx2x_dev_start(struct rte_eth_dev *dev)

 	bnx2x_print_device_info(sc);

+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return ret;
 }

@@ -252,6 +258,7 @@ bnx2x_dev_stop(struct rte_eth_dev *dev)
 {
 	struct bnx2x_softc *sc = dev->data->dev_private;
 	int ret = 0;
+	uint16_t i;

 	PMD_INIT_FUNC_TRACE(sc);

@@ -277,6 +284,11 @@ bnx2x_dev_stop(struct rte_eth_dev *dev)
 		return ret;
 	}

+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.318471300 +0800
+++ 0109-net-bnx2x-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.386723700 +0800
@@ -1 +1 @@
-From 3eaf4ba9372f1c5ffdbcbc8fa0ba86defe8d19a4 Mon Sep 17 00:00:00 2001
+From ad55189740bb5f50337863c4edf1c1ea423af6a5 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3eaf4ba9372f1c5ffdbcbc8fa0ba86defe8d19a4 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/bnxt: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (108 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/bnx2x: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/bonding: " Xueming Li
                   ` (31 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=5f7598223970159d3a31ab5a16803c40d1353969

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 5f7598223970159d3a31ab5a16803c40d1353969 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:31 +0800
Subject: [PATCH] net/bnxt: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 4664c4ea4ae33efcdcc46b30ff20ecc8ced22021 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/bnxt/bnxt_ethdev.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 753e86b4b2..e3ba48ac0b 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -1482,6 +1482,7 @@ static int bnxt_dev_stop(struct rte_eth_dev *eth_dev)
 	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
 	struct rte_eth_link link;
+	uint16_t i;
 	int ret;

 	eth_dev->data->dev_started = 0;
@@ -1542,6 +1543,11 @@ static int bnxt_dev_stop(struct rte_eth_dev *eth_dev)

 	eth_dev->data->scattered_rx = 0;

+	for (i = 0; i < eth_dev->data->nb_rx_queues; i++)
+		eth_dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < eth_dev->data->nb_tx_queues; i++)
+		eth_dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.350473400 +0800
+++ 0110-net-bnxt-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.386723700 +0800
@@ -1 +1 @@
-From 4664c4ea4ae33efcdcc46b30ff20ecc8ced22021 Mon Sep 17 00:00:00 2001
+From 5f7598223970159d3a31ab5a16803c40d1353969 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4664c4ea4ae33efcdcc46b30ff20ecc8ced22021 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index ce21c4b1b0..5c4d96d4b1 100644
+index 753e86b4b2..e3ba48ac0b 100644
@@ -26 +28 @@
-@@ -1507,6 +1507,7 @@ static int bnxt_dev_stop(struct rte_eth_dev *eth_dev)
+@@ -1482,6 +1482,7 @@ static int bnxt_dev_stop(struct rte_eth_dev *eth_dev)
@@ -34 +36 @@
-@@ -1567,6 +1568,11 @@ static int bnxt_dev_stop(struct rte_eth_dev *eth_dev)
+@@ -1542,6 +1543,11 @@ static int bnxt_dev_stop(struct rte_eth_dev *eth_dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/bonding: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (109 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/bnxt: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/cxgbe: " Xueming Li
                   ` (30 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=50177d5bf1a1e0eff87639c7b8a1ac3a0f57c710

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 50177d5bf1a1e0eff87639c7b8a1ac3a0f57c710 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:32 +0800
Subject: [PATCH] net/bonding: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 419d3e33078e6f1772faf076a5f46bd9bf3443f2 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 8cd78ce1ed..bddc3fb8df 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -2089,6 +2089,11 @@ bond_ethdev_start(struct rte_eth_dev *eth_dev)
 			internals->mode == BONDING_MODE_ALB)
 		bond_tlb_enable(internals);

+	for (i = 0; i < eth_dev->data->nb_rx_queues; i++)
+		eth_dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < eth_dev->data->nb_tx_queues; i++)
+		eth_dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;

 out_err:
@@ -2174,6 +2179,11 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
 			deactivate_slave(eth_dev, slave_id);
 	}

+	for (i = 0; i < eth_dev->data->nb_rx_queues; i++)
+		eth_dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < eth_dev->data->nb_tx_queues; i++)
+		eth_dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.384646700 +0800
+++ 0111-net-bonding-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.386723700 +0800
@@ -1 +1 @@
-From 419d3e33078e6f1772faf076a5f46bd9bf3443f2 Mon Sep 17 00:00:00 2001
+From 50177d5bf1a1e0eff87639c7b8a1ac3a0f57c710 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 419d3e33078e6f1772faf076a5f46bd9bf3443f2 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 122b1187fd..aa7c911f19 100644
+index 8cd78ce1ed..bddc3fb8df 100644
@@ -26 +28 @@
-@@ -2093,6 +2093,11 @@ bond_ethdev_start(struct rte_eth_dev *eth_dev)
+@@ -2089,6 +2089,11 @@ bond_ethdev_start(struct rte_eth_dev *eth_dev)
@@ -38,2 +40,2 @@
-@@ -2178,6 +2183,11 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
- 			deactivate_member(eth_dev, member_id);
+@@ -2174,6 +2179,11 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
+ 			deactivate_slave(eth_dev, slave_id);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/cxgbe: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (110 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/bonding: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/dpaa: " Xueming Li
                   ` (29 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=606a11a71c9b235f6d3b66c59c85a18df785b755

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 606a11a71c9b235f6d3b66c59c85a18df785b755 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:33 +0800
Subject: [PATCH] net/cxgbe: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a2bce003b9f071cd2053cb593b56f0fa8785cbea ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/cxgbe/cxgbe_ethdev.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
index 45bbeaef0c..8cc3d9f257 100644
--- a/drivers/net/cxgbe/cxgbe_ethdev.c
+++ b/drivers/net/cxgbe/cxgbe_ethdev.c
@@ -414,6 +414,7 @@ int cxgbe_dev_stop(struct rte_eth_dev *eth_dev)
 {
 	struct port_info *pi = eth_dev->data->dev_private;
 	struct adapter *adapter = pi->adapter;
+	uint16_t i;

 	CXGBE_FUNC_TRACE();

@@ -429,6 +430,11 @@ int cxgbe_dev_stop(struct rte_eth_dev *eth_dev)
 	t4_sge_eth_clear_queues(pi);
 	eth_dev->data->scattered_rx = 0;

+	for (i = 0; i < eth_dev->data->nb_rx_queues; i++)
+		eth_dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < eth_dev->data->nb_tx_queues; i++)
+		eth_dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.415082600 +0800
+++ 0112-net-cxgbe-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.386723700 +0800
@@ -1 +1 @@
-From a2bce003b9f071cd2053cb593b56f0fa8785cbea Mon Sep 17 00:00:00 2001
+From 606a11a71c9b235f6d3b66c59c85a18df785b755 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a2bce003b9f071cd2053cb593b56f0fa8785cbea ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/dpaa: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (111 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/cxgbe: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/dpaa2: " Xueming Li
                   ` (28 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=b97544f35a334dc1fe48475fb34ba1e351c2d24a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b97544f35a334dc1fe48475fb34ba1e351c2d24a Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:34 +0800
Subject: [PATCH] net/dpaa: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit f1d381b48d4673b14eb3c3378f3b890334015489 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/net/dpaa/dpaa_ethdev.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index a6c86113d1..ef4c06db6a 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -399,6 +399,7 @@ static void dpaa_interrupt_handler(void *param)
 static int dpaa_eth_dev_start(struct rte_eth_dev *dev)
 {
 	struct dpaa_if *dpaa_intf = dev->data->dev_private;
+	uint16_t i;

 	PMD_INIT_FUNC_TRACE();

@@ -413,12 +414,18 @@ static int dpaa_eth_dev_start(struct rte_eth_dev *dev)

 	fman_if_enable_rx(dev->process_private);

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;
 }

 static int dpaa_eth_dev_stop(struct rte_eth_dev *dev)
 {
 	struct fman_if *fif = dev->process_private;
+	uint16_t i;

 	PMD_INIT_FUNC_TRACE();
 	dev->data->dev_started = 0;
@@ -427,6 +434,11 @@ static int dpaa_eth_dev_stop(struct rte_eth_dev *dev)
 		fman_if_disable_rx(fif);
 	dev->tx_pkt_burst = dpaa_eth_tx_drop_all;

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.447496600 +0800
+++ 0113-net-dpaa-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.386723700 +0800
@@ -1 +1 @@
-From f1d381b48d4673b14eb3c3378f3b890334015489 Mon Sep 17 00:00:00 2001
+From b97544f35a334dc1fe48475fb34ba1e351c2d24a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit f1d381b48d4673b14eb3c3378f3b890334015489 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/dpaa2: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (112 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/dpaa: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/e1000: " Xueming Li
                   ` (27 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Hemant Agrawal, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=ef3b3501b82a3a4a0f754037c1e05494ac669973

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ef3b3501b82a3a4a0f754037c1e05494ac669973 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:35 +0800
Subject: [PATCH] net/dpaa2: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit f4909c42166c211a63229adfc49d630b30883d0c ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/net/dpaa2/dpaa2_ethdev.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 679f33ae1a..8e610b6bba 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -1278,6 +1278,11 @@ dpaa2_dev_start(struct rte_eth_dev *dev)
 	if (priv->en_ordered)
 		dev->tx_pkt_burst = dpaa2_dev_tx_ordered;

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;
 }

@@ -1295,6 +1300,7 @@ dpaa2_dev_stop(struct rte_eth_dev *dev)
 	struct rte_device *rdev = dev->device;
 	struct rte_intr_handle *intr_handle;
 	struct rte_dpaa2_device *dpaa2_dev;
+	uint16_t i;

 	dpaa2_dev = container_of(rdev, struct rte_dpaa2_device, device);
 	intr_handle = dpaa2_dev->intr_handle;
@@ -1329,6 +1335,11 @@ dpaa2_dev_stop(struct rte_eth_dev *dev)
 	memset(&link, 0, sizeof(link));
 	rte_eth_linkstatus_set(dev, &link);

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.479708100 +0800
+++ 0114-net-dpaa2-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.396723700 +0800
@@ -1 +1 @@
-From f4909c42166c211a63229adfc49d630b30883d0c Mon Sep 17 00:00:00 2001
+From ef3b3501b82a3a4a0f754037c1e05494ac669973 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit f4909c42166c211a63229adfc49d630b30883d0c ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/e1000: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (113 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/dpaa2: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/ena: " Xueming Li
                   ` (26 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=36e418d7890336cccf43e6520e78df5ea1b62b08

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 36e418d7890336cccf43e6520e78df5ea1b62b08 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:36 +0800
Subject: [PATCH] net/e1000: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit f679a8d646b62138cf02f173ad80885ca9881f9f ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/e1000/em_rxtx.c  | 8 ++++++++
 drivers/net/e1000/igb_rxtx.c | 4 ++++
 2 files changed, 12 insertions(+)

diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c
index cb5ce2307b..df5fbb7823 100644
--- a/drivers/net/e1000/em_rxtx.c
+++ b/drivers/net/e1000/em_rxtx.c
@@ -1576,6 +1576,8 @@ em_dev_clear_queues(struct rte_eth_dev *dev)
 			em_tx_queue_release_mbufs(txq);
 			em_reset_tx_queue(txq);
 		}
+
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 	}

 	for (i = 0; i < dev->data->nb_rx_queues; i++) {
@@ -1584,6 +1586,8 @@ em_dev_clear_queues(struct rte_eth_dev *dev)
 			em_rx_queue_release_mbufs(rxq);
 			em_reset_rx_queue(rxq);
 		}
+
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 	}
 }

@@ -1812,6 +1816,8 @@ eth_em_rx_init(struct rte_eth_dev *dev)
 		rxdctl |= E1000_RXDCTL_GRAN;
 		E1000_WRITE_REG(hw, E1000_RXDCTL(i), rxdctl);

+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 		/*
 		 * Due to EM devices not having any sort of hardware
 		 * limit for packet length, jumbo frame of any size
@@ -1946,6 +1952,8 @@ eth_em_tx_init(struct rte_eth_dev *dev)
 		txdctl |= (txq->wthresh & 0x3F) << 16;
 		txdctl |= E1000_TXDCTL_GRAN;
 		E1000_WRITE_REG(hw, E1000_TXDCTL(i), txdctl);
+
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	}

 	/* Program the Transmit Control Register. */
diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
index 1d23e081b6..6027cfbfb1 100644
--- a/drivers/net/e1000/igb_rxtx.c
+++ b/drivers/net/e1000/igb_rxtx.c
@@ -2744,6 +2744,8 @@ eth_igbvf_rx_init(struct rte_eth_dev *dev)
 		else
 			rxdctl |= ((rxq->wthresh & 0x1F) << 16);
 		E1000_WRITE_REG(hw, E1000_RXDCTL(i), rxdctl);
+
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	}

 	if (dev->data->dev_conf.rxmode.offloads & RTE_ETH_RX_OFFLOAD_SCATTER) {
@@ -2815,6 +2817,8 @@ eth_igbvf_tx_init(struct rte_eth_dev *dev)
 			txdctl |= ((txq->wthresh & 0x1F) << 16);
 		txdctl |= E1000_TXDCTL_QUEUE_ENABLE;
 		E1000_WRITE_REG(hw, E1000_TXDCTL(i), txdctl);
+
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	}

 }
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.510306000 +0800
+++ 0115-net-e1000-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.396723700 +0800
@@ -1 +1 @@
-From f679a8d646b62138cf02f173ad80885ca9881f9f Mon Sep 17 00:00:00 2001
+From 36e418d7890336cccf43e6520e78df5ea1b62b08 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit f679a8d646b62138cf02f173ad80885ca9881f9f ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -64 +66 @@
-index 61c6394310..448c4b7d9d 100644
+index 1d23e081b6..6027cfbfb1 100644
@@ -67 +69 @@
-@@ -2745,6 +2745,8 @@ eth_igbvf_rx_init(struct rte_eth_dev *dev)
+@@ -2744,6 +2744,8 @@ eth_igbvf_rx_init(struct rte_eth_dev *dev)
@@ -76 +78 @@
-@@ -2816,6 +2818,8 @@ eth_igbvf_tx_init(struct rte_eth_dev *dev)
+@@ -2815,6 +2817,8 @@ eth_igbvf_tx_init(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ena: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (114 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/e1000: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/enetc: " Xueming Li
                   ` (25 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=1efb8fcf47d1ed91ab1de0c35641032e086baefa

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 1efb8fcf47d1ed91ab1de0c35641032e086baefa Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:37 +0800
Subject: [PATCH] net/ena: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9210f0ca3dd2f0bbb66d6281f883e9d81a948a25 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/ena/ena_ethdev.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index efcb163027..7345e480f8 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -1171,6 +1171,7 @@ static int ena_start(struct rte_eth_dev *dev)
 	struct ena_adapter *adapter = dev->data->dev_private;
 	uint64_t ticks;
 	int rc = 0;
+	uint16_t i;

 	/* Cannot allocate memory in secondary process */
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
@@ -1208,6 +1209,11 @@ static int ena_start(struct rte_eth_dev *dev)
 	++adapter->dev_stats.dev_start;
 	adapter->state = ENA_ADAPTER_STATE_RUNNING;

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;

 err_rss_init:
@@ -1223,6 +1229,7 @@ static int ena_stop(struct rte_eth_dev *dev)
 	struct ena_com_dev *ena_dev = &adapter->ena_dev;
 	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
+	uint16_t i;
 	int rc;

 	/* Cannot free memory in secondary process */
@@ -1254,6 +1261,11 @@ static int ena_stop(struct rte_eth_dev *dev)
 	adapter->state = ENA_ADAPTER_STATE_STOPPED;
 	dev->data->dev_started = 0;

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.543737200 +0800
+++ 0116-net-ena-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.396723700 +0800
@@ -1 +1 @@
-From 9210f0ca3dd2f0bbb66d6281f883e9d81a948a25 Mon Sep 17 00:00:00 2001
+From 1efb8fcf47d1ed91ab1de0c35641032e086baefa Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9210f0ca3dd2f0bbb66d6281f883e9d81a948a25 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/enetc: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (115 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/ena: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/enic: " Xueming Li
                   ` (24 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=3df3bf7e5cf0ccc608f9140af12634eba230f8db

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 3df3bf7e5cf0ccc608f9140af12634eba230f8db Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:38 +0800
Subject: [PATCH] net/enetc: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 308eceec7519eba5b3369c501977e61c6a4af52e ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/enetc/enetc_ethdev.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/enetc/enetc_ethdev.c b/drivers/net/enetc/enetc_ethdev.c
index 1b4337bc48..c9352f0746 100644
--- a/drivers/net/enetc/enetc_ethdev.c
+++ b/drivers/net/enetc/enetc_ethdev.c
@@ -17,6 +17,7 @@ enetc_dev_start(struct rte_eth_dev *dev)
 		ENETC_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct enetc_hw *enetc_hw = &hw->hw;
 	uint32_t val;
+	uint16_t i;

 	PMD_INIT_FUNC_TRACE();
 	if (hw->device_id == ENETC_DEV_ID_VF)
@@ -45,6 +46,11 @@ enetc_dev_start(struct rte_eth_dev *dev)
 			      ENETC_PM0_IFM_XGMII);
 	}

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;
 }

@@ -55,6 +61,7 @@ enetc_dev_stop(struct rte_eth_dev *dev)
 		ENETC_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct enetc_hw *enetc_hw = &hw->hw;
 	uint32_t val;
+	uint16_t i;

 	PMD_INIT_FUNC_TRACE();
 	dev->data->dev_started = 0;
@@ -69,6 +76,11 @@ enetc_dev_stop(struct rte_eth_dev *dev)
 	enetc_port_wr(enetc_hw, ENETC_PM0_CMD_CFG,
 		      val & (~(ENETC_PM0_TX_EN | ENETC_PM0_RX_EN)));

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.578131400 +0800
+++ 0117-net-enetc-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.396723700 +0800
@@ -1 +1 @@
-From 308eceec7519eba5b3369c501977e61c6a4af52e Mon Sep 17 00:00:00 2001
+From 3df3bf7e5cf0ccc608f9140af12634eba230f8db Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 308eceec7519eba5b3369c501977e61c6a4af52e ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/enic: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (116 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/enetc: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/hinic: " Xueming Li
                   ` (23 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=2492c4164252996f183678effef6881fcbc0a4cf

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 2492c4164252996f183678effef6881fcbc0a4cf Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:39 +0800
Subject: [PATCH] net/enic: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 880b9220feba570f0b30acf3035016037c32ce45 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/enic/enic_ethdev.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
index cdf0915591..a487256fa1 100644
--- a/drivers/net/enic/enic_ethdev.c
+++ b/drivers/net/enic/enic_ethdev.c
@@ -368,6 +368,7 @@ static int enicpmd_dev_stop(struct rte_eth_dev *eth_dev)
 {
 	struct rte_eth_link link;
 	struct enic *enic = pmd_priv(eth_dev);
+	uint16_t i;

 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
@@ -378,6 +379,11 @@ static int enicpmd_dev_stop(struct rte_eth_dev *eth_dev)
 	memset(&link, 0, sizeof(link));
 	rte_eth_linkstatus_set(eth_dev, &link);

+	for (i = 0; i < eth_dev->data->nb_rx_queues; i++)
+		eth_dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < eth_dev->data->nb_tx_queues; i++)
+		eth_dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.607639800 +0800
+++ 0118-net-enic-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.396723700 +0800
@@ -1 +1 @@
-From 880b9220feba570f0b30acf3035016037c32ce45 Mon Sep 17 00:00:00 2001
+From 2492c4164252996f183678effef6881fcbc0a4cf Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 880b9220feba570f0b30acf3035016037c32ce45 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hinic: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (117 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/enic: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/ipn3ke: " Xueming Li
                   ` (22 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=0d4ab569a11281ace7ee8e94b5b71ba45d6e4e7b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 0d4ab569a11281ace7ee8e94b5b71ba45d6e4e7b Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:40 +0800
Subject: [PATCH] net/hinic: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit b0f9c8e26a6a37cf73f311af96e23a7d9bda2fc0 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/hinic/hinic_pmd_ethdev.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/hinic/hinic_pmd_ethdev.c b/drivers/net/hinic/hinic_pmd_ethdev.c
index 7aa5e7d8e9..adc9f75c81 100644
--- a/drivers/net/hinic/hinic_pmd_ethdev.c
+++ b/drivers/net/hinic/hinic_pmd_ethdev.c
@@ -980,6 +980,7 @@ static int hinic_dev_start(struct rte_eth_dev *dev)
 	int rc;
 	char *name;
 	struct hinic_nic_dev *nic_dev;
+	uint16_t i;

 	nic_dev = HINIC_ETH_DEV_TO_PRIVATE_NIC_DEV(dev);
 	name = dev->data->name;
@@ -1047,6 +1048,11 @@ static int hinic_dev_start(struct rte_eth_dev *dev)

 	rte_bit_relaxed_set32(HINIC_DEV_START, &nic_dev->dev_status);

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;

 en_port_fail:
@@ -1169,6 +1175,7 @@ static int hinic_dev_stop(struct rte_eth_dev *dev)
 	uint16_t port_id;
 	struct hinic_nic_dev *nic_dev;
 	struct rte_eth_link link;
+	uint16_t i;

 	nic_dev = HINIC_ETH_DEV_TO_PRIVATE_NIC_DEV(dev);
 	name = dev->data->name;
@@ -1215,6 +1222,11 @@ static int hinic_dev_stop(struct rte_eth_dev *dev)
 	hinic_free_all_rx_mbuf(dev);
 	hinic_free_all_tx_mbuf(dev);

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.640377000 +0800
+++ 0119-net-hinic-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.396723700 +0800
@@ -1 +1 @@
-From b0f9c8e26a6a37cf73f311af96e23a7d9bda2fc0 Mon Sep 17 00:00:00 2001
+From 0d4ab569a11281ace7ee8e94b5b71ba45d6e4e7b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b0f9c8e26a6a37cf73f311af96e23a7d9bda2fc0 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ipn3ke: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (118 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/hinic: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/memif: " Xueming Li
                   ` (21 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Rosen Xu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=1f38a20d2e4aa88aa36ecd8fdf44b69955c1ef91

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 1f38a20d2e4aa88aa36ecd8fdf44b69955c1ef91 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:41 +0800
Subject: [PATCH] net/ipn3ke: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c05fa97fbe14cb58acc4ca7fffbde3a21b78fd18 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Reviewed-by: Rosen Xu <rosen.xu@intel.com>
---
 drivers/net/ipn3ke/ipn3ke_representor.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/ipn3ke/ipn3ke_representor.c b/drivers/net/ipn3ke/ipn3ke_representor.c
index e50fc73f43..5361867785 100644
--- a/drivers/net/ipn3ke/ipn3ke_representor.c
+++ b/drivers/net/ipn3ke/ipn3ke_representor.c
@@ -120,6 +120,7 @@ ipn3ke_rpst_dev_start(struct rte_eth_dev *dev)
 	uint64_t base_mac;
 	uint32_t val;
 	char attr_name[IPN3KE_RAWDEV_ATTR_LEN_MAX];
+	uint16_t i;

 	rawdev = hw->rawdev;

@@ -190,6 +191,11 @@ ipn3ke_rpst_dev_start(struct rte_eth_dev *dev)

 	ipn3ke_rpst_link_update(dev, 0);

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;
 }

@@ -198,6 +204,7 @@ ipn3ke_rpst_dev_stop(struct rte_eth_dev *dev)
 {
 	struct ipn3ke_hw *hw = IPN3KE_DEV_PRIVATE_TO_HW(dev);
 	struct ipn3ke_rpst *rpst = IPN3KE_DEV_PRIVATE_TO_RPST(dev);
+	uint16_t i;

 	if (hw->retimer.mac_type == IFPGA_RAWDEV_RETIMER_MAC_TYPE_10GE_XFI) {
 		/* Disable the TX path */
@@ -207,6 +214,11 @@ ipn3ke_rpst_dev_stop(struct rte_eth_dev *dev)
 		ipn3ke_xmac_rx_disable(hw, rpst->port_id, 0);
 	}

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.677212700 +0800
+++ 0120-net-ipn3ke-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.396723700 +0800
@@ -1 +1 @@
-From c05fa97fbe14cb58acc4ca7fffbde3a21b78fd18 Mon Sep 17 00:00:00 2001
+From 1f38a20d2e4aa88aa36ecd8fdf44b69955c1ef91 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c05fa97fbe14cb58acc4ca7fffbde3a21b78fd18 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 57ec7a19bc..8145f1bb2a 100644
+index e50fc73f43..5361867785 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/memif: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (119 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/ipn3ke: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/mlx4: " Xueming Li
                   ` (20 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=26fe1d02e5dbdef246b777bdb7875840f46db4c9

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 26fe1d02e5dbdef246b777bdb7875840f46db4c9 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:42 +0800
Subject: [PATCH] net/memif: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 1b5e3493b8058f3980a14d00ecd31e2bbe88d535 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/memif/rte_eth_memif.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/net/memif/rte_eth_memif.c b/drivers/net/memif/rte_eth_memif.c
index 1b1c1a652b..3b83a5a8bb 100644
--- a/drivers/net/memif/rte_eth_memif.c
+++ b/drivers/net/memif/rte_eth_memif.c
@@ -1240,6 +1240,7 @@ memif_dev_start(struct rte_eth_dev *dev)
 {
 	struct pmd_internals *pmd = dev->data->dev_private;
 	int ret = 0;
+	uint16_t i;

 	switch (pmd->role) {
 	case MEMIF_ROLE_CLIENT:
@@ -1254,13 +1255,28 @@ memif_dev_start(struct rte_eth_dev *dev)
 		break;
 	}

+	if (ret == 0) {
+		for (i = 0; i < dev->data->nb_rx_queues; i++)
+			dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+		for (i = 0; i < dev->data->nb_tx_queues; i++)
+			dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	}
+
 	return ret;
 }

 static int
 memif_dev_stop(struct rte_eth_dev *dev)
 {
+	uint16_t i;
+
 	memif_disconnect(dev);
+
+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.707882700 +0800
+++ 0121-net-memif-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.406723700 +0800
@@ -1 +1 @@
-From 1b5e3493b8058f3980a14d00ecd31e2bbe88d535 Mon Sep 17 00:00:00 2001
+From 26fe1d02e5dbdef246b777bdb7875840f46db4c9 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1b5e3493b8058f3980a14d00ecd31e2bbe88d535 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index f595656af5..7cc8c0da91 100644
+index 1b1c1a652b..3b83a5a8bb 100644
@@ -26 +28 @@
-@@ -1358,6 +1358,7 @@ memif_dev_start(struct rte_eth_dev *dev)
+@@ -1240,6 +1240,7 @@ memif_dev_start(struct rte_eth_dev *dev)
@@ -34 +36 @@
-@@ -1372,13 +1373,28 @@ memif_dev_start(struct rte_eth_dev *dev)
+@@ -1254,13 +1255,28 @@ memif_dev_start(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx4: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (120 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/memif: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/mvneta: " Xueming Li
                   ` (19 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=accdf4594bfb0b887ad2a0f5cc9ee54b10a91583

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From accdf4594bfb0b887ad2a0f5cc9ee54b10a91583 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:44 +0800
Subject: [PATCH] net/mlx4: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 7cc3ea8934785226c6fe6d403ea5b31761d5f52f ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/mlx4/mlx4.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index a54016f4a2..1389b606cc 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -292,6 +292,7 @@ mlx4_dev_start(struct rte_eth_dev *dev)
 {
 	struct mlx4_priv *priv = dev->data->dev_private;
 	struct rte_flow_error error;
+	uint16_t i;
 	int ret;

 	if (priv->started)
@@ -327,6 +328,12 @@ mlx4_dev_start(struct rte_eth_dev *dev)
 	dev->rx_pkt_burst = mlx4_rx_burst;
 	/* Enable datapath on secondary process. */
 	mlx4_mp_req_start_rxtx(dev);
+
+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;
 err:
 	mlx4_dev_stop(dev);
@@ -345,6 +352,7 @@ static int
 mlx4_dev_stop(struct rte_eth_dev *dev)
 {
 	struct mlx4_priv *priv = dev->data->dev_private;
+	uint16_t i;

 	if (!priv->started)
 		return 0;
@@ -359,6 +367,11 @@ mlx4_dev_stop(struct rte_eth_dev *dev)
 	mlx4_rxq_intr_disable(priv);
 	mlx4_rss_deinit(priv);

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.740910300 +0800
+++ 0122-net-mlx4-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.406723700 +0800
@@ -1 +1 @@
-From 7cc3ea8934785226c6fe6d403ea5b31761d5f52f Mon Sep 17 00:00:00 2001
+From accdf4594bfb0b887ad2a0f5cc9ee54b10a91583 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7cc3ea8934785226c6fe6d403ea5b31761d5f52f ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mvneta: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (121 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/mlx4: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/mvpp2: " Xueming Li
                   ` (18 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=5116feb88fd94447ca51da4153bf93360405fe1c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 5116feb88fd94447ca51da4153bf93360405fe1c Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:45 +0800
Subject: [PATCH] net/mvneta: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 11f489ba1bebebba0d2c65d8439a64e589aa099d ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/mvneta/mvneta_ethdev.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/net/mvneta/mvneta_ethdev.c b/drivers/net/mvneta/mvneta_ethdev.c
index c4355a3f64..ab643709ee 100644
--- a/drivers/net/mvneta/mvneta_ethdev.c
+++ b/drivers/net/mvneta/mvneta_ethdev.c
@@ -376,6 +376,10 @@ mvneta_dev_start(struct rte_eth_dev *dev)
 		goto out;
 	}

+	/* start rx queues */
+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	/* start tx queues */
 	for (i = 0; i < dev->data->nb_tx_queues; i++)
 		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
@@ -400,6 +404,7 @@ static int
 mvneta_dev_stop(struct rte_eth_dev *dev)
 {
 	struct mvneta_priv *priv = dev->data->dev_private;
+	uint16_t i;

 	dev->data->dev_started = 0;

@@ -412,6 +417,14 @@ mvneta_dev_stop(struct rte_eth_dev *dev)

 	priv->ppio = NULL;

+	/* stop rx queues */
+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
+	/* stop tx queues */
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.776160400 +0800
+++ 0123-net-mvneta-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.406723700 +0800
@@ -1 +1 @@
-From 11f489ba1bebebba0d2c65d8439a64e589aa099d Mon Sep 17 00:00:00 2001
+From 5116feb88fd94447ca51da4153bf93360405fe1c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 11f489ba1bebebba0d2c65d8439a64e589aa099d ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index d7953ac7cb..daa69e533a 100644
+index c4355a3f64..ab643709ee 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mvpp2: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (122 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/mvneta: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/nfp: " Xueming Li
                   ` (17 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e2e72d04cbc6d9251fd01191b8b5307d85e0856f

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e2e72d04cbc6d9251fd01191b8b5307d85e0856f Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:46 +0800
Subject: [PATCH] net/mvpp2: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 228056938a340205fd295814829782e3ea6e1a46 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/mvpp2/mrvl_ethdev.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethdev.c
index 8fd3211283..177b8165f3 100644
--- a/drivers/net/mvpp2/mrvl_ethdev.c
+++ b/drivers/net/mvpp2/mrvl_ethdev.c
@@ -951,6 +951,9 @@ mrvl_dev_start(struct rte_eth_dev *dev)
 			goto out;
 	}

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	mrvl_flow_init(dev);
 	mrvl_mtr_init(dev);
 	mrvl_set_tx_function(dev);
@@ -1076,6 +1079,13 @@ mrvl_flush_bpool(struct rte_eth_dev *dev)
 static int
 mrvl_dev_stop(struct rte_eth_dev *dev)
 {
+	uint16_t i;
+
+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return mrvl_dev_set_link_down(dev);
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.816273600 +0800
+++ 0124-net-mvpp2-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.406723700 +0800
@@ -1 +1 @@
-From 228056938a340205fd295814829782e3ea6e1a46 Mon Sep 17 00:00:00 2001
+From e2e72d04cbc6d9251fd01191b8b5307d85e0856f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 228056938a340205fd295814829782e3ea6e1a46 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 359a5d1df7..c12364941d 100644
+index 8fd3211283..177b8165f3 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/nfp: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (123 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/mvpp2: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/ngbe: " Xueming Li
                   ` (16 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Chaoyong He, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=4e28c37ff58288ae06c051978f6f0b5f7316831a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 4e28c37ff58288ae06c051978f6f0b5f7316831a Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:48 +0800
Subject: [PATCH] net/nfp: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c46216e77ac3b1890eb622bea4bcc8c54f9da820 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Chaoyong He <chaoyong.he@corigine.com>
---
 drivers/net/nfp/flower/nfp_flower.c             |  8 ++++++++
 drivers/net/nfp/flower/nfp_flower_representor.c | 12 ++++++++++++
 drivers/net/nfp/nfp_common.c                    |  2 ++
 drivers/net/nfp/nfp_ethdev.c                    |  6 ++++++
 drivers/net/nfp/nfp_ethdev_vf.c                 |  6 ++++++
 5 files changed, 34 insertions(+)

diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c
index c14a481a81..9872e010d2 100644
--- a/drivers/net/nfp/flower/nfp_flower.c
+++ b/drivers/net/nfp/flower/nfp_flower.c
@@ -84,6 +84,7 @@ int
 nfp_flower_pf_start(struct rte_eth_dev *dev)
 {
 	int ret;
+	uint16_t i;
 	uint32_t new_ctrl;
 	uint32_t update = 0;
 	struct nfp_net_hw *hw;
@@ -136,6 +137,11 @@ nfp_flower_pf_start(struct rte_eth_dev *dev)
 		return -EIO;
 	}

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;
 }

@@ -158,11 +164,13 @@ nfp_flower_pf_stop(struct rte_eth_dev *dev)
 	for (i = 0; i < dev->data->nb_tx_queues; i++) {
 		this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i];
 		nfp_net_reset_tx_queue(this_tx_q);
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 	}

 	for (i = 0; i < dev->data->nb_rx_queues; i++) {
 		this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i];
 		nfp_net_reset_rx_queue(this_rx_q);
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 	}

 	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c
index b9f2f631ff..32c4574bdc 100644
--- a/drivers/net/nfp/flower/nfp_flower_representor.c
+++ b/drivers/net/nfp/flower/nfp_flower_representor.c
@@ -300,6 +300,7 @@ nfp_flower_repr_dev_start(struct rte_eth_dev *dev)
 {
 	struct nfp_flower_representor *repr;
 	struct nfp_app_fw_flower *app_fw_flower;
+	uint16_t i;

 	repr = (struct nfp_flower_representor *)dev->data->dev_private;
 	app_fw_flower = repr->app_fw_flower;
@@ -311,6 +312,11 @@ nfp_flower_repr_dev_start(struct rte_eth_dev *dev)

 	nfp_flower_cmsg_port_mod(app_fw_flower, repr->port_id, true);

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;
 }

@@ -319,6 +325,7 @@ nfp_flower_repr_dev_stop(struct rte_eth_dev *dev)
 {
 	struct nfp_flower_representor *repr;
 	struct nfp_app_fw_flower *app_fw_flower;
+	uint16_t i;

 	repr = (struct nfp_flower_representor *)dev->data->dev_private;
 	app_fw_flower = repr->app_fw_flower;
@@ -330,6 +337,11 @@ nfp_flower_repr_dev_stop(struct rte_eth_dev *dev)
 				repr->nfp_idx, 0);
 	}

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c
index b673370f20..b75fd22e03 100644
--- a/drivers/net/nfp/nfp_common.c
+++ b/drivers/net/nfp/nfp_common.c
@@ -1337,6 +1337,7 @@ nfp_net_stop_rx_queue(struct rte_eth_dev *dev)
 	for (i = 0; i < dev->data->nb_rx_queues; i++) {
 		this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i];
 		nfp_net_reset_rx_queue(this_rx_q);
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 	}
 }

@@ -1362,6 +1363,7 @@ nfp_net_stop_tx_queue(struct rte_eth_dev *dev)
 	for (i = 0; i < dev->data->nb_tx_queues; i++) {
 		this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i];
 		nfp_net_reset_tx_queue(this_tx_q);
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 	}
 }

diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
index 29491f6e6d..689e26f1e1 100644
--- a/drivers/net/nfp/nfp_ethdev.c
+++ b/drivers/net/nfp/nfp_ethdev.c
@@ -70,6 +70,7 @@ nfp_net_start(struct rte_eth_dev *dev)
 	struct rte_eth_conf *dev_conf;
 	struct rte_eth_rxmode *rxmode;
 	uint32_t intr_vector;
+	uint16_t i;
 	int ret;

 	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -174,6 +175,11 @@ nfp_net_start(struct rte_eth_dev *dev)

 	hw->ctrl = new_ctrl;

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;

 error:
diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c
index 1877d6b76b..268820cbea 100644
--- a/drivers/net/nfp/nfp_ethdev_vf.c
+++ b/drivers/net/nfp/nfp_ethdev_vf.c
@@ -45,6 +45,7 @@ nfp_netvf_start(struct rte_eth_dev *dev)
 	struct rte_eth_conf *dev_conf;
 	struct rte_eth_rxmode *rxmode;
 	uint32_t intr_vector;
+	uint16_t i;
 	int ret;

 	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -124,6 +125,11 @@ nfp_netvf_start(struct rte_eth_dev *dev)

 	hw->ctrl = new_ctrl;

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;

 error:
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.856959200 +0800
+++ 0125-net-nfp-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.406723700 +0800
@@ -1 +1 @@
-From c46216e77ac3b1890eb622bea4bcc8c54f9da820 Mon Sep 17 00:00:00 2001
+From 4e28c37ff58288ae06c051978f6f0b5f7316831a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c46216e77ac3b1890eb622bea4bcc8c54f9da820 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -27 +29 @@
-index 98e6f7f927..2c64ff5fc0 100644
+index c14a481a81..9872e010d2 100644
@@ -30 +32 @@
-@@ -79,6 +79,7 @@ int
+@@ -84,6 +84,7 @@ int
@@ -38 +40 @@
-@@ -131,6 +132,11 @@ nfp_flower_pf_start(struct rte_eth_dev *dev)
+@@ -136,6 +137,11 @@ nfp_flower_pf_start(struct rte_eth_dev *dev)
@@ -50 +52 @@
-@@ -153,11 +159,13 @@ nfp_flower_pf_stop(struct rte_eth_dev *dev)
+@@ -158,11 +164,13 @@ nfp_flower_pf_stop(struct rte_eth_dev *dev)
@@ -52 +54 @@
- 		this_tx_q = dev->data->tx_queues[i];
+ 		this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i];
@@ -58 +60 @@
- 		this_rx_q = dev->data->rx_queues[i];
+ 		this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i];
@@ -65 +67 @@
-index e4c5d765e7..16381d8f05 100644
+index b9f2f631ff..32c4574bdc 100644
@@ -68 +70 @@
-@@ -310,6 +310,7 @@ nfp_flower_repr_dev_start(struct rte_eth_dev *dev)
+@@ -300,6 +300,7 @@ nfp_flower_repr_dev_start(struct rte_eth_dev *dev)
@@ -74 +76 @@
- 	repr = dev->data->dev_private;
+ 	repr = (struct nfp_flower_representor *)dev->data->dev_private;
@@ -76 +78 @@
-@@ -321,6 +322,11 @@ nfp_flower_repr_dev_start(struct rte_eth_dev *dev)
+@@ -311,6 +312,11 @@ nfp_flower_repr_dev_start(struct rte_eth_dev *dev)
@@ -88 +90 @@
-@@ -329,6 +335,7 @@ nfp_flower_repr_dev_stop(struct rte_eth_dev *dev)
+@@ -319,6 +325,7 @@ nfp_flower_repr_dev_stop(struct rte_eth_dev *dev)
@@ -94 +96 @@
- 	repr = dev->data->dev_private;
+ 	repr = (struct nfp_flower_representor *)dev->data->dev_private;
@@ -96 +98 @@
-@@ -340,6 +347,11 @@ nfp_flower_repr_dev_stop(struct rte_eth_dev *dev)
+@@ -330,6 +337,11 @@ nfp_flower_repr_dev_stop(struct rte_eth_dev *dev)
@@ -109 +111 @@
-index 5683afc40a..7e93221532 100644
+index b673370f20..b75fd22e03 100644
@@ -112 +114 @@
-@@ -1926,6 +1926,7 @@ nfp_net_stop_rx_queue(struct rte_eth_dev *dev)
+@@ -1337,6 +1337,7 @@ nfp_net_stop_rx_queue(struct rte_eth_dev *dev)
@@ -114 +116 @@
- 		this_rx_q = dev->data->rx_queues[i];
+ 		this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i];
@@ -120 +122 @@
-@@ -1951,6 +1952,7 @@ nfp_net_stop_tx_queue(struct rte_eth_dev *dev)
+@@ -1362,6 +1363,7 @@ nfp_net_stop_tx_queue(struct rte_eth_dev *dev)
@@ -122 +124 @@
- 		this_tx_q = dev->data->tx_queues[i];
+ 		this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i];
@@ -129 +131 @@
-index ebc5538291..a2fa67bc50 100644
+index 29491f6e6d..689e26f1e1 100644
@@ -132 +134 @@
-@@ -52,6 +52,7 @@ nfp_net_start(struct rte_eth_dev *dev)
+@@ -70,6 +70,7 @@ nfp_net_start(struct rte_eth_dev *dev)
@@ -140 +142 @@
-@@ -167,6 +168,11 @@ nfp_net_start(struct rte_eth_dev *dev)
+@@ -174,6 +175,11 @@ nfp_net_start(struct rte_eth_dev *dev)
@@ -153 +155 @@
-index 0c94fc51ad..5363799115 100644
+index 1877d6b76b..268820cbea 100644
@@ -156 +158 @@
-@@ -36,6 +36,7 @@ nfp_netvf_start(struct rte_eth_dev *dev)
+@@ -45,6 +45,7 @@ nfp_netvf_start(struct rte_eth_dev *dev)
@@ -164 +166 @@
-@@ -112,6 +113,11 @@ nfp_netvf_start(struct rte_eth_dev *dev)
+@@ -124,6 +125,11 @@ nfp_netvf_start(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ngbe: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (124 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/nfp: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/null: " Xueming Li
                   ` (15 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=df52eadf8fc2815a373741cd8dcc57bc4098ae3d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From df52eadf8fc2815a373741cd8dcc57bc4098ae3d Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:49 +0800
Subject: [PATCH] net/ngbe: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9179018ebb1dffd6b0b4fc229bafa1450035a3f0 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/ngbe/ngbe_rxtx.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ngbe/ngbe_rxtx.c b/drivers/net/ngbe/ngbe_rxtx.c
index f31906cc2f..ec353a30b1 100644
--- a/drivers/net/ngbe/ngbe_rxtx.c
+++ b/drivers/net/ngbe/ngbe_rxtx.c
@@ -2415,6 +2415,7 @@ ngbe_dev_clear_queues(struct rte_eth_dev *dev)
 		if (txq != NULL) {
 			txq->ops->release_mbufs(txq);
 			txq->ops->reset(txq);
+			dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 		}
 	}

@@ -2424,6 +2425,7 @@ ngbe_dev_clear_queues(struct rte_eth_dev *dev)
 		if (rxq != NULL) {
 			ngbe_rx_queue_release_mbufs(rxq);
 			ngbe_reset_rx_queue(adapter, rxq);
+			dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 		}
 	}
 }
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.895311100 +0800
+++ 0126-net-ngbe-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.406723700 +0800
@@ -1 +1 @@
-From 9179018ebb1dffd6b0b4fc229bafa1450035a3f0 Mon Sep 17 00:00:00 2001
+From df52eadf8fc2815a373741cd8dcc57bc4098ae3d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9179018ebb1dffd6b0b4fc229bafa1450035a3f0 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/null: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (125 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/ngbe: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/octeon_ep: " Xueming Li
                   ` (14 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=eb53c49bad7bb54c36644bd2773f2fdd841585bc

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From eb53c49bad7bb54c36644bd2773f2fdd841585bc Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:50 +0800
Subject: [PATCH] net/null: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9b4b368ef7b9a00978e80fb2ee0beadde10a02de ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/null/rte_eth_null.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c
index 47d9554ec5..1fbe572bd1 100644
--- a/drivers/net/null/rte_eth_null.c
+++ b/drivers/net/null/rte_eth_null.c
@@ -188,21 +188,36 @@ eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
 static int
 eth_dev_start(struct rte_eth_dev *dev)
 {
+	uint16_t i;
+
 	if (dev == NULL)
 		return -EINVAL;

 	dev->data->dev_link.link_status = RTE_ETH_LINK_UP;
+
+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;
 }

 static int
 eth_dev_stop(struct rte_eth_dev *dev)
 {
+	uint16_t i;
+
 	if (dev == NULL)
 		return 0;

 	dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.925580900 +0800
+++ 0127-net-null-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.416723700 +0800
@@ -1 +1 @@
-From 9b4b368ef7b9a00978e80fb2ee0beadde10a02de Mon Sep 17 00:00:00 2001
+From eb53c49bad7bb54c36644bd2773f2fdd841585bc Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9b4b368ef7b9a00978e80fb2ee0beadde10a02de ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 31081af797..d742bc415c 100644
+index 47d9554ec5..1fbe572bd1 100644
@@ -26 +28 @@
-@@ -192,21 +192,36 @@ eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
+@@ -188,21 +188,36 @@ eth_dev_configure(struct rte_eth_dev *dev __rte_unused)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/octeon_ep: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (126 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/null: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/octeontx: " Xueming Li
                   ` (13 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=f6ec84e5e521c541ef063457d3590af7f201adcb

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f6ec84e5e521c541ef063457d3590af7f201adcb Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:51 +0800
Subject: [PATCH] net/octeon_ep: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit af2c10811034e1b1c0b4b4588a04b909cf69dcd1 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/octeon_ep/otx_ep_ethdev.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/net/octeon_ep/otx_ep_ethdev.c b/drivers/net/octeon_ep/otx_ep_ethdev.c
index c8f4abe4ca..af0c5c824f 100644
--- a/drivers/net/octeon_ep/otx_ep_ethdev.c
+++ b/drivers/net/octeon_ep/otx_ep_ethdev.c
@@ -76,6 +76,11 @@ otx_ep_dev_start(struct rte_eth_dev *eth_dev)

 	otx_ep_info("dev started\n");

+	for (q = 0; q < eth_dev->data->nb_rx_queues; q++)
+		eth_dev->data->rx_queue_state[q] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (q = 0; q < eth_dev->data->nb_tx_queues; q++)
+		eth_dev->data->tx_queue_state[q] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;
 }

@@ -84,9 +89,15 @@ static int
 otx_ep_dev_stop(struct rte_eth_dev *eth_dev)
 {
 	struct otx_ep_device *otx_epvf = OTX_EP_DEV(eth_dev);
+	uint16_t i;

 	otx_epvf->fn_list.disable_io_queues(otx_epvf);

+	for (i = 0; i < eth_dev->data->nb_rx_queues; i++)
+		eth_dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < eth_dev->data->nb_tx_queues; i++)
+		eth_dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.958265500 +0800
+++ 0128-net-octeon_ep-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.416723700 +0800
@@ -1 +1 @@
-From af2c10811034e1b1c0b4b4588a04b909cf69dcd1 Mon Sep 17 00:00:00 2001
+From f6ec84e5e521c541ef063457d3590af7f201adcb Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit af2c10811034e1b1c0b4b4588a04b909cf69dcd1 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 57b965ad06..970372bbd7 100644
+index c8f4abe4ca..af0c5c824f 100644
@@ -26,2 +28,2 @@
-@@ -156,6 +156,11 @@ otx_ep_dev_start(struct rte_eth_dev *eth_dev)
- 	otx_ep_dev_link_update(eth_dev, 0);
+@@ -76,6 +76,11 @@ otx_ep_dev_start(struct rte_eth_dev *eth_dev)
+
@@ -38 +40 @@
-@@ -164,9 +169,15 @@ static int
+@@ -84,9 +89,15 @@ static int

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/octeontx: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (127 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/octeon_ep: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/pfe: " Xueming Li
                   ` (12 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=63a8198b2202f820a863e8535c44be4b1730944e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 63a8198b2202f820a863e8535c44be4b1730944e Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:52 +0800
Subject: [PATCH] net/octeontx: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 84a998cb80a5bc877419aae8c7ef7c41e12899d6 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/octeontx/octeontx_ethdev.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c
index d52a3e73d5..2b97f0163e 100644
--- a/drivers/net/octeontx/octeontx_ethdev.c
+++ b/drivers/net/octeontx/octeontx_ethdev.c
@@ -732,6 +732,11 @@ octeontx_dev_start(struct rte_eth_dev *dev)
 	}

 	/* Success */
+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return ret;

 pki_port_stop_error:
@@ -746,6 +751,7 @@ static int
 octeontx_dev_stop(struct rte_eth_dev *dev)
 {
 	struct octeontx_nic *nic = octeontx_pmd_priv(dev);
+	uint16_t i;
 	int ret;

 	PMD_INIT_FUNC_TRACE();
@@ -772,6 +778,11 @@ octeontx_dev_stop(struct rte_eth_dev *dev)
 		return ret;
 	}

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:38.992607900 +0800
+++ 0129-net-octeontx-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.416723700 +0800
@@ -1 +1 @@
-From 84a998cb80a5bc877419aae8c7ef7c41e12899d6 Mon Sep 17 00:00:00 2001
+From 63a8198b2202f820a863e8535c44be4b1730944e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 84a998cb80a5bc877419aae8c7ef7c41e12899d6 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index a6ae51a42c..2a8378a33e 100644
+index d52a3e73d5..2b97f0163e 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/pfe: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (128 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/octeontx: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/ring: " Xueming Li
                   ` (11 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=f2edd9823db04350bde5fe53004cf15d600f1ed5

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f2edd9823db04350bde5fe53004cf15d600f1ed5 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:53 +0800
Subject: [PATCH] net/pfe: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 6e7d7f57c167b086a4d67e7fb9aa04482d92e766 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/pfe/pfe_ethdev.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/net/pfe/pfe_ethdev.c b/drivers/net/pfe/pfe_ethdev.c
index 0352a57950..551f3cf193 100644
--- a/drivers/net/pfe/pfe_ethdev.c
+++ b/drivers/net/pfe/pfe_ethdev.c
@@ -241,6 +241,7 @@ pfe_eth_open(struct rte_eth_dev *dev)
 	struct pfe_eth_priv_s *priv = dev->data->dev_private;
 	struct hif_client_s *client;
 	struct hif_shm *hif_shm;
+	uint16_t i;
 	int rc;

 	/* Register client driver with HIF */
@@ -318,6 +319,10 @@ pfe_eth_open(struct rte_eth_dev *dev)
 		PFE_PMD_INFO("PFE INTERRUPT Mode enabled");
 	}

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;

 err0:
 	return rc;
@@ -361,6 +366,7 @@ static int
 pfe_eth_stop(struct rte_eth_dev *dev/*, int wake*/)
 {
 	struct pfe_eth_priv_s *priv = dev->data->dev_private;
+	uint16_t i;

 	dev->data->dev_started = 0;

@@ -370,6 +376,11 @@ pfe_eth_stop(struct rte_eth_dev *dev/*, int wake*/)
 	dev->rx_pkt_burst = rte_eth_pkt_burst_dummy;
 	dev->tx_pkt_burst = rte_eth_pkt_burst_dummy;

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:39.022660500 +0800
+++ 0130-net-pfe-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.416723700 +0800
@@ -1 +1 @@
-From 6e7d7f57c167b086a4d67e7fb9aa04482d92e766 Mon Sep 17 00:00:00 2001
+From f2edd9823db04350bde5fe53004cf15d600f1ed5 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 6e7d7f57c167b086a4d67e7fb9aa04482d92e766 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ring: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (129 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/pfe: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/sfc: " Xueming Li
                   ` (10 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=564958b988550a7ed88af5d2a7f244ed6c66d507

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 564958b988550a7ed88af5d2a7f244ed6c66d507 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:54 +0800
Subject: [PATCH] net/ring: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3d0c550d20f265547c434738f7a4673e6a097570 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/ring/rte_eth_ring.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index bd5a47dd90..80f1859403 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -111,15 +111,30 @@ eth_dev_start(struct rte_eth_dev *dev)
 static int
 eth_dev_stop(struct rte_eth_dev *dev)
 {
+	uint16_t i;
+
 	dev->data->dev_started = 0;
 	dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;
+
+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	return 0;
 }

 static int
 eth_dev_set_link_down(struct rte_eth_dev *dev)
 {
+	uint16_t i;
+
 	dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;
+
+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:39.057965900 +0800
+++ 0131-net-ring-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.416723700 +0800
@@ -1 +1 @@
-From 3d0c550d20f265547c434738f7a4673e6a097570 Mon Sep 17 00:00:00 2001
+From 564958b988550a7ed88af5d2a7f244ed6c66d507 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3d0c550d20f265547c434738f7a4673e6a097570 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index c43dccea7f..48953dd7a0 100644
+index bd5a47dd90..80f1859403 100644
@@ -26 +28 @@
-@@ -113,15 +113,30 @@ eth_dev_start(struct rte_eth_dev *dev)
+@@ -111,15 +111,30 @@ eth_dev_start(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/sfc: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (130 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/ring: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/softnic: " Xueming Li
                   ` (9 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8ab4f361b051feeea2db87e1c9b09f65f5d05718

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8ab4f361b051feeea2db87e1c9b09f65f5d05718 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:55 +0800
Subject: [PATCH] net/sfc: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 35ac4f275f37d6002ed62e78342af96b9cf7e1e7 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/sfc/sfc_repr.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/sfc/sfc_repr.c b/drivers/net/sfc/sfc_repr.c
index b3a41167fb..79025e9052 100644
--- a/drivers/net/sfc/sfc_repr.c
+++ b/drivers/net/sfc/sfc_repr.c
@@ -291,6 +291,7 @@ static int
 sfc_repr_dev_start(struct rte_eth_dev *dev)
 {
 	struct sfc_repr *sr = sfc_repr_by_eth_dev(dev);
+	uint16_t i;
 	int ret;

 	sfcr_info(sr, "entry");
@@ -302,6 +303,11 @@ sfc_repr_dev_start(struct rte_eth_dev *dev)
 	if (ret != 0)
 		goto fail_start;

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	sfcr_info(sr, "done");

 	return 0;
@@ -366,6 +372,7 @@ static int
 sfc_repr_dev_stop(struct rte_eth_dev *dev)
 {
 	struct sfc_repr *sr = sfc_repr_by_eth_dev(dev);
+	uint16_t i;
 	int ret;

 	sfcr_info(sr, "entry");
@@ -380,6 +387,11 @@ sfc_repr_dev_stop(struct rte_eth_dev *dev)

 	sfc_repr_unlock(sr);

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	sfcr_info(sr, "done");

 	return 0;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:39.087972900 +0800
+++ 0132-net-sfc-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.416723700 +0800
@@ -1 +1 @@
-From 35ac4f275f37d6002ed62e78342af96b9cf7e1e7 Mon Sep 17 00:00:00 2001
+From 8ab4f361b051feeea2db87e1c9b09f65f5d05718 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 35ac4f275f37d6002ed62e78342af96b9cf7e1e7 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 5f93192522..c2e5d4eb9e 100644
+index b3a41167fb..79025e9052 100644
@@ -26 +28 @@
-@@ -263,6 +263,7 @@ static int
+@@ -291,6 +291,7 @@ static int
@@ -34 +36 @@
-@@ -274,6 +275,11 @@ sfc_repr_dev_start(struct rte_eth_dev *dev)
+@@ -302,6 +303,11 @@ sfc_repr_dev_start(struct rte_eth_dev *dev)
@@ -46 +48 @@
-@@ -338,6 +344,7 @@ static int
+@@ -366,6 +372,7 @@ static int
@@ -54 +56 @@
-@@ -352,6 +359,11 @@ sfc_repr_dev_stop(struct rte_eth_dev *dev)
+@@ -380,6 +387,11 @@ sfc_repr_dev_stop(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/softnic: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (131 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/sfc: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/txgbe: " Xueming Li
                   ` (8 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Cristian Dumitrescu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=beb475c1c457a4630cfcc598519a081b00fe0457

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From beb475c1c457a4630cfcc598519a081b00fe0457 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:56 +0800
Subject: [PATCH] net/softnic: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 7143a21342ef611a4159f03f24f0c4fbd8686aa1 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
 drivers/net/softnic/rte_eth_softnic.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/softnic/rte_eth_softnic.c b/drivers/net/softnic/rte_eth_softnic.c
index bcf6664460..1b90cf7a21 100644
--- a/drivers/net/softnic/rte_eth_softnic.c
+++ b/drivers/net/softnic/rte_eth_softnic.c
@@ -134,6 +134,7 @@ pmd_dev_start(struct rte_eth_dev *dev)
 {
 	struct pmd_internals *p = dev->data->dev_private;
 	int status;
+	uint16_t i;

 	/* Firmware */
 	status = softnic_cli_script_process(p,
@@ -146,6 +147,11 @@ pmd_dev_start(struct rte_eth_dev *dev)
 	/* Link UP */
 	dev->data->dev_link.link_status = RTE_ETH_LINK_UP;

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;
 }

@@ -153,6 +159,7 @@ static int
 pmd_dev_stop(struct rte_eth_dev *dev)
 {
 	struct pmd_internals *p = dev->data->dev_private;
+	uint16_t i;

 	/* Link DOWN */
 	dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;
@@ -163,6 +170,11 @@ pmd_dev_stop(struct rte_eth_dev *dev)
 	softnic_softnic_swq_free_keep_rxq_txq(p);
 	softnic_mempool_free(p);

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:39.118260000 +0800
+++ 0133-net-softnic-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.416723700 +0800
@@ -1 +1 @@
-From 7143a21342ef611a4159f03f24f0c4fbd8686aa1 Mon Sep 17 00:00:00 2001
+From beb475c1c457a4630cfcc598519a081b00fe0457 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7143a21342ef611a4159f03f24f0c4fbd8686aa1 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/txgbe: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (132 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/softnic: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/vhost: " Xueming Li
                   ` (7 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=dc77b5d0828253c39a739139c73256f664eca722

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From dc77b5d0828253c39a739139c73256f664eca722 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:57 +0800
Subject: [PATCH] net/txgbe: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit b6e8560d9c4067f321f5c838b7faad68258a203a ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/txgbe/txgbe_rxtx.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/txgbe/txgbe_rxtx.c b/drivers/net/txgbe/txgbe_rxtx.c
index f7cd2333ab..834ada886a 100644
--- a/drivers/net/txgbe/txgbe_rxtx.c
+++ b/drivers/net/txgbe/txgbe_rxtx.c
@@ -2806,6 +2806,8 @@ txgbe_dev_clear_queues(struct rte_eth_dev *dev)
 			txq->ops->release_mbufs(txq);
 			txq->ops->reset(txq);
 		}
+
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 	}

 	for (i = 0; i < dev->data->nb_rx_queues; i++) {
@@ -2815,6 +2817,8 @@ txgbe_dev_clear_queues(struct rte_eth_dev *dev)
 			txgbe_rx_queue_release_mbufs(rxq);
 			txgbe_reset_rx_queue(adapter, rxq);
 		}
+
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
 	}
 }

@@ -5005,6 +5009,8 @@ txgbevf_dev_rxtx_start(struct rte_eth_dev *dev)
 		} while (--poll_ms && !(txdctl & TXGBE_TXCFG_ENA));
 		if (!poll_ms)
 			PMD_INIT_LOG(ERR, "Could not enable Tx Queue %d", i);
+		else
+			dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	}
 	for (i = 0; i < dev->data->nb_rx_queues; i++) {
 		rxq = dev->data->rx_queues[i];
@@ -5019,6 +5025,8 @@ txgbevf_dev_rxtx_start(struct rte_eth_dev *dev)
 		} while (--poll_ms && !(rxdctl & TXGBE_RXCFG_ENA));
 		if (!poll_ms)
 			PMD_INIT_LOG(ERR, "Could not enable Rx Queue %d", i);
+		else
+			dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 		rte_wmb();
 		wr32(hw, TXGBE_RXWP(i), rxq->nb_rx_desc - 1);
 	}
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:39.146757500 +0800
+++ 0134-net-txgbe-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.416723700 +0800
@@ -1 +1 @@
-From b6e8560d9c4067f321f5c838b7faad68258a203a Mon Sep 17 00:00:00 2001
+From dc77b5d0828253c39a739139c73256f664eca722 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b6e8560d9c4067f321f5c838b7faad68258a203a ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/vhost: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (133 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/txgbe: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/virtio: " Xueming Li
                   ` (6 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=b1dfb750b59fecc7d5ef8b62c432e13f9d111606

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b1dfb750b59fecc7d5ef8b62c432e13f9d111606 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:58 +0800
Subject: [PATCH] net/vhost: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit def31f40b59f5f20eae89b68dd47bdca3f2a9d0a ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/vhost/rte_eth_vhost.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c
index f7e1b268ed..acba97dba3 100644
--- a/drivers/net/vhost/rte_eth_vhost.c
+++ b/drivers/net/vhost/rte_eth_vhost.c
@@ -1132,6 +1132,7 @@ eth_dev_start(struct rte_eth_dev *eth_dev)
 {
 	struct pmd_internal *internal = eth_dev->data->dev_private;
 	struct rte_eth_conf *dev_conf = &eth_dev->data->dev_conf;
+	uint16_t i;

 	eth_vhost_uninstall_intr(eth_dev);
 	if (dev_conf->intr_conf.rxq && eth_vhost_install_intr(eth_dev) < 0) {
@@ -1147,6 +1148,11 @@ eth_dev_start(struct rte_eth_dev *eth_dev)
 	rte_atomic32_set(&internal->started, 1);
 	update_queuing_status(eth_dev, false);

+	for (i = 0; i < eth_dev->data->nb_rx_queues; i++)
+		eth_dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < eth_dev->data->nb_tx_queues; i++)
+		eth_dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return 0;
 }

@@ -1154,11 +1160,17 @@ static int
 eth_dev_stop(struct rte_eth_dev *dev)
 {
 	struct pmd_internal *internal = dev->data->dev_private;
+	uint16_t i;

 	dev->data->dev_started = 0;
 	rte_atomic32_set(&internal->started, 0);
 	update_queuing_status(dev, true);

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:39.178538100 +0800
+++ 0135-net-vhost-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.416723700 +0800
@@ -1 +1 @@
-From def31f40b59f5f20eae89b68dd47bdca3f2a9d0a Mon Sep 17 00:00:00 2001
+From b1dfb750b59fecc7d5ef8b62c432e13f9d111606 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit def31f40b59f5f20eae89b68dd47bdca3f2a9d0a ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 48a9a79efe..21bbb008e0 100644
+index f7e1b268ed..acba97dba3 100644
@@ -26 +28 @@
-@@ -1135,6 +1135,7 @@ eth_dev_start(struct rte_eth_dev *eth_dev)
+@@ -1132,6 +1132,7 @@ eth_dev_start(struct rte_eth_dev *eth_dev)
@@ -34 +36 @@
-@@ -1150,6 +1151,11 @@ eth_dev_start(struct rte_eth_dev *eth_dev)
+@@ -1147,6 +1148,11 @@ eth_dev_start(struct rte_eth_dev *eth_dev)
@@ -46 +48 @@
-@@ -1157,11 +1163,17 @@ static int
+@@ -1154,11 +1160,17 @@ static int

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/virtio: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (134 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/vhost: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/vmxnet3: " Xueming Li
                   ` (5 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=bdaff489453dc29f7eedbf021177731fd16bfd70

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From bdaff489453dc29f7eedbf021177731fd16bfd70 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:28:59 +0800
Subject: [PATCH] net/virtio: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 0170be6f4f90fdf3295c23520fc1547c1a2405db ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/virtio/virtio_ethdev.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index c4f6fa55b3..11b9a4bc72 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -2855,6 +2855,11 @@ virtio_dev_start(struct rte_eth_dev *dev)
 	set_rxtx_funcs(dev);
 	hw->started = 1;

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	/* Initialize Link state */
 	virtio_dev_link_update(dev, 0);

@@ -2944,6 +2949,7 @@ virtio_dev_stop(struct rte_eth_dev *dev)
 	struct virtio_hw *hw = dev->data->dev_private;
 	struct rte_eth_link link;
 	struct rte_eth_intr_conf *intr_conf = &dev->data->dev_conf.intr_conf;
+	uint16_t i;

 	PMD_INIT_LOG(DEBUG, "stop");
 	dev->data->dev_started = 0;
@@ -2971,6 +2977,11 @@ virtio_dev_stop(struct rte_eth_dev *dev)
 out_unlock:
 	rte_spinlock_unlock(&hw->state_lock);

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:39.212360400 +0800
+++ 0136-net-virtio-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.426723700 +0800
@@ -1 +1 @@
-From 0170be6f4f90fdf3295c23520fc1547c1a2405db Mon Sep 17 00:00:00 2001
+From bdaff489453dc29f7eedbf021177731fd16bfd70 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 0170be6f4f90fdf3295c23520fc1547c1a2405db ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 2c23f1c00e..3ab56ef769 100644
+index c4f6fa55b3..11b9a4bc72 100644
@@ -26 +28 @@
-@@ -2417,6 +2417,11 @@ virtio_dev_start(struct rte_eth_dev *dev)
+@@ -2855,6 +2855,11 @@ virtio_dev_start(struct rte_eth_dev *dev)
@@ -38 +40 @@
-@@ -2506,6 +2511,7 @@ virtio_dev_stop(struct rte_eth_dev *dev)
+@@ -2944,6 +2949,7 @@ virtio_dev_stop(struct rte_eth_dev *dev)
@@ -46 +48 @@
-@@ -2533,6 +2539,11 @@ virtio_dev_stop(struct rte_eth_dev *dev)
+@@ -2971,6 +2977,11 @@ virtio_dev_stop(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/vmxnet3: fix Rx and Tx queue state' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (135 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/virtio: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'app/testpmd: fix primary process not polling all queues' " Xueming Li
                   ` (4 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=0cece838b9b3b5afacd668f63df99c17026ccc69

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 0cece838b9b3b5afacd668f63df99c17026ccc69 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:29:00 +0800
Subject: [PATCH] net/vmxnet3: fix Rx and Tx queue state
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit aa400e679625afe3756fed1435e7e44f1f902223 ]

The DPDK framework reports the queue state, which is stored in
dev->data->tx_queue_state and dev->data->rx_queue_state. The
state is maintained by the driver. Users may determine whether
a queue participates in packet forwarding based on the state.
Therefore, the driver needs to modify the queue state in time
according to the actual situation.

Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue information")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/vmxnet3/vmxnet3_ethdev.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index fd946dec5c..a0959b0c80 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
@@ -957,6 +957,7 @@ vmxnet3_dev_start(struct rte_eth_dev *dev)
 {
 	int ret;
 	struct vmxnet3_hw *hw = dev->data->dev_private;
+	uint16_t i;

 	PMD_INIT_FUNC_TRACE();

@@ -1058,6 +1059,11 @@ vmxnet3_dev_start(struct rte_eth_dev *dev)
 	 */
 	__vmxnet3_dev_link_update(dev, 0);

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
+
 	return VMXNET3_SUCCESS;
 }

@@ -1070,6 +1076,7 @@ vmxnet3_dev_stop(struct rte_eth_dev *dev)
 	struct rte_eth_link link;
 	struct vmxnet3_hw *hw = dev->data->dev_private;
 	struct rte_intr_handle *intr_handle = dev->intr_handle;
+	uint16_t i;
 	int ret;

 	PMD_INIT_FUNC_TRACE();
@@ -1125,6 +1132,11 @@ vmxnet3_dev_stop(struct rte_eth_dev *dev)
 	hw->adapter_stopped = 1;
 	dev->data->dev_started = 0;

+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+	for (i = 0; i < dev->data->nb_tx_queues; i++)
+		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
+
 	return 0;
 }

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:39.244875700 +0800
+++ 0137-net-vmxnet3-fix-Rx-and-Tx-queue-state.patch	2023-10-22 22:17:34.426723700 +0800
@@ -1 +1 @@
-From aa400e679625afe3756fed1435e7e44f1f902223 Mon Sep 17 00:00:00 2001
+From 0cece838b9b3b5afacd668f63df99c17026ccc69 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit aa400e679625afe3756fed1435e7e44f1f902223 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 76e80e3025..e49191718a 100644
+index fd946dec5c..a0959b0c80 100644
@@ -26 +28 @@
-@@ -1048,6 +1048,7 @@ vmxnet3_dev_start(struct rte_eth_dev *dev)
+@@ -957,6 +957,7 @@ vmxnet3_dev_start(struct rte_eth_dev *dev)
@@ -34 +36 @@
-@@ -1151,6 +1152,11 @@ vmxnet3_dev_start(struct rte_eth_dev *dev)
+@@ -1058,6 +1059,11 @@ vmxnet3_dev_start(struct rte_eth_dev *dev)
@@ -46 +48 @@
-@@ -1163,6 +1169,7 @@ vmxnet3_dev_stop(struct rte_eth_dev *dev)
+@@ -1070,6 +1076,7 @@ vmxnet3_dev_stop(struct rte_eth_dev *dev)
@@ -54 +56 @@
-@@ -1218,6 +1225,11 @@ vmxnet3_dev_stop(struct rte_eth_dev *dev)
+@@ -1125,6 +1132,11 @@ vmxnet3_dev_stop(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/testpmd: fix primary process not polling all queues' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (136 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/vmxnet3: " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'net/bonding: fix link status callback stop' " Xueming Li
                   ` (3 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=d316924b1f2a91808c9333f9480fbd21fc5d0f32

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d316924b1f2a91808c9333f9480fbd21fc5d0f32 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 8 Sep 2023 19:29:01 +0800
Subject: [PATCH] app/testpmd: fix primary process not polling all queues
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 37b68fa1445cb6fe287178607bac6fa3d90b835f ]

Here's how the problem arises.
step1: Start the app.
    dpdk-testpmd -a 0000:35:00.0 -l 0-3 -- -i --rxq=10 --txq=10

step2: Perform the following steps and send traffic. As expected,
queue 7 does not send or receive packets, and other queues do.
    port 0 rxq 7 stop
    port 0 txq 7 stop
    set fwd mac
    start

step3: Perform the following steps and send traffic. All queues
are expected to send and receive packets normally, but that's not
the case for queue 7.
    stop
    port stop all
    port start all
    start
    show port xstats all

In fact, only the value of rx_q7_packets for queue 7 is not zero,
which means queue 7 is enabled for the driver but is not involved
in packet receiving and forwarding by software. If we check queue
state by command 'show rxq info 0 7' and 'show txq info 0 7',
we see queue 7 is started as other queues are.
    Rx queue state: started
    Tx queue state: started
The queue 7 is started but cannot forward. That's the problem.

We know that each stream has a read-only "disabled" field that
control if this stream should be used to forward. This field
depends on testpmd local queue state, please see
commit 3c4426db54fc ("app/testpmd: do not poll stopped queues").
DPDK framework maintains ethdev queue state that drivers reported,
which indicates the real state of queues.

There are commands that update these two kind queue state such as
'port X rxq|txq start|stop'. But these operations take effect only
in one stop-start round. In the following stop-start round, the
preceding operations do not take effect anymore. However, only
the ethdev queue state is updated, causing the testpmd and ethdev
state information to diverge and causing unexpected side effects
as above problem.

There was a similar problem for the secondary process, please see
commit 5028f207a4fa ("app/testpmd: fix secondary process packet
forwarding").

This patch applies its workaround with some difference to the
primary process. Not all PMDs implement rte_eth_rx_queue_info_get and
rte_eth_tx_queue_info_get, however they may support deferred_start
with primary process. To not break their behavior, retain the original
testpmd local queue state for those PMDs.

Fixes: 3c4426db54fc ("app/testpmd: do not poll stopped queues")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test-pmd/testpmd.c | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index b69b248e47..33c9888740 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -2355,6 +2355,13 @@ update_rx_queue_state(uint16_t port_id, uint16_t queue_id)
 		ports[port_id].rxq[queue_id].state =
 			rx_qinfo.queue_state;
 	} else if (rc == -ENOTSUP) {
+		/*
+		 * Do not change the rxq state for primary process
+		 * to ensure that the PMDs do not implement
+		 * rte_eth_rx_queue_info_get can forward as before.
+		 */
+		if (rte_eal_process_type() == RTE_PROC_PRIMARY)
+			return;
 		/*
 		 * Set the rxq state to RTE_ETH_QUEUE_STATE_STARTED
 		 * to ensure that the PMDs do not implement
@@ -2380,6 +2387,13 @@ update_tx_queue_state(uint16_t port_id, uint16_t queue_id)
 		ports[port_id].txq[queue_id].state =
 			tx_qinfo.queue_state;
 	} else if (rc == -ENOTSUP) {
+		/*
+		 * Do not change the txq state for primary process
+		 * to ensure that the PMDs do not implement
+		 * rte_eth_tx_queue_info_get can forward as before.
+		 */
+		if (rte_eal_process_type() == RTE_PROC_PRIMARY)
+			return;
 		/*
 		 * Set the txq state to RTE_ETH_QUEUE_STATE_STARTED
 		 * to ensure that the PMDs do not implement
@@ -2394,12 +2408,15 @@ update_tx_queue_state(uint16_t port_id, uint16_t queue_id)
 }

 static void
-update_queue_state(void)
+update_queue_state(portid_t pid)
 {
 	portid_t pi;
 	queueid_t qi;

 	RTE_ETH_FOREACH_DEV(pi) {
+		if (pid != pi && pid != (portid_t)RTE_PORT_ALL)
+			continue;
+
 		for (qi = 0; qi < nb_rxq; qi++)
 			update_rx_queue_state(pi, qi);
 		for (qi = 0; qi < nb_txq; qi++)
@@ -2447,8 +2464,7 @@ start_packet_forwarding(int with_tx_first)
 		return;

 	if (stream_init != NULL) {
-		if (rte_eal_process_type() == RTE_PROC_SECONDARY)
-			update_queue_state();
+		update_queue_state(RTE_PORT_ALL);
 		for (i = 0; i < cur_fwd_config.nb_fwd_streams; i++)
 			stream_init(fwd_streams[i]);
 	}
@@ -3211,8 +3227,7 @@ start_port(portid_t pid)
 		pl[cfg_pi++] = pi;
 	}

-	if (rte_eal_process_type() == RTE_PROC_SECONDARY)
-		update_queue_state();
+	update_queue_state(pi);

 	if (at_least_one_port_successfully_started && !no_link_check)
 		check_all_ports_link_status(RTE_PORT_ALL);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:39.280415000 +0800
+++ 0138-app-testpmd-fix-primary-process-not-polling-all-queu.patch	2023-10-22 22:17:34.426723700 +0800
@@ -1 +1 @@
-From 37b68fa1445cb6fe287178607bac6fa3d90b835f Mon Sep 17 00:00:00 2001
+From d316924b1f2a91808c9333f9480fbd21fc5d0f32 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 37b68fa1445cb6fe287178607bac6fa3d90b835f ]
@@ -61 +63,0 @@
-Cc: stable@dpdk.org
@@ -70 +72 @@
-index b3d6ce7127..595b77748c 100644
+index b69b248e47..33c9888740 100644
@@ -73 +75 @@
-@@ -2425,6 +2425,13 @@ update_rx_queue_state(uint16_t port_id, uint16_t queue_id)
+@@ -2355,6 +2355,13 @@ update_rx_queue_state(uint16_t port_id, uint16_t queue_id)
@@ -87 +89 @@
-@@ -2450,6 +2457,13 @@ update_tx_queue_state(uint16_t port_id, uint16_t queue_id)
+@@ -2380,6 +2387,13 @@ update_tx_queue_state(uint16_t port_id, uint16_t queue_id)
@@ -101 +103 @@
-@@ -2464,12 +2478,15 @@ update_tx_queue_state(uint16_t port_id, uint16_t queue_id)
+@@ -2394,12 +2408,15 @@ update_tx_queue_state(uint16_t port_id, uint16_t queue_id)
@@ -118 +120 @@
-@@ -2517,8 +2534,7 @@ start_packet_forwarding(int with_tx_first)
+@@ -2447,8 +2464,7 @@ start_packet_forwarding(int with_tx_first)
@@ -128 +130 @@
-@@ -3281,8 +3297,7 @@ start_port(portid_t pid)
+@@ -3211,8 +3227,7 @@ start_port(portid_t pid)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/bonding: fix link status callback stop' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (137 preceding siblings ...)
  2023-10-22 14:22 ` patch 'app/testpmd: fix primary process not polling all queues' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'ethdev: add check in async flow action query' " Xueming Li
                   ` (2 subsequent siblings)
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: David Marchand; +Cc: Chengwen Feng, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=b33ea9e6de82eb70a606106fc0efe2314a708164

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b33ea9e6de82eb70a606106fc0efe2314a708164 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Mon, 16 Oct 2023 10:47:43 +0200
Subject: [PATCH] net/bonding: fix link status callback stop
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 615bd385b93e89e062b4e134e9cc09a79289a0f6 ]

If a bonding port gets released, a link status alarm callback still
referenced the ethdev port that may be reused later.
Cancel this callback when stopping the port.

Bugzilla ID: 1301
Fixes: a45b288ef21a ("bond: support link status polling")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index bddc3fb8df..8df632fa6e 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -2160,6 +2160,10 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
 	eth_dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;
 	eth_dev->data->dev_started = 0;

+	if (internals->link_status_polling_enabled) {
+		rte_eal_alarm_cancel(bond_ethdev_slave_link_status_change_monitor,
+			(void *)&rte_eth_devices[internals->port_id]);
+	}
 	internals->link_status_polling_enabled = 0;
 	for (i = 0; i < internals->slave_count; i++) {
 		uint16_t slave_id = internals->slaves[i].port_id;
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:39.317724200 +0800
+++ 0139-net-bonding-fix-link-status-callback-stop.patch	2023-10-22 22:17:34.436723700 +0800
@@ -1 +1 @@
-From 615bd385b93e89e062b4e134e9cc09a79289a0f6 Mon Sep 17 00:00:00 2001
+From b33ea9e6de82eb70a606106fc0efe2314a708164 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 615bd385b93e89e062b4e134e9cc09a79289a0f6 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index aa7c911f19..c40d18d128 100644
+index bddc3fb8df..8df632fa6e 100644
@@ -25 +27 @@
-@@ -2164,6 +2164,10 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
+@@ -2160,6 +2160,10 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
@@ -30 +32 @@
-+		rte_eal_alarm_cancel(bond_ethdev_member_link_status_change_monitor,
++		rte_eal_alarm_cancel(bond_ethdev_slave_link_status_change_monitor,
@@ -34,2 +36,2 @@
- 	for (i = 0; i < internals->member_count; i++) {
- 		uint16_t member_id = internals->members[i].port_id;
+ 	for (i = 0; i < internals->slave_count; i++) {
+ 		uint16_t slave_id = internals->slaves[i].port_id;

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'ethdev: add check in async flow action query' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (138 preceding siblings ...)
  2023-10-22 14:22 ` patch 'net/bonding: fix link status callback stop' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-10-22 14:22 ` patch 'app/procinfo: remove unnecessary rte_malloc' " Xueming Li
  2023-12-11 10:10 ` patch " Xueming Li
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Suanming Mou; +Cc: Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=c20753f52ff8f3485f60595827ed24abd00a7c66

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c20753f52ff8f3485f60595827ed24abd00a7c66 Mon Sep 17 00:00:00 2001
From: Suanming Mou <suanmingm@nvidia.com>
Date: Tue, 17 Oct 2023 16:23:17 +0800
Subject: [PATCH] ethdev: add check in async flow action query
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a5ea57ac0d29a56400315a2acc7c58799b564367 ]

This commit adds the ops check to fix the coverity issue.

Coverity issue: 403258
Fixes: c9dc03840873 ("ethdev: add indirect action async query")

Signed-off-by: Suanming Mou <suanmingm@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 lib/ethdev/rte_flow.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c
index 1a67a987f5..2eadb0a032 100644
--- a/lib/ethdev/rte_flow.c
+++ b/lib/ethdev/rte_flow.c
@@ -1887,6 +1887,8 @@ rte_flow_async_action_handle_query(uint16_t port_id,
 	const struct rte_flow_ops *ops = rte_flow_ops_get(port_id, error);
 	int ret;

+	if (unlikely(!ops))
+		return -rte_errno;
 	ret = ops->async_action_handle_query(dev, queue_id, op_attr,
 					  action_handle, data, user_data, error);
 	return flow_err(port_id, ret, error);
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:39.351782600 +0800
+++ 0140-ethdev-add-check-in-async-flow-action-query.patch	2023-10-22 22:17:34.436723700 +0800
@@ -1 +1 @@
-From a5ea57ac0d29a56400315a2acc7c58799b564367 Mon Sep 17 00:00:00 2001
+From c20753f52ff8f3485f60595827ed24abd00a7c66 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a5ea57ac0d29a56400315a2acc7c58799b564367 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 874f845513..3a67f1aaba 100644
+index 1a67a987f5..2eadb0a032 100644
@@ -22 +24 @@
-@@ -2226,6 +2226,8 @@ rte_flow_async_action_handle_query(uint16_t port_id,
+@@ -1887,6 +1887,8 @@ rte_flow_async_action_handle_query(uint16_t port_id,
@@ -30 +32 @@
- 	ret = flow_err(port_id, ret, error);
+ 	return flow_err(port_id, ret, error);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/procinfo: remove unnecessary rte_malloc' has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (139 preceding siblings ...)
  2023-10-22 14:22 ` patch 'ethdev: add check in async flow action query' " Xueming Li
@ 2023-10-22 14:22 ` Xueming Li
  2023-12-11 10:10 ` patch " Xueming Li
  141 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-10-22 14:22 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Chengwen Feng, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=f42884a20c25f4ce9e4daaee0e26c25e9962df91

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f42884a20c25f4ce9e4daaee0e26c25e9962df91 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 7 Aug 2023 13:43:10 -0700
Subject: [PATCH] app/procinfo: remove unnecessary rte_malloc
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit cfe29906c69bedb5f87dadcc02703ce46e80f37e ]

Better to use malloc() which is faster than rte_malloc()
and has more error checking, as is done already for statistics.

Fixes: 077c546704da ("app/proc_info: add metrics displaying")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
---
 app/proc-info/main.c | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index 53e852a07c..50871c92a0 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -19,7 +19,6 @@
 #include <rte_common.h>
 #include <rte_debug.h>
 #include <rte_ethdev.h>
-#include <rte_malloc.h>
 #include <rte_memory.h>
 #include <rte_memzone.h>
 #include <rte_launch.h>
@@ -719,24 +718,23 @@ metrics_display(int port_id)
 		return;
 	}

-	metrics = rte_malloc("proc_info_metrics",
-		sizeof(struct rte_metric_value) * len, 0);
+	metrics = malloc(sizeof(struct rte_metric_value) * len);
 	if (metrics == NULL) {
 		printf("Cannot allocate memory for metrics\n");
 		return;
 	}

-	names =  rte_malloc(NULL, sizeof(struct rte_metric_name) * len, 0);
+	names = malloc(sizeof(struct rte_metric_name) * len);
 	if (names == NULL) {
 		printf("Cannot allocate memory for metrics names\n");
-		rte_free(metrics);
+		free(metrics);
 		return;
 	}

 	if (len != rte_metrics_get_names(names, len)) {
 		printf("Cannot get metrics names\n");
-		rte_free(metrics);
-		rte_free(names);
+		free(metrics);
+		free(names);
 		return;
 	}

@@ -748,8 +746,8 @@ metrics_display(int port_id)
 	ret = rte_metrics_get_values(port_id, metrics, len);
 	if (ret < 0 || ret > len) {
 		printf("Cannot get metrics values\n");
-		rte_free(metrics);
-		rte_free(names);
+		free(metrics);
+		free(names);
 		return;
 	}

@@ -758,8 +756,8 @@ metrics_display(int port_id)
 		printf("%s: %"PRIu64"\n", names[i].name, metrics[i].value);

 	printf("%s############################\n", nic_stats_border);
-	rte_free(metrics);
-	rte_free(names);
+	free(metrics);
+	free(names);
 }
 #endif

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:39.382566600 +0800
+++ 0141-app-procinfo-remove-unnecessary-rte_malloc.patch	2023-10-22 22:17:34.436723700 +0800
@@ -1 +1 @@
-From cfe29906c69bedb5f87dadcc02703ce46e80f37e Mon Sep 17 00:00:00 2001
+From f42884a20c25f4ce9e4daaee0e26c25e9962df91 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit cfe29906c69bedb5f87dadcc02703ce46e80f37e ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index af4c1d8bcb..ce53bc30df 100644
+index 53e852a07c..50871c92a0 100644
@@ -30 +32 @@
-@@ -909,24 +908,23 @@ metrics_display(int port_id)
+@@ -719,24 +718,23 @@ metrics_display(int port_id)
@@ -60 +62 @@
-@@ -938,8 +936,8 @@ metrics_display(int port_id)
+@@ -748,8 +746,8 @@ metrics_display(int port_id)
@@ -71 +73 @@
-@@ -948,8 +946,8 @@ metrics_display(int port_id)
+@@ -758,8 +756,8 @@ metrics_display(int port_id)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* Re: patch 'net/gve: fix max MTU limit' has been queued to stable release 22.11.4
  2023-10-22 14:21 ` patch 'net/gve: fix max MTU limit' " Xueming Li
@ 2023-10-23 22:01   ` Joshua Washington
  2023-10-24  7:51     ` Xueming(Steven) Li
  0 siblings, 1 reply; 266+ messages in thread
From: Joshua Washington @ 2023-10-23 22:01 UTC (permalink / raw)
  To: Xueming Li; +Cc: dpdk stable

[-- Attachment #1: Type: text/plain, Size: 5881 bytes --]

Hello,

This change, while having the correct behavior, breaks the testpmd program,
as the default MTU for testpmd is 1500B, which is higher than the default
Google Cloud MTU. When specifying the max packet length, which dictates the
MTU set by testpmd, the max packet length field set by the GVE driver is
incorrect, causing testpmd to attempt to set the MTU to an invalid value
due to underflow. This is fixed in
https://patchwork.dpdk.org/project/dpdk/patch/20231016205948.2252342-1-joshwash@google.com/,
and I believe these should go in together to ensure there is no point where
testpmd is unusable for the GVE driver.

Thanks,
Josh

On Sun, Oct 22, 2023 at 7:26 AM Xueming Li <xuemingl@nvidia.com> wrote:

> Hi,
>
> FYI, your patch has been queued to stable release 22.11.4
>
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 11/15/23. So please
> shout if anyone has objections.
>
> Also note that after the patch there's a diff of the upstream commit vs the
> patch applied to the branch. This will indicate if there was any rebasing
> needed to apply to the stable branch. If there were code changes for
> rebasing
> (ie: not only metadata diffs), please double check that the rebase was
> correctly done.
>
> Queued patches are on a temporary branch at:
> https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging
>
> This queued commit can be viewed at:
>
> https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8ef9e184ca867c0ed9aed5728364aed6e7dd47e3
>
> Thanks.
>
> Xueming Li <xuemingl@nvidia.com>
>
> ---
> From 8ef9e184ca867c0ed9aed5728364aed6e7dd47e3 Mon Sep 17 00:00:00 2001
> From: Joshua Washington <joshwash@google.com>
> Date: Fri, 29 Sep 2023 13:38:25 -0700
> Subject: [PATCH] net/gve: fix max MTU limit
> Cc: Xueming Li <xuemingl@nvidia.com>
>
> [ upstream commit 030025b74202896e85a72b1e75049866800dd3f7 ]
>
> This patch corrects the MTU setting behavior in the GVE DPDK driver to
> remove the artificial upper limit of RTE_ETHER_MTU. Instead, the max MTU
> is dictated by the default value of the MTU that the device sends during
> initialization, which will always be the maximum supported MTU.
>
> Fixes: 71dea04cdf9a ("net/gve: support device info and configure")
>
> Signed-off-by: Joshua Washington <joshwash@google.com>
> ---
>  drivers/net/gve/gve_ethdev.c | 5 +++--
>  drivers/net/gve/gve_ethdev.h | 3 ---
>  2 files changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
> index e357f16e16..806f45b0a7 100644
> --- a/drivers/net/gve/gve_ethdev.c
> +++ b/drivers/net/gve/gve_ethdev.c
> @@ -5,6 +5,7 @@
>  #include "gve_ethdev.h"
>  #include "base/gve_adminq.h"
>  #include "base/gve_register.h"
> +#include "rte_ether.h"
>
>  const char gve_version_str[] = GVE_VERSION;
>  static const char gve_version_prefix[] = GVE_VERSION_PREFIX;
> @@ -276,8 +277,8 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>         dev_info->max_tx_queues = priv->max_nb_txq;
>         dev_info->min_rx_bufsize = GVE_MIN_BUF_SIZE;
>         dev_info->max_rx_pktlen = GVE_MAX_RX_PKTLEN;
> -       dev_info->max_mtu = GVE_MAX_MTU;
> -       dev_info->min_mtu = GVE_MIN_MTU;
> +       dev_info->max_mtu = priv->max_mtu;
> +       dev_info->min_mtu = RTE_ETHER_MIN_MTU;
>
>         dev_info->rx_offload_capa = 0;
>         dev_info->tx_offload_capa =
> diff --git a/drivers/net/gve/gve_ethdev.h b/drivers/net/gve/gve_ethdev.h
> index 235e55899e..975318938d 100644
> --- a/drivers/net/gve/gve_ethdev.h
> +++ b/drivers/net/gve/gve_ethdev.h
> @@ -31,9 +31,6 @@
>  #define GVE_MIN_BUF_SIZE           1024
>  #define GVE_MAX_RX_PKTLEN          65535
>
> -#define GVE_MAX_MTU    RTE_ETHER_MTU
> -#define GVE_MIN_MTU    RTE_ETHER_MIN_MTU
> -
>  /* A list of pages registered with the device during setup and used by a
> queue
>   * as buffers
>   */
> --
> 2.25.1
>
> ---
>   Diff of the applied patch vs upstream commit (please double-check if
> non-empty:
> ---
> --- -   2023-10-22 22:17:35.768883300 +0800
> +++ 0036-net-gve-fix-max-MTU-limit.patch        2023-10-22
> 22:17:34.206723700 +0800
> @@ -1 +1 @@
> -From 030025b74202896e85a72b1e75049866800dd3f7 Mon Sep 17 00:00:00 2001
> +From 8ef9e184ca867c0ed9aed5728364aed6e7dd47e3 Mon Sep 17 00:00:00 2001
> @@ -4,0 +5,3 @@
> +Cc: Xueming Li <xuemingl@nvidia.com>
> +
> +[ upstream commit 030025b74202896e85a72b1e75049866800dd3f7 ]
> @@ -12 +14,0 @@
> -Cc: stable@dpdk.org
> @@ -21 +23 @@
> -index 9b25f3036b..b441f96623 100644
> +index e357f16e16..806f45b0a7 100644
> @@ -24 +26,3 @@
> -@@ -7,6 +7,7 @@
> +@@ -5,6 +5,7 @@
> + #include "gve_ethdev.h"
> + #include "base/gve_adminq.h"
> @@ -26,2 +29,0 @@
> - #include "base/gve_osdep.h"
> - #include "gve_version.h"
> @@ -30,3 +32,3 @@
> - static void
> - gve_write_version(uint8_t *driver_version_register)
> -@@ -297,8 +298,8 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
> + const char gve_version_str[] = GVE_VERSION;
> + static const char gve_version_prefix[] = GVE_VERSION_PREFIX;
> +@@ -276,8 +277,8 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
> @@ -44 +46 @@
> -index ca94a09a2f..1cba282128 100644
> +index 235e55899e..975318938d 100644
> @@ -47 +49 @@
> -@@ -23,9 +23,6 @@
> +@@ -31,9 +31,6 @@
> @@ -54,3 +56,3 @@
> - #define GVE_TX_CKSUM_OFFLOAD_MASK (           \
> -               RTE_MBUF_F_TX_L4_MASK  |        \
> -               RTE_MBUF_F_TX_TCP_SEG)
> + /* A list of pages registered with the device during setup and used by a
> queue
> +  * as buffers
> +  */
>


-- 

Joshua Washington | Software Engineer | joshwash@google.com | (414) 366-4423

[-- Attachment #2: Type: text/html, Size: 8423 bytes --]

^ permalink raw reply	[flat|nested] 266+ messages in thread

* RE: patch 'net/gve: fix max MTU limit' has been queued to stable release 22.11.4
  2023-10-23 22:01   ` Joshua Washington
@ 2023-10-24  7:51     ` Xueming(Steven) Li
  0 siblings, 0 replies; 266+ messages in thread
From: Xueming(Steven) Li @ 2023-10-24  7:51 UTC (permalink / raw)
  To: Joshua Washington; +Cc: dpdk stable

Hi Joshua,

Thanks for the feedback. If your new patch will be merged into 23.11 finally,
I'll include it in next round backport. Let me know otherwise.

Thanks,
Xueming Li


From: Joshua Washington <joshwash@google.com> 
Sent: 10/24/2023 6:01
To: Xueming(Steven) Li <xuemingl@nvidia.com>
Cc: dpdk stable <stable@dpdk.org>
Subject: Re: patch 'net/gve: fix max MTU limit' has been queued to stable release 22.11.4

Hello,

This change, while having the correct behavior, breaks the testpmd program, as the default MTU for testpmd is 1500B, which is higher than the default Google Cloud MTU. When specifying the max packet length, which dictates the MTU set by testpmd, the max packet length field set by the GVE driver is incorrect, causing testpmd to attempt to set the MTU to an invalid value due to underflow. This is fixed in https://patchwork.dpdk.org/project/dpdk/patch/20231016205948.2252342-1-joshwash@google.com/, and I believe these should go in together to ensure there is no point where testpmd is unusable for the GVE driver.

Thanks,
Josh

On Sun, Oct 22, 2023 at 7:26 AM Xueming Li <mailto:xuemingl@nvidia.com> wrote:
Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/15/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8ef9e184ca867c0ed9aed5728364aed6e7dd47e3

Thanks.

Xueming Li <mailto:xuemingl@nvidia.com>

---
From 8ef9e184ca867c0ed9aed5728364aed6e7dd47e3 Mon Sep 17 00:00:00 2001
From: Joshua Washington <mailto:joshwash@google.com>
Date: Fri, 29 Sep 2023 13:38:25 -0700
Subject: [PATCH] net/gve: fix max MTU limit
Cc: Xueming Li <mailto:xuemingl@nvidia.com>

[ upstream commit 030025b74202896e85a72b1e75049866800dd3f7 ]

This patch corrects the MTU setting behavior in the GVE DPDK driver to
remove the artificial upper limit of RTE_ETHER_MTU. Instead, the max MTU
is dictated by the default value of the MTU that the device sends during
initialization, which will always be the maximum supported MTU.

Fixes: 71dea04cdf9a ("net/gve: support device info and configure")

Signed-off-by: Joshua Washington <mailto:joshwash@google.com>
---
 drivers/net/gve/gve_ethdev.c | 5 +++--
 drivers/net/gve/gve_ethdev.h | 3 ---
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
index e357f16e16..806f45b0a7 100644
--- a/drivers/net/gve/gve_ethdev.c
+++ b/drivers/net/gve/gve_ethdev.c
@@ -5,6 +5,7 @@
 #include "gve_ethdev.h"
 #include "base/gve_adminq.h"
 #include "base/gve_register.h"
+#include "rte_ether.h"

 const char gve_version_str[] = GVE_VERSION;
 static const char gve_version_prefix[] = GVE_VERSION_PREFIX;
@@ -276,8 +277,8 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->max_tx_queues = priv->max_nb_txq;
        dev_info->min_rx_bufsize = GVE_MIN_BUF_SIZE;
        dev_info->max_rx_pktlen = GVE_MAX_RX_PKTLEN;
-       dev_info->max_mtu = GVE_MAX_MTU;
-       dev_info->min_mtu = GVE_MIN_MTU;
+       dev_info->max_mtu = priv->max_mtu;
+       dev_info->min_mtu = RTE_ETHER_MIN_MTU;

        dev_info->rx_offload_capa = 0;
        dev_info->tx_offload_capa =
diff --git a/drivers/net/gve/gve_ethdev.h b/drivers/net/gve/gve_ethdev.h
index 235e55899e..975318938d 100644
--- a/drivers/net/gve/gve_ethdev.h
+++ b/drivers/net/gve/gve_ethdev.h
@@ -31,9 +31,6 @@
 #define GVE_MIN_BUF_SIZE           1024
 #define GVE_MAX_RX_PKTLEN          65535

-#define GVE_MAX_MTU    RTE_ETHER_MTU
-#define GVE_MIN_MTU    RTE_ETHER_MIN_MTU
-
 /* A list of pages registered with the device during setup and used by a queue
  * as buffers
  */
--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -   2023-10-22 22:17:35.768883300 +0800
+++ 0036-net-gve-fix-max-MTU-limit.patch        2023-10-22 22:17:34.206723700 +0800
@@ -1 +1 @@
-From 030025b74202896e85a72b1e75049866800dd3f7 Mon Sep 17 00:00:00 2001
+From 8ef9e184ca867c0ed9aed5728364aed6e7dd47e3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <mailto:xuemingl@nvidia.com>
+
+[ upstream commit 030025b74202896e85a72b1e75049866800dd3f7 ]
@@ -12 +14,0 @@
-Cc: mailto:stable@dpdk.org
@@ -21 +23 @@
-index 9b25f3036b..b441f96623 100644
+index e357f16e16..806f45b0a7 100644
@@ -24 +26,3 @@
-@@ -7,6 +7,7 @@
+@@ -5,6 +5,7 @@
+ #include "gve_ethdev.h"
+ #include "base/gve_adminq.h"
@@ -26,2 +29,0 @@
- #include "base/gve_osdep.h"
- #include "gve_version.h"
@@ -30,3 +32,3 @@
- static void
- gve_write_version(uint8_t *driver_version_register)
-@@ -297,8 +298,8 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+ const char gve_version_str[] = GVE_VERSION;
+ static const char gve_version_prefix[] = GVE_VERSION_PREFIX;
+@@ -276,8 +277,8 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@ -44 +46 @@
-index ca94a09a2f..1cba282128 100644
+index 235e55899e..975318938d 100644
@@ -47 +49 @@
-@@ -23,9 +23,6 @@
+@@ -31,9 +31,6 @@
@@ -54,3 +56,3 @@
- #define GVE_TX_CKSUM_OFFLOAD_MASK (           \
-               RTE_MBUF_F_TX_L4_MASK  |        \
-               RTE_MBUF_F_TX_TCP_SEG)
+ /* A list of pages registered with the device during setup and used by a queue
+  * as buffers
+  */



-- 

Joshua Washington | Software Engineer | mailto:joshwash@google.com | (414) 366-4423
 

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch has been queued to stable release 22.11.4
  2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
                   ` (140 preceding siblings ...)
  2023-10-22 14:22 ` patch 'app/procinfo: remove unnecessary rte_malloc' " Xueming Li
@ 2023-12-11 10:10 ` Xueming Li
  2023-12-11 10:10   ` patch 'bus/ifpga: fix driver header dependency' " Xueming Li
                     ` (120 more replies)
  141 siblings, 121 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Xueming Li; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=6c688dec84856bd68682f8f6b082b11868906132

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6c688dec84856bd68682f8f6b082b11868906132 Mon Sep 17 00:00:00 2001
From: Xueming Li <xuemingl@nvidia.com>
Date: Mon, 11 Dec 2023 17:56:22 +0800
Subject: [PATCH] *** SUBJECT HERE ***
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>

*** BLURB HERE ***

Abdullah Sevincer (3):
  bus/pci: add PASID control
  event/dlb2: disable PASID
  event/dlb2: fix disable PASID

Alexander Kozyrev (3):
  net/mlx5/hws: fix integrity bits level
  net/mlx5: fix MPRQ stride size check
  ethdev: fix ESP packet type description

Bing Zhao (2):
  net/mlx5: fix flow workspace double free in Windows
  net/mlx5: fix shared Rx queue list management

Brian Dooley (2):
  doc: update kernel module entry in QAT guide
  examples/ipsec-secgw: fix partial overflow

Bruce Richardson (5):
  eventdev: fix device pointer for vdev-based devices
  eventdev: fix missing driver names in info struct
  ethdev: fix function name in comment
  event/dlb2: fix name check in self-test
  event/dlb2: fix missing queue ordering capability flag

Chaoyong He (3):
  net/nfp: fix crash on close
  net/nfp: fix reconfigure logic in PF initialization
  net/nfp: fix reconfigure logic in VF initialization

Christian Ehrhardt (1):
  config: fix RISC-V native build

Dariusz Sosnowski (7):
  net/mlx5: fix flow thread safety flag for HWS
  common/mlx5: fix controller index parsing
  net/mlx5: fix missing flow rules for external SQ
  net/mlx5: fix use after free on Rx queue start
  net/mlx5: fix hairpin queue unbind
  net/mlx5: fix hairpin queue states
  net/mlx5: fix offset size in conntrack flow action

David Marchand (7):
  bus/ifpga: fix driver header dependency
  net/tap: fix L4 checksum offloading
  net/tap: fix IPv4 checksum offloading
  net/iavf: fix indent in Tx path
  doc: remove restriction on ixgbe vector support
  doc: fix some ordered lists
  doc: remove number of commands in vDPA guide

Dengdui Huang (10):
  net/hns3: fix unchecked Rx free threshold
  net/hns3: fix double stats for IMP and global reset
  net/hns3: remove reset log in secondary
  net/hns3: fix multiple reset detected log
  net/hns3: fix IMP or global reset
  net/hns3: refactor interrupt state query
  net/hns3: fix mailbox sync
  net/hns3: fix ignored reset event
  net/hns3: fix reset event status
  net/hns3: fix VF reset handler interruption

Eli Britstein (1):
  net/mlx5: zero UDP checksum over IPv4 in encapsulation

Feifei Wang (1):
  app/pipeline: add sigint handler

Fengjiang Liu (1):
  net/virtio: fix missing next flag in Tx packed ring

Ferruh Yigit (3):
  net/txgbe: fix out of bound access
  mempool: fix get function documentation
  mempool: clarify enqueue/dequeue ops documentation

Gregory Etelson (1):
  eal/windows: fix build with recent MinGW

Hernan Vargas (2):
  test/bbdev: fix Python script subprocess
  test/bbdev: assert failed test for queue configure

Huisong Li (10):
  net/hns3: fix setting DCB capability
  net/hns3: fix LRO offload to report
  app/testpmd: remove useless check in TSO command
  app/testpmd: fix tunnel TSO capability check
  app/testpmd: add explicit check for tunnel TSO
  app/testpmd: fix tunnel TSO configuration
  doc: fix hns3 build option about max queue number
  doc: update features in hns3 guide
  doc: fix RSS flow description in hns3 guide
  examples/ethtool: fix pause configuration

Jiawei Wang (3):
  net/mlx5: fix decap action checking in sample flow
  net/mlx5: fix E-Switch mirror flow rule validation
  net/mlx5: fix validation of sample encap flow action

Jiawen Wu (2):
  net/txgbe: add proper memory barriers in Rx
  net/ngbe: add proper memory barriers in Rx

Jie Hai (8):
  net/hns3: fix typo in function name
  net/hns3: fix some return values
  net/hns3: fix some error logs
  net/hns3: keep set/get algo key functions local
  net/hns3: fix uninitialized hash algo value
  app/procinfo: fix RSS info
  app/procinfo: adjust format of RSS info
  test/bonding: fix uninitialized RSS configuration

Joshua Washington (2):
  net/gve: update max Rx packet length to be based on MTU
  ethdev: account for smaller MTU when setting default

Juraj Linkeš (1):
  config/arm: fix aarch32 build with GCC 13

Kevin Traynor (1):
  doc: update versions recommendations for i40e and ice

Kommula Shiva Shankar (1):
  common/cnxk: fix pool buffer size in opaque mode

Long Wu (3):
  test/bonding: remove unreachable statement
  test/bonding: add missing check
  net/bonding: fix possible overrun

Madhuker Mythri (1):
  net/tap: fix RSS for fragmented packets

Maxime Coquelin (6):
  vhost: fix missing vring call check on virtqueue access
  vhost: fix missing check on virtqueue access
  vhost: fix check on virtqueue access in async registration
  vhost: fix check on virtqueue access in in-flight getter
  vhost: fix missing lock protection in power monitor API
  vhost: fix checking virtqueue access in stats API

Min Zhou (1):
  test/hash: fix creation error log

Mingjin Ye (1):
  net/ice: fix crash on closing representor ports

Nagadheeraj Rottela (1):
  crypto/nitrox: fix panic with high number of segments

Nicolas Chautru (1):
  baseband/acc: fix TB mode on VRB1

Nithin Dabilpuram (1):
  net/cnxk: fix data offset in vector Tx

Ori Kam (1):
  net/mlx5: fix NIC flow capability query

Qi Zhang (2):
  net/iavf: fix Tx preparation
  net/ice: fix Tx preparation

Radu Nicolau (2):
  net/iavf: fix Tx offload mask
  net/iavf: fix Tx offload flags check

Robin Jarry (1):
  usertools/pmdinfo: fix usage typos

Ruifeng Wang (1):
  ethdev: fix 32-bit build with GCC 13

Satheesh Paul (1):
  common/cnxk: fix SDP channel mask

Shihong Wang (1):
  net/nfp: fix DMA error after abnormal exit

Srikanth Yalavarthi (1):
  build: add libarchive to optional external dependencies

Stephen Hemminger (5):
  app/testpmd: fix early exit from signal
  app/dumpcap: fix mbuf pool ring type
  meter: fix RFC4115 trTCM API Doxygen
  pdump: fix error number on IPC response
  app/dumpcap: allow multiple invocations

Suanming Mou (2):
  net/mlx5: fix counter query during port close
  net/mlx5: fix destroying external representor flow

Timothy Miskell (1):
  net/ice: fix L1 check interval

Tyler Retzlaff (2):
  malloc: remove return from void functions
  eal/riscv: fix vector type alignment

Viacheslav Ovsiienko (1):
  net/mlx5: fix multi-segment Tx inline data length

Weiguo Li (3):
  net/enic: avoid extra unlock in MTU set
  net/sfc: remove null dereference in log
  net/mlx5: fix unlock mismatch

Wenwu Ma (1):
  net/virtio: fix link state interrupt vector setting

Zhichao Zeng (1):
  net/ice: fix DCF port statistics

 .mailmap                                      |    8 +-
 app/dumpcap/main.c                            |   28 +-
 app/proc-info/main.c                          |   22 +-
 app/test-bbdev/test-bbdev.py                  |   29 +-
 app/test-bbdev/test_bbdev.c                   |    3 +-
 app/test-pipeline/main.c                      |   14 +
 app/test-pipeline/main.h                      |    2 +
 app/test-pipeline/pipeline_acl.c              |    6 +-
 app/test-pipeline/pipeline_hash.c             |  110 +-
 app/test-pipeline/pipeline_lpm.c              |    6 +-
 app/test-pipeline/pipeline_lpm_ipv6.c         |    6 +-
 app/test-pipeline/pipeline_stub.c             |    6 +-
 app/test-pipeline/runtime.c                   |  132 +-
 app/test-pmd/cmdline.c                        |  106 +-
 app/test-pmd/testpmd.c                        |   25 +-
 app/test/test_hash_readwrite.c                |    2 +-
 app/test/test_link_bonding.c                  |    3 +-
 app/test/test_link_bonding_mode4.c            |    3 +-
 app/test/test_link_bonding_rssconf.c          |    2 +-
 config/arm/meson.build                        |   40 +-
 config/meson.build                            |    7 +-
 doc/guides/cryptodevs/qat.rst                 |    4 +-
 doc/guides/nics/hns3.rst                      |   55 +-
 doc/guides/nics/i40e.rst                      |   17 +-
 doc/guides/nics/ice.rst                       |   11 +-
 doc/guides/nics/ixgbe.rst                     |    2 -
 doc/guides/nics/mlx5.rst                      |    8 +-
 doc/guides/nics/virtio.rst                    |   12 +
 doc/guides/platform/cnxk.rst                  |    3 +
 .../generic_segmentation_offload_lib.rst      |    2 +-
 doc/guides/sample_app_ug/vdpa.rst             |    3 +-
 doc/guides/tools/pmdinfo.rst                  |    2 +-
 drivers/baseband/acc/rte_acc200_pmd.c         |    3 +-
 drivers/bus/ifpga/bus_ifpga_driver.h          |    1 +
 drivers/bus/pci/pci_common.c                  |   10 +
 drivers/bus/pci/rte_bus_pci.h                 |   14 +
 drivers/bus/pci/version.map                   |    1 +
 drivers/common/cnxk/roc_npa.c                 |    6 +-
 drivers/common/cnxk/roc_npc.c                 |    5 +-
 drivers/common/cnxk/roc_npc.h                 |    2 +
 drivers/common/cnxk/version.map               |    1 +
 drivers/common/mlx5/linux/mlx5_common_os.c    |    5 +-
 drivers/common/mlx5/mlx5_devx_cmds.c          |    1 +
 drivers/crypto/nitrox/nitrox_sym_reqmgr.c     |   21 +-
 drivers/event/dlb2/dlb2.c                     |    1 +
 drivers/event/dlb2/dlb2_selftest.c            |    4 +-
 drivers/event/dlb2/pf/dlb2_main.c             |   38 +
 drivers/event/dpaa/dpaa_eventdev.c            |    6 +-
 drivers/event/dpaa2/dpaa2_eventdev.c          |    6 +-
 drivers/event/dsw/dsw_evdev.c                 |    2 +-
 drivers/event/octeontx/ssovf_evdev.c          |    2 +-
 drivers/event/opdl/opdl_evdev.c               |    2 +-
 drivers/event/skeleton/skeleton_eventdev.c    |    6 +-
 drivers/event/sw/sw_evdev.c                   |    2 +-
 drivers/net/bonding/rte_eth_bond_8023ad.c     |    7 +-
 drivers/net/cnxk/cn10k_tx.h                   |    6 +-
 drivers/net/enic/enic_main.c                  |    2 +-
 drivers/net/gve/gve_ethdev.c                  |    2 +-
 drivers/net/gve/gve_ethdev.h                  |    1 -
 drivers/net/hns3/hns3_cmd.c                   |   43 +-
 drivers/net/hns3/hns3_cmd.h                   |    1 +
 drivers/net/hns3/hns3_common.c                |    5 +-
 drivers/net/hns3/hns3_dcb.c                   |    2 +-
 drivers/net/hns3/hns3_dump.c                  |    1 +
 drivers/net/hns3/hns3_ethdev.c                |  234 +-
 drivers/net/hns3/hns3_ethdev.h                |   14 +
 drivers/net/hns3/hns3_ethdev_vf.c             |   43 +-
 drivers/net/hns3/hns3_fdir.c                  |    2 +-
 drivers/net/hns3/hns3_flow.c                  |    2 +-
 drivers/net/hns3/hns3_intr.c                  |    6 +-
 drivers/net/hns3/hns3_mbx.c                   |   81 +-
 drivers/net/hns3/hns3_mbx.h                   |   10 -
 drivers/net/hns3/hns3_rss.c                   |    8 +-
 drivers/net/hns3/hns3_rss.h                   |    4 -
 drivers/net/hns3/hns3_rxtx.c                  |    9 +
 drivers/net/hns3/hns3_stats.c                 |   15 +-
 drivers/net/hns3/hns3_tm.c                    |    4 +-
 drivers/net/iavf/iavf_ethdev.c                |    2 +
 drivers/net/iavf/iavf_rxtx.c                  |   10 +-
 drivers/net/iavf/iavf_rxtx.h                  |    2 +-
 drivers/net/ice/ice_dcf_ethdev.c              |   32 +-
 drivers/net/ice/ice_dcf_ethdev.h              |    3 +
 drivers/net/ice/ice_dcf_vf_representor.c      |   46 +-
 drivers/net/ice/ice_ethdev.c                  |    6 +-
 drivers/net/ice/ice_rxtx.c                    |   18 +-
 drivers/net/ice/ice_rxtx.h                    |    2 +
 drivers/net/mlx5/hws/mlx5dr_definer.c         |    6 +-
 drivers/net/mlx5/linux/mlx5_flow_os.c         |   25 +
 drivers/net/mlx5/linux/mlx5_flow_os.h         |    8 +
 drivers/net/mlx5/linux/mlx5_os.c              |    1 +
 drivers/net/mlx5/mlx5.c                       |    6 +-
 drivers/net/mlx5/mlx5.h                       |   45 +-
 drivers/net/mlx5/mlx5_flow.c                  |   34 +-
 drivers/net/mlx5/mlx5_flow.h                  |    7 +-
 drivers/net/mlx5/mlx5_flow_aso.c              |    3 +-
 drivers/net/mlx5/mlx5_flow_dv.c               |  119 +-
 drivers/net/mlx5/mlx5_flow_hw.c               |  134 +-
 drivers/net/mlx5/mlx5_hws_cnt.c               |   36 +-
 drivers/net/mlx5/mlx5_hws_cnt.h               |    2 +
 drivers/net/mlx5/mlx5_rxq.c                   |   27 +-
 drivers/net/mlx5/mlx5_trigger.c               |   29 +-
 drivers/net/mlx5/mlx5_tx.h                    |    2 +-
 drivers/net/mlx5/mlx5_txq.c                   |   12 +-
 drivers/net/mlx5/windows/mlx5_flow_os.c       |    6 +
 drivers/net/mlx5/windows/mlx5_flow_os.h       |    8 +
 drivers/net/nfp/flower/nfp_flower.c           |    2 -
 drivers/net/nfp/nfp_ethdev.c                  |   12 +-
 drivers/net/nfp/nfp_ethdev_vf.c               |    4 +-
 drivers/net/ngbe/ngbe_rxtx.c                  |   17 +
 drivers/net/sfc/sfc_ethdev.c                  |    2 +-
 drivers/net/tap/rte_eth_tap.c                 |   17 +-
 drivers/net/tap/tap_bpf_insns.h               | 2959 +++++++++--------
 drivers/net/tap/tap_bpf_program.c             |   45 +-
 drivers/net/txgbe/base/txgbe_mng.c            |   16 +-
 drivers/net/txgbe/txgbe_rxtx.c                |   47 +-
 drivers/net/virtio/virtio_ethdev.c            |   16 +-
 drivers/net/virtio/virtqueue.h                |    1 +
 examples/ethtool/ethtool-app/ethapp.c         |   59 +-
 examples/ipsec-secgw/ipsec.h                  |    7 +
 lib/eal/common/rte_malloc.c                   |    4 +-
 lib/eal/meson.build                           |    3 +
 lib/eal/riscv/include/rte_vect.h              |    2 +-
 lib/eal/windows/eal_memory.c                  |    8 +
 lib/ethdev/rte_ethdev.c                       |    4 +-
 lib/ethdev/rte_ethdev.h                       |    2 +-
 lib/ethdev/rte_flow.c                         |    4 +-
 lib/eventdev/eventdev_pmd_vdev.h              |    3 +-
 lib/eventdev/rte_eventdev.c                   |    2 +
 lib/mbuf/rte_mbuf_ptype.h                     |    4 +-
 lib/mempool/rte_mempool.h                     |   12 +-
 lib/meter/rte_meter.h                         |   12 -
 lib/pci/rte_pci.h                             |    4 +
 lib/pdump/rte_pdump.c                         |    5 +-
 lib/vhost/vhost.c                             |   86 +-
 usertools/dpdk-pmdinfo.py                     |    2 +-
 135 files changed, 3044 insertions(+), 2268 deletions(-)

--
2.25.1

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'bus/ifpga: fix driver header dependency' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'malloc: remove return from void functions' " Xueming Li
                     ` (119 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: David Marchand; +Cc: Bruce Richardson, Rosen Xu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=f2f948863b05e46f003d9966e67c29dd2d48d079

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f2f948863b05e46f003d9966e67c29dd2d48d079 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Mon, 23 Oct 2023 16:46:17 +0200
Subject: [PATCH] bus/ifpga: fix driver header dependency
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit caa8f72cb8456fbab614b24856a757033f1f5e94 ]

The driver header bus_ifpga_driver.h was not self sufficient.
Fix this by including dev_driver.h.

Fixes: 925c074e377b ("bus/ifpga: make driver-only headers private")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Rosen Xu <rosen.xu@intel.com>
---
 drivers/bus/ifpga/bus_ifpga_driver.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/bus/ifpga/bus_ifpga_driver.h b/drivers/bus/ifpga/bus_ifpga_driver.h
index 7b75c2ddbc..5bbe36d6e0 100644
--- a/drivers/bus/ifpga/bus_ifpga_driver.h
+++ b/drivers/bus/ifpga/bus_ifpga_driver.h
@@ -16,6 +16,7 @@ extern "C" {
 #endif /* __cplusplus */
 
 #include <rte_compat.h>
+#include <dev_driver.h>
 #include <rte_pci.h>
 #include <rte_interrupts.h>
 #include <rte_spinlock.h>
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.311790800 +0800
+++ 0001-bus-ifpga-fix-driver-header-dependency.patch	2023-12-11 17:56:22.877652300 +0800
@@ -1 +1 @@
-From caa8f72cb8456fbab614b24856a757033f1f5e94 Mon Sep 17 00:00:00 2001
+From f2f948863b05e46f003d9966e67c29dd2d48d079 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit caa8f72cb8456fbab614b24856a757033f1f5e94 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'malloc: remove return from void functions' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
  2023-12-11 10:10   ` patch 'bus/ifpga: fix driver header dependency' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'eventdev: fix device pointer for vdev-based devices' " Xueming Li
                     ` (118 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Tyler Retzlaff; +Cc: Morten Brørup, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=4f5e8c612ff6243923a51e2d6c93bc7cf6829b10

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 4f5e8c612ff6243923a51e2d6c93bc7cf6829b10 Mon Sep 17 00:00:00 2001
From: Tyler Retzlaff <roretzla@linux.microsoft.com>
Date: Tue, 17 Oct 2023 06:03:39 -0700
Subject: [PATCH] malloc: remove return from void functions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 732ba1be28f75c87aa2616660d34ed0a278c7ae6 ]

Remove return from rte_free and eal_free_no_trace both functions are
declared to have a return type of void so they shouldn't return a value.

Fixes: 52f409d614a0 ("trace: add memory tracepoints")

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
---
 lib/eal/common/rte_malloc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/eal/common/rte_malloc.c b/lib/eal/common/rte_malloc.c
index 48db264449..dbd8eae5b0 100644
--- a/lib/eal/common/rte_malloc.c
+++ b/lib/eal/common/rte_malloc.c
@@ -41,13 +41,13 @@ mem_free(void *addr, const bool trace_ena)
 void
 rte_free(void *addr)
 {
-	return mem_free(addr, true);
+	mem_free(addr, true);
 }
 
 void
 eal_free_no_trace(void *addr)
 {
-	return mem_free(addr, false);
+	mem_free(addr, false);
 }
 
 static void *
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.336031200 +0800
+++ 0002-malloc-remove-return-from-void-functions.patch	2023-12-11 17:56:22.877652300 +0800
@@ -1 +1 @@
-From 732ba1be28f75c87aa2616660d34ed0a278c7ae6 Mon Sep 17 00:00:00 2001
+From 4f5e8c612ff6243923a51e2d6c93bc7cf6829b10 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 732ba1be28f75c87aa2616660d34ed0a278c7ae6 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index ebafef3f6c..9db0c399ae 100644
+index 48db264449..dbd8eae5b0 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'eventdev: fix device pointer for vdev-based devices' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
  2023-12-11 10:10   ` patch 'bus/ifpga: fix driver header dependency' " Xueming Li
  2023-12-11 10:10   ` patch 'malloc: remove return from void functions' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'eventdev: fix missing driver names in info struct' " Xueming Li
                     ` (117 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=0beed895efdc0a7fe2aaf89e1f9829e9f379108d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 0beed895efdc0a7fe2aaf89e1f9829e9f379108d Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Wed, 18 Oct 2023 14:39:31 +0100
Subject: [PATCH] eventdev: fix device pointer for vdev-based devices
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 928b5c701f254c64a7adb0051c0cfd25e8365584 ]

The eventdevs based on vdevs, rather than on e.g. HW PCI devices, were,
as a rule, not setting the ".dev" pointer in the eventdev structure.
This caused issues as a NULL pointer was returned in calls to info_get,
triggering crashes if the pointer is passed unchecked to e.g.
rte_dev_name() to print out the name of an event device.

Most effective, and future-proofed fix, is to not rely on the eventdev
drivers to set the pointer themselves, but to change the vdev init
function to take the vdev struct as parameter, and set the "dev" pointer
centrally on init. This allows us to fix all drivers in one go, enforced
by compiler error if the parameter is missing.

Fixes: aaa4a221da26 ("event/sw: add new software-only eventdev driver")
Fixes: 46a186b1f0c5 ("event/dsw: add device registration and build system")
Fixes: bbbb929da5e6 ("event/skeleton: add skeleton eventdev driver")
Fixes: 3c7f3dcfb099 ("event/opdl: add PMD main body and helper function")
Fixes: 9caac5dd1e7f ("event/dpaa: introduce PMD")
Fixes: 8a5d7a8ec74b ("event/dpaa2: initialize device")
Fixes: 34498de6000f ("event/octeontx: add octeontx eventdev driver")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 drivers/event/dpaa/dpaa_eventdev.c         | 6 +++---
 drivers/event/dpaa2/dpaa2_eventdev.c       | 6 +++---
 drivers/event/dsw/dsw_evdev.c              | 2 +-
 drivers/event/octeontx/ssovf_evdev.c       | 2 +-
 drivers/event/opdl/opdl_evdev.c            | 2 +-
 drivers/event/skeleton/skeleton_eventdev.c | 6 +++---
 drivers/event/sw/sw_evdev.c                | 2 +-
 lib/eventdev/eventdev_pmd_vdev.h           | 3 ++-
 8 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/drivers/event/dpaa/dpaa_eventdev.c b/drivers/event/dpaa/dpaa_eventdev.c
index 4b3d16735b..2532abbe78 100644
--- a/drivers/event/dpaa/dpaa_eventdev.c
+++ b/drivers/event/dpaa/dpaa_eventdev.c
@@ -993,14 +993,14 @@ dpaa_event_check_flags(const char *params)
 }
 
 static int
-dpaa_event_dev_create(const char *name, const char *params)
+dpaa_event_dev_create(const char *name, const char *params, struct rte_vdev_device *vdev)
 {
 	struct rte_eventdev *eventdev;
 	struct dpaa_eventdev *priv;
 
 	eventdev = rte_event_pmd_vdev_init(name,
 					   sizeof(struct dpaa_eventdev),
-					   rte_socket_id());
+					   rte_socket_id(), vdev);
 	if (eventdev == NULL) {
 		DPAA_EVENTDEV_ERR("Failed to create eventdev vdev %s", name);
 		goto fail;
@@ -1050,7 +1050,7 @@ dpaa_event_dev_probe(struct rte_vdev_device *vdev)
 
 	params = rte_vdev_device_args(vdev);
 
-	return dpaa_event_dev_create(name, params);
+	return dpaa_event_dev_create(name, params, vdev);
 }
 
 static int
diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c
index fa1a1ade80..1e64806849 100644
--- a/drivers/event/dpaa2/dpaa2_eventdev.c
+++ b/drivers/event/dpaa2/dpaa2_eventdev.c
@@ -1086,7 +1086,7 @@ dpaa2_eventdev_setup_dpci(struct dpaa2_dpci_dev *dpci_dev,
 }
 
 static int
-dpaa2_eventdev_create(const char *name)
+dpaa2_eventdev_create(const char *name, struct rte_vdev_device *vdev)
 {
 	struct rte_eventdev *eventdev;
 	struct dpaa2_eventdev *priv;
@@ -1096,7 +1096,7 @@ dpaa2_eventdev_create(const char *name)
 
 	eventdev = rte_event_pmd_vdev_init(name,
 					   sizeof(struct dpaa2_eventdev),
-					   rte_socket_id());
+					   rte_socket_id(), vdev);
 	if (eventdev == NULL) {
 		DPAA2_EVENTDEV_ERR("Failed to create Event device %s", name);
 		goto fail;
@@ -1190,7 +1190,7 @@ dpaa2_eventdev_probe(struct rte_vdev_device *vdev)
 
 	name = rte_vdev_device_name(vdev);
 	DPAA2_EVENTDEV_INFO("Initializing %s", name);
-	return dpaa2_eventdev_create(name);
+	return dpaa2_eventdev_create(name, vdev);
 }
 
 static int
diff --git a/drivers/event/dsw/dsw_evdev.c b/drivers/event/dsw/dsw_evdev.c
index 6c5cde2468..abe8e68525 100644
--- a/drivers/event/dsw/dsw_evdev.c
+++ b/drivers/event/dsw/dsw_evdev.c
@@ -434,7 +434,7 @@ dsw_probe(struct rte_vdev_device *vdev)
 	name = rte_vdev_device_name(vdev);
 
 	dev = rte_event_pmd_vdev_init(name, sizeof(struct dsw_evdev),
-				      rte_socket_id());
+				      rte_socket_id(), vdev);
 	if (dev == NULL)
 		return -EFAULT;
 
diff --git a/drivers/event/octeontx/ssovf_evdev.c b/drivers/event/octeontx/ssovf_evdev.c
index 650266b996..d5e223077d 100644
--- a/drivers/event/octeontx/ssovf_evdev.c
+++ b/drivers/event/octeontx/ssovf_evdev.c
@@ -880,7 +880,7 @@ ssovf_vdev_probe(struct rte_vdev_device *vdev)
 	}
 
 	eventdev = rte_event_pmd_vdev_init(name, sizeof(struct ssovf_evdev),
-				rte_socket_id());
+				rte_socket_id(), vdev);
 	if (eventdev == NULL) {
 		ssovf_log_err("Failed to create eventdev vdev %s", name);
 		return -ENOMEM;
diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c
index 9ce8b39b60..08ace84bbe 100644
--- a/drivers/event/opdl/opdl_evdev.c
+++ b/drivers/event/opdl/opdl_evdev.c
@@ -696,7 +696,7 @@ opdl_probe(struct rte_vdev_device *vdev)
 		}
 	}
 	dev = rte_event_pmd_vdev_init(name,
-			sizeof(struct opdl_evdev), socket_id);
+			sizeof(struct opdl_evdev), socket_id, vdev);
 
 	if (dev == NULL) {
 		PMD_DRV_LOG(ERR, "eventdev vdev init() failed");
diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c
index 8513b9a013..45c13c62c7 100644
--- a/drivers/event/skeleton/skeleton_eventdev.c
+++ b/drivers/event/skeleton/skeleton_eventdev.c
@@ -427,12 +427,12 @@ RTE_PMD_REGISTER_PCI_TABLE(event_skeleton_pci, pci_id_skeleton_map);
 /* VDEV based event device */
 
 static int
-skeleton_eventdev_create(const char *name, int socket_id)
+skeleton_eventdev_create(const char *name, int socket_id, struct rte_vdev_device *vdev)
 {
 	struct rte_eventdev *eventdev;
 
 	eventdev = rte_event_pmd_vdev_init(name,
-			sizeof(struct skeleton_eventdev), socket_id);
+			sizeof(struct skeleton_eventdev), socket_id, vdev);
 	if (eventdev == NULL) {
 		PMD_DRV_ERR("Failed to create eventdev vdev %s", name);
 		goto fail;
@@ -458,7 +458,7 @@ skeleton_eventdev_probe(struct rte_vdev_device *vdev)
 	name = rte_vdev_device_name(vdev);
 	RTE_LOG(INFO, PMD, "Initializing %s on NUMA node %d\n", name,
 			rte_socket_id());
-	return skeleton_eventdev_create(name, rte_socket_id());
+	return skeleton_eventdev_create(name, rte_socket_id(), vdev);
 }
 
 static int
diff --git a/drivers/event/sw/sw_evdev.c b/drivers/event/sw/sw_evdev.c
index 3531821dd4..2a2763ee9b 100644
--- a/drivers/event/sw/sw_evdev.c
+++ b/drivers/event/sw/sw_evdev.c
@@ -1074,7 +1074,7 @@ sw_probe(struct rte_vdev_device *vdev)
 			min_burst_size, deq_burst_size, refill_once);
 
 	dev = rte_event_pmd_vdev_init(name,
-			sizeof(struct sw_evdev), socket_id);
+			sizeof(struct sw_evdev), socket_id, vdev);
 	if (dev == NULL) {
 		SW_LOG_ERR("eventdev vdev init() failed");
 		return -EFAULT;
diff --git a/lib/eventdev/eventdev_pmd_vdev.h b/lib/eventdev/eventdev_pmd_vdev.h
index 5fa9d699ac..bb433ba955 100644
--- a/lib/eventdev/eventdev_pmd_vdev.h
+++ b/lib/eventdev/eventdev_pmd_vdev.h
@@ -45,7 +45,7 @@ extern "C" {
 __rte_internal
 static inline struct rte_eventdev *
 rte_event_pmd_vdev_init(const char *name, size_t dev_private_size,
-		int socket_id)
+		int socket_id, struct rte_vdev_device *vdev)
 {
 
 	struct rte_eventdev *eventdev;
@@ -67,6 +67,7 @@ rte_event_pmd_vdev_init(const char *name, size_t dev_private_size,
 			rte_panic("Cannot allocate memzone for private device"
 					" data");
 	}
+	eventdev->dev = &vdev->device;
 
 	return eventdev;
 }
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.364347700 +0800
+++ 0003-eventdev-fix-device-pointer-for-vdev-based-devices.patch	2023-12-11 17:56:22.877652300 +0800
@@ -1 +1 @@
-From 928b5c701f254c64a7adb0051c0cfd25e8365584 Mon Sep 17 00:00:00 2001
+From 0beed895efdc0a7fe2aaf89e1f9829e9f379108d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 928b5c701f254c64a7adb0051c0cfd25e8365584 ]
@@ -25 +27,0 @@
-Cc: stable@dpdk.org
@@ -41 +43 @@
-index f615da3813..46a9b88c73 100644
+index 4b3d16735b..2532abbe78 100644
@@ -44 +46 @@
-@@ -994,14 +994,14 @@ dpaa_event_check_flags(const char *params)
+@@ -993,14 +993,14 @@ dpaa_event_check_flags(const char *params)
@@ -61 +63 @@
-@@ -1051,7 +1051,7 @@ dpaa_event_dev_probe(struct rte_vdev_device *vdev)
+@@ -1050,7 +1050,7 @@ dpaa_event_dev_probe(struct rte_vdev_device *vdev)
@@ -71 +73 @@
-index ffc5550f85..dd4e64395f 100644
+index fa1a1ade80..1e64806849 100644
@@ -102 +104 @@
-index 785c12f61f..1209e73a9d 100644
+index 6c5cde2468..abe8e68525 100644
@@ -105 +107 @@
-@@ -435,7 +435,7 @@ dsw_probe(struct rte_vdev_device *vdev)
+@@ -434,7 +434,7 @@ dsw_probe(struct rte_vdev_device *vdev)
@@ -115 +117 @@
-index 0eb9358981..a16f24e088 100644
+index 650266b996..d5e223077d 100644
@@ -128 +130 @@
-index dd25749654..0cccaf7e97 100644
+index 9ce8b39b60..08ace84bbe 100644
@@ -131 +133 @@
-@@ -697,7 +697,7 @@ opdl_probe(struct rte_vdev_device *vdev)
+@@ -696,7 +696,7 @@ opdl_probe(struct rte_vdev_device *vdev)
@@ -141 +143 @@
-index dd2dab2e27..7df032b7da 100644
+index 8513b9a013..45c13c62c7 100644
@@ -144 +146 @@
-@@ -428,12 +428,12 @@ RTE_PMD_REGISTER_PCI_TABLE(event_skeleton_pci, pci_id_skeleton_map);
+@@ -427,12 +427,12 @@ RTE_PMD_REGISTER_PCI_TABLE(event_skeleton_pci, pci_id_skeleton_map);
@@ -159 +161 @@
-@@ -459,7 +459,7 @@ skeleton_eventdev_probe(struct rte_vdev_device *vdev)
+@@ -458,7 +458,7 @@ skeleton_eventdev_probe(struct rte_vdev_device *vdev)
@@ -169 +171 @@
-index 6d1816b76d..55e7735cb0 100644
+index 3531821dd4..2a2763ee9b 100644
@@ -172 +174 @@
-@@ -1075,7 +1075,7 @@ sw_probe(struct rte_vdev_device *vdev)
+@@ -1074,7 +1074,7 @@ sw_probe(struct rte_vdev_device *vdev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'eventdev: fix missing driver names in info struct' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (2 preceding siblings ...)
  2023-12-11 10:10   ` patch 'eventdev: fix device pointer for vdev-based devices' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/virtio: fix missing next flag in Tx packed ring' " Xueming Li
                     ` (116 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=51205657f12ea43eec8805101d6f91aeb0e3b5bb

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 51205657f12ea43eec8805101d6f91aeb0e3b5bb Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Wed, 18 Oct 2023 14:39:33 +0100
Subject: [PATCH] eventdev: fix missing driver names in info struct
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit cbbba8b87e03a028a2ac2f3542f1927ba4edc598 ]

Rather than relying on the individual drivers to always populated the
driver name field in the info structure - something missed by some
drivers, we can do so in the eventdev rte_event_dev_info_get() function.
This fixes issues

Fixes: bbbb929da5e6 ("event/skeleton: add skeleton eventdev driver")
Fixes: 0ce3ce7c275c ("event/dpaa2: add configuration functions")

Suggested-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/eventdev/rte_eventdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/eventdev/rte_eventdev.c b/lib/eventdev/rte_eventdev.c
index 78336faa6a..04eeb76d4f 100644
--- a/lib/eventdev/rte_eventdev.c
+++ b/lib/eventdev/rte_eventdev.c
@@ -99,6 +99,8 @@ rte_event_dev_info_get(uint8_t dev_id, struct rte_event_dev_info *dev_info)
 	dev_info->dequeue_timeout_ns = dev->data->dev_conf.dequeue_timeout_ns;
 
 	dev_info->dev = dev->dev;
+	if (dev->dev != NULL && dev->dev->driver != NULL)
+		dev_info->driver_name = dev->dev->driver->name;
 	return 0;
 }
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.395726200 +0800
+++ 0004-eventdev-fix-missing-driver-names-in-info-struct.patch	2023-12-11 17:56:22.877652300 +0800
@@ -1 +1 @@
-From cbbba8b87e03a028a2ac2f3542f1927ba4edc598 Mon Sep 17 00:00:00 2001
+From 51205657f12ea43eec8805101d6f91aeb0e3b5bb Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit cbbba8b87e03a028a2ac2f3542f1927ba4edc598 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 95373bbaad..0ca32d6721 100644
+index 78336faa6a..04eeb76d4f 100644
@@ -25 +27 @@
-@@ -104,6 +104,8 @@ rte_event_dev_info_get(uint8_t dev_id, struct rte_event_dev_info *dev_info)
+@@ -99,6 +99,8 @@ rte_event_dev_info_get(uint8_t dev_id, struct rte_event_dev_info *dev_info)
@@ -31,2 +33,2 @@
- 
- 	rte_eventdev_trace_info_get(dev_id, dev_info, dev_info->dev);
+ 	return 0;
+ }

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/virtio: fix missing next flag in Tx packed ring' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (3 preceding siblings ...)
  2023-12-11 10:10   ` patch 'eventdev: fix missing driver names in info struct' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/virtio: fix link state interrupt vector setting' " Xueming Li
                     ` (115 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Fengjiang Liu; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=b485fae237054b241cec32a3b7e13c4204d6ffbf

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b485fae237054b241cec32a3b7e13c4204d6ffbf Mon Sep 17 00:00:00 2001
From: Fengjiang Liu <liufengjiang.0426@bytedance.com>
Date: Tue, 17 Oct 2023 15:26:23 +0800
Subject: [PATCH] net/virtio: fix missing next flag in Tx packed ring
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit f923636411c557782f4718de8bee856d60afa74c ]

When the packets is sent in packed mode, and the packets data and
virtio-header are divided into two desc, set the next flag of
virtio-header desc

Bugzilla ID: 1295
Fixes: 892dc798fa9c ("net/virtio: implement Tx path for packed queues")

Signed-off-by: Fengjiang Liu <liufengjiang.0426@bytedance.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 .mailmap                       | 1 +
 drivers/net/virtio/virtqueue.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/.mailmap b/.mailmap
index 83b960753a..a1ff0137a7 100644
--- a/.mailmap
+++ b/.mailmap
@@ -380,6 +380,7 @@ Farah Smith <farah.smith@broadcom.com>
 Fei Chen <chenwei.0515@bytedance.com>
 Feifei Wang <feifei.wang2@arm.com> <feifei.wang@arm.com>
 Fei Qin <fei.qin@corigine.com>
+Fengjiang Liu <liufengjiang.0426@bytedance.com>
 Fengnan Chang <changfengnan@bytedance.com>
 Fengtian Guo <fengtian.guo@6wind.com>
 Ferdinand Thiessen <rpm@fthiessen.de>
diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h
index f5d8b40cad..5c9230cfe1 100644
--- a/drivers/net/virtio/virtqueue.h
+++ b/drivers/net/virtio/virtqueue.h
@@ -771,6 +771,7 @@ virtqueue_enqueue_xmit_packed(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
 		start_dp[idx].addr  = txvq->virtio_net_hdr_mem +
 			RTE_PTR_DIFF(&txr[idx].tx_hdr, txr);
 		start_dp[idx].len   = vq->hw->vtnet_hdr_size;
+		head_flags |= VRING_DESC_F_NEXT;
 		hdr = (struct virtio_net_hdr *)&txr[idx].tx_hdr;
 		idx++;
 		if (idx >= vq->vq_nentries) {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.418783700 +0800
+++ 0005-net-virtio-fix-missing-next-flag-in-Tx-packed-ring.patch	2023-12-11 17:56:22.877652300 +0800
@@ -1 +1 @@
-From f923636411c557782f4718de8bee856d60afa74c Mon Sep 17 00:00:00 2001
+From b485fae237054b241cec32a3b7e13c4204d6ffbf Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit f923636411c557782f4718de8bee856d60afa74c ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 3f5bab26a8..5273df74cb 100644
+index 83b960753a..a1ff0137a7 100644
@@ -25 +27 @@
-@@ -394,6 +394,7 @@ Farah Smith <farah.smith@broadcom.com>
+@@ -380,6 +380,7 @@ Farah Smith <farah.smith@broadcom.com>
@@ -34 +36 @@
-index c1cb941c43..5d0c0399a8 100644
+index f5d8b40cad..5c9230cfe1 100644
@@ -37,4 +39,4 @@
-@@ -682,6 +682,7 @@ virtqueue_enqueue_xmit_packed(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
- 		 */
- 		start_dp[idx].addr = txvq->hdr_mem + RTE_PTR_DIFF(&txr[idx].tx_hdr, txr);
- 		start_dp[idx].len = vq->hw->vtnet_hdr_size;
+@@ -771,6 +771,7 @@ virtqueue_enqueue_xmit_packed(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
+ 		start_dp[idx].addr  = txvq->virtio_net_hdr_mem +
+ 			RTE_PTR_DIFF(&txr[idx].tx_hdr, txr);
+ 		start_dp[idx].len   = vq->hw->vtnet_hdr_size;

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/virtio: fix link state interrupt vector setting' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (4 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/virtio: fix missing next flag in Tx packed ring' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'vhost: fix missing vring call check on virtqueue access' " Xueming Li
                     ` (114 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Wenwu Ma; +Cc: Wei Ling, Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=c1001c18e68e2507e2484b55d8bd4bc16745755b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c1001c18e68e2507e2484b55d8bd4bc16745755b Mon Sep 17 00:00:00 2001
From: Wenwu Ma <wenwux.ma@intel.com>
Date: Mon, 23 Oct 2023 09:46:12 +0800
Subject: [PATCH] net/virtio: fix link state interrupt vector setting
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit efc3f842b3dd69c4e65dbdf6cdaccde8c759b5d9 ]

Setting the vector for link state interrupts should be
done before the device initialization is completed.

Fixes: ee85024cf5f7 ("net/virtio: complete init stage at the right place")

Signed-off-by: Wenwu Ma <wenwux.ma@intel.com>
Tested-by: Wei Ling <weix.ling@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/net/virtio/virtio_ethdev.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index 11b9a4bc72..5e9ed47551 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -2356,6 +2356,14 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
 		}
 	}
 
+	if (eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC)
+		/* Enable vector (0) for Link State Interrupt */
+		if (VIRTIO_OPS(hw)->set_config_irq(hw, 0) ==
+				VIRTIO_MSI_NO_VECTOR) {
+			PMD_DRV_LOG(ERR, "failed to set config vector");
+			return -EBUSY;
+		}
+
 	virtio_reinit_complete(hw);
 
 	return 0;
@@ -2675,14 +2683,6 @@ virtio_dev_configure(struct rte_eth_dev *dev)
 	hw->has_tx_offload = tx_offload_enabled(hw);
 	hw->has_rx_offload = rx_offload_enabled(hw);
 
-	if (dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC)
-		/* Enable vector (0) for Link State Interrupt */
-		if (VIRTIO_OPS(hw)->set_config_irq(hw, 0) ==
-				VIRTIO_MSI_NO_VECTOR) {
-			PMD_DRV_LOG(ERR, "failed to set config vector");
-			return -EBUSY;
-		}
-
 	if (virtio_with_packed_queue(hw)) {
 #if defined(RTE_ARCH_X86_64) && defined(CC_AVX512_SUPPORT)
 		if ((hw->use_vec_rx || hw->use_vec_tx) &&
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.451351000 +0800
+++ 0006-net-virtio-fix-link-state-interrupt-vector-setting.patch	2023-12-11 17:56:22.887652300 +0800
@@ -1 +1 @@
-From efc3f842b3dd69c4e65dbdf6cdaccde8c759b5d9 Mon Sep 17 00:00:00 2001
+From c1001c18e68e2507e2484b55d8bd4bc16745755b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit efc3f842b3dd69c4e65dbdf6cdaccde8c759b5d9 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 3ab56ef769..c2c0a1a111 100644
+index 11b9a4bc72..5e9ed47551 100644
@@ -23 +25 @@
-@@ -1912,6 +1912,14 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
+@@ -2356,6 +2356,14 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
@@ -38 +40 @@
-@@ -2237,14 +2245,6 @@ virtio_dev_configure(struct rte_eth_dev *dev)
+@@ -2675,14 +2683,6 @@ virtio_dev_configure(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'vhost: fix missing vring call check on virtqueue access' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (5 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/virtio: fix link state interrupt vector setting' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'vhost: fix missing " Xueming Li
                     ` (113 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: Li Feng, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=ac1162d97a7053a702f3d063d99af431a40d49f2

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ac1162d97a7053a702f3d063d99af431a40d49f2 Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 20 Oct 2023 10:47:58 +0200
Subject: [PATCH] vhost: fix missing vring call check on virtqueue access
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit af7f683615244675fc4f472a2aa42880896476ad ]

Acquiring the access lock is not enough to ensure
virtqueue's metadata such as vring pointers are valid.

The access status must also be checked.

Fixes: 6c299bb7322f ("vhost: introduce vring call API")
Fixes: c5736998305d ("vhost: fix missing virtqueue lock protection")
Fixes: 830f7e790732 ("vhost: add non-blocking API for posting interrupt")

Reported-by: Li Feng <fengli@smartx.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 lib/vhost/vhost.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 19c7b92c32..69e1a9b049 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -1294,6 +1294,7 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
 {
 	struct virtio_net *dev;
 	struct vhost_virtqueue *vq;
+	int ret = 0;
 
 	dev = get_device(vid);
 	if (!dev)
@@ -1308,14 +1309,20 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
 
 	rte_spinlock_lock(&vq->access_lock);
 
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	if (vq_is_packed(dev))
 		vhost_vring_call_packed(dev, vq);
 	else
 		vhost_vring_call_split(dev, vq);
 
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
-	return 0;
+	return ret;
 }
 
 int
@@ -1323,6 +1330,7 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
 {
 	struct virtio_net *dev;
 	struct vhost_virtqueue *vq;
+	int ret = 0;
 
 	dev = get_device(vid);
 	if (!dev)
@@ -1338,14 +1346,20 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
 	if (!rte_spinlock_trylock(&vq->access_lock))
 		return -EAGAIN;
 
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	if (vq_is_packed(dev))
 		vhost_vring_call_packed(dev, vq);
 	else
 		vhost_vring_call_split(dev, vq);
 
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
-	return 0;
+	return ret;
 }
 
 uint16_t
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.478214400 +0800
+++ 0007-vhost-fix-missing-vring-call-check-on-virtqueue-acce.patch	2023-12-11 17:56:22.887652300 +0800
@@ -1 +1 @@
-From af7f683615244675fc4f472a2aa42880896476ad Mon Sep 17 00:00:00 2001
+From ac1162d97a7053a702f3d063d99af431a40d49f2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit af7f683615244675fc4f472a2aa42880896476ad ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index bdcf85bece..b438330063 100644
+index 19c7b92c32..69e1a9b049 100644
@@ -27 +29 @@
-@@ -1332,6 +1332,7 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
+@@ -1294,6 +1294,7 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
@@ -35 +37 @@
-@@ -1346,14 +1347,20 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
+@@ -1308,14 +1309,20 @@ rte_vhost_vring_call(int vid, uint16_t vring_idx)
@@ -37 +39 @@
- 	rte_rwlock_read_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -50 +52 @@
- 	rte_rwlock_read_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);
@@ -57 +59 @@
-@@ -1361,6 +1368,7 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
+@@ -1323,6 +1330,7 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
@@ -65,2 +67,2 @@
-@@ -1376,14 +1384,20 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
- 	if (rte_rwlock_read_trylock(&vq->access_lock))
+@@ -1338,14 +1346,20 @@ rte_vhost_vring_call_nonblock(int vid, uint16_t vring_idx)
+ 	if (!rte_spinlock_trylock(&vq->access_lock))
@@ -80 +82 @@
- 	rte_rwlock_read_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'vhost: fix missing check on virtqueue access' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (6 preceding siblings ...)
  2023-12-11 10:10   ` patch 'vhost: fix missing vring call check on virtqueue access' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'vhost: fix check on virtqueue access in async registration' " Xueming Li
                     ` (112 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=2dc5b2aadd3576a168b8a6c8e4e105313022b432

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 2dc5b2aadd3576a168b8a6c8e4e105313022b432 Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 20 Oct 2023 10:47:59 +0200
Subject: [PATCH] vhost: fix missing check on virtqueue access
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 094c442cdbf1da3a19ae82ca7069fee8b3a43343 ]

Acquiring the access lock is not enough to ensure
virtqueue's metadata such as vring pointers are valid.

The access status must also be checked.

Fixes: 4e0de8dac853 ("vhost: protect vring access done by application")

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 lib/vhost/vhost.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 69e1a9b049..0188bdb6c5 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -1382,7 +1382,10 @@ rte_vhost_avail_entries(int vid, uint16_t queue_id)
 
 	rte_spinlock_lock(&vq->access_lock);
 
-	if (unlikely(!vq->enabled || vq->avail == NULL))
+	if (unlikely(!vq->access_ok))
+		goto out;
+
+	if (unlikely(!vq->enabled))
 		goto out;
 
 	ret = *(volatile uint16_t *)&vq->avail->idx - vq->last_used_idx;
@@ -1474,9 +1477,15 @@ rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable)
 
 	rte_spinlock_lock(&vq->access_lock);
 
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	vq->notif_enable = enable;
 	ret = vhost_enable_guest_notification(dev, vq, enable);
 
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
 	return ret;
@@ -1537,7 +1546,10 @@ rte_vhost_rx_queue_count(int vid, uint16_t qid)
 
 	rte_spinlock_lock(&vq->access_lock);
 
-	if (unlikely(!vq->enabled || vq->avail == NULL))
+	if (unlikely(!vq->access_ok))
+		goto out;
+
+	if (unlikely(!vq->enabled))
 		goto out;
 
 	ret = *((volatile uint16_t *)&vq->avail->idx) - vq->last_avail_idx;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.507470400 +0800
+++ 0008-vhost-fix-missing-check-on-virtqueue-access.patch	2023-12-11 17:56:22.887652300 +0800
@@ -1 +1 @@
-From 094c442cdbf1da3a19ae82ca7069fee8b3a43343 Mon Sep 17 00:00:00 2001
+From 2dc5b2aadd3576a168b8a6c8e4e105313022b432 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 094c442cdbf1da3a19ae82ca7069fee8b3a43343 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index b438330063..43173c9eee 100644
+index 69e1a9b049..0188bdb6c5 100644
@@ -24 +26 @@
-@@ -1420,7 +1420,10 @@ rte_vhost_avail_entries(int vid, uint16_t queue_id)
+@@ -1382,7 +1382,10 @@ rte_vhost_avail_entries(int vid, uint16_t queue_id)
@@ -26 +28 @@
- 	rte_rwlock_write_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -36 +38 @@
-@@ -1512,9 +1515,15 @@ rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable)
+@@ -1474,9 +1477,15 @@ rte_vhost_enable_guest_notification(int vid, uint16_t queue_id, int enable)
@@ -38 +40 @@
- 	rte_rwlock_write_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -49 +51 @@
- 	rte_rwlock_write_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);
@@ -52 +54 @@
-@@ -1607,7 +1616,10 @@ rte_vhost_rx_queue_count(int vid, uint16_t qid)
+@@ -1537,7 +1546,10 @@ rte_vhost_rx_queue_count(int vid, uint16_t qid)
@@ -54 +56 @@
- 	rte_rwlock_write_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'vhost: fix check on virtqueue access in async registration' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (7 preceding siblings ...)
  2023-12-11 10:10   ` patch 'vhost: fix missing " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'vhost: fix check on virtqueue access in in-flight getter' " Xueming Li
                     ` (111 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=7f80528fbdeb8a282ce562270d1ce6de8524595b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7f80528fbdeb8a282ce562270d1ce6de8524595b Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 20 Oct 2023 10:48:01 +0200
Subject: [PATCH] vhost: fix check on virtqueue access in async registration
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 867d31bed41c87510e860956ee6a67c047d98f87 ]

Acquiring the access lock is not enough to ensure
virtqueue's metadata such as vring pointers are valid.

The access status must also be checked.

Fixes: 78639d54563a ("vhost: introduce async enqueue registration API")

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 lib/vhost/vhost.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 0188bdb6c5..695aa167dc 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -1784,7 +1784,15 @@ rte_vhost_async_channel_register(int vid, uint16_t queue_id)
 		return -1;
 
 	rte_spinlock_lock(&vq->access_lock);
+
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	ret = async_channel_register(dev, vq);
+
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
 	return ret;
@@ -1840,6 +1848,11 @@ rte_vhost_async_channel_unregister(int vid, uint16_t queue_id)
 		return ret;
 	}
 
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	if (!vq->async) {
 		ret = 0;
 	} else if (vq->async->pkts_inflight_n) {
@@ -1851,6 +1864,7 @@ rte_vhost_async_channel_unregister(int vid, uint16_t queue_id)
 		ret = 0;
 	}
 
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
 	return ret;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.537453100 +0800
+++ 0009-vhost-fix-check-on-virtqueue-access-in-async-registr.patch	2023-12-11 17:56:22.887652300 +0800
@@ -1 +1 @@
-From 867d31bed41c87510e860956ee6a67c047d98f87 Mon Sep 17 00:00:00 2001
+From 7f80528fbdeb8a282ce562270d1ce6de8524595b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 867d31bed41c87510e860956ee6a67c047d98f87 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index f7e5602913..53318a54a3 100644
+index 0188bdb6c5..695aa167dc 100644
@@ -24 +26 @@
-@@ -1859,7 +1859,15 @@ rte_vhost_async_channel_register(int vid, uint16_t queue_id)
+@@ -1784,7 +1784,15 @@ rte_vhost_async_channel_register(int vid, uint16_t queue_id)
@@ -27 +29 @@
- 	rte_rwlock_write_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -37 +39 @@
- 	rte_rwlock_write_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);
@@ -40 +42 @@
-@@ -1911,6 +1919,11 @@ rte_vhost_async_channel_unregister(int vid, uint16_t queue_id)
+@@ -1840,6 +1848,11 @@ rte_vhost_async_channel_unregister(int vid, uint16_t queue_id)
@@ -52 +54 @@
-@@ -1922,6 +1935,7 @@ rte_vhost_async_channel_unregister(int vid, uint16_t queue_id)
+@@ -1851,6 +1864,7 @@ rte_vhost_async_channel_unregister(int vid, uint16_t queue_id)
@@ -57 +59 @@
- 	rte_rwlock_write_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'vhost: fix check on virtqueue access in in-flight getter' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (8 preceding siblings ...)
  2023-12-11 10:10   ` patch 'vhost: fix check on virtqueue access in async registration' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'vhost: fix missing lock protection in power monitor API' " Xueming Li
                     ` (110 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=adae353b36e10f642eb4eed195a710f658432790

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From adae353b36e10f642eb4eed195a710f658432790 Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 20 Oct 2023 10:48:02 +0200
Subject: [PATCH] vhost: fix check on virtqueue access in in-flight getter
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 288cd1f8ca3ebaf20aeed92966da9020a5793852 ]

Acquiring the access lock is not enough to ensure
virtqueue's metadata such as vring pointers are valid.

The access status must also be checked.

Fixes: 0c0935c5f794 ("vhost: allow to check in-flight packets for async vhost")

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 lib/vhost/vhost.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 695aa167dc..4edb76d0dd 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -2008,9 +2008,15 @@ rte_vhost_async_get_inflight(int vid, uint16_t queue_id)
 		return ret;
 	}
 
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	if (vq->async)
 		ret = vq->async->pkts_inflight_n;
 
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
 	return ret;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.564883200 +0800
+++ 0010-vhost-fix-check-on-virtqueue-access-in-in-flight-get.patch	2023-12-11 17:56:22.887652300 +0800
@@ -1 +1 @@
-From 288cd1f8ca3ebaf20aeed92966da9020a5793852 Mon Sep 17 00:00:00 2001
+From adae353b36e10f642eb4eed195a710f658432790 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 288cd1f8ca3ebaf20aeed92966da9020a5793852 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 53318a54a3..f86516324b 100644
+index 695aa167dc..4edb76d0dd 100644
@@ -24 +26 @@
-@@ -2075,9 +2075,15 @@ rte_vhost_async_get_inflight(int vid, uint16_t queue_id)
+@@ -2008,9 +2008,15 @@ rte_vhost_async_get_inflight(int vid, uint16_t queue_id)
@@ -37 +39 @@
- 	rte_rwlock_write_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'vhost: fix missing lock protection in power monitor API' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (9 preceding siblings ...)
  2023-12-11 10:10   ` patch 'vhost: fix check on virtqueue access in in-flight getter' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'vhost: fix checking virtqueue access in stats " Xueming Li
                     ` (109 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=a07736eb68dab3ea52e189b07a71d77e92abb65f

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a07736eb68dab3ea52e189b07a71d77e92abb65f Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 20 Oct 2023 10:48:03 +0200
Subject: [PATCH] vhost: fix missing lock protection in power monitor API
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit b4c4e5675c85a9b471c252305811d15f6a6d2aa6 ]

The power monitor get API is missing both access lock
protection and access status check.

Fixes: 34fd4373ce76 ("vhost: add power monitor API")

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 lib/vhost/vhost.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 4edb76d0dd..6e1bba4391 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -2070,6 +2070,12 @@ rte_vhost_get_monitor_addr(int vid, uint16_t queue_id,
 	if (vq == NULL)
 		return -1;
 
+	if (!rte_spinlock_trylock(&vq->access_lock))
+		return -1;
+
+	if (unlikely(!vq->access_ok))
+		goto out_unlock;
+
 	if (vq_is_packed(dev)) {
 		struct vring_packed_desc *desc;
 		desc = vq->desc_packed;
@@ -2090,6 +2096,11 @@ rte_vhost_get_monitor_addr(int vid, uint16_t queue_id,
 	}
 
 	return 0;
+
+out_unlock:
+	rte_spinlock_unlock(&vq->access_lock);
+
+	return -1;
 }
 
 
@@ -2157,6 +2168,7 @@ int rte_vhost_vring_stats_reset(int vid, uint16_t queue_id)
 {
 	struct virtio_net *dev = get_device(vid);
 	struct vhost_virtqueue *vq;
+	int ret = 0;
 
 	if (dev == NULL)
 		return -1;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.597356200 +0800
+++ 0011-vhost-fix-missing-lock-protection-in-power-monitor-A.patch	2023-12-11 17:56:22.887652300 +0800
@@ -1 +1 @@
-From b4c4e5675c85a9b471c252305811d15f6a6d2aa6 Mon Sep 17 00:00:00 2001
+From a07736eb68dab3ea52e189b07a71d77e92abb65f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b4c4e5675c85a9b471c252305811d15f6a6d2aa6 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -15,2 +17,2 @@
- lib/vhost/vhost.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
+ lib/vhost/vhost.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
@@ -19 +21 @@
-index f86516324b..9a7403c28d 100644
+index 4edb76d0dd..6e1bba4391 100644
@@ -22,9 +24 @@
-@@ -2123,6 +2123,7 @@ rte_vhost_get_monitor_addr(int vid, uint16_t queue_id,
- {
- 	struct virtio_net *dev = get_device(vid);
- 	struct vhost_virtqueue *vq;
-+	int ret = 0;
- 
- 	if (dev == NULL)
- 		return -1;
-@@ -2133,6 +2134,13 @@ rte_vhost_get_monitor_addr(int vid, uint16_t queue_id,
+@@ -2070,6 +2070,12 @@ rte_vhost_get_monitor_addr(int vid, uint16_t queue_id,
@@ -34 +28,2 @@
-+	rte_rwlock_read_lock(&vq->access_lock);
++	if (!rte_spinlock_trylock(&vq->access_lock))
++		return -1;
@@ -36,2 +31 @@
-+	if (unlikely(!vq->access_ok)) {
-+		ret = -1;
++	if (unlikely(!vq->access_ok))
@@ -39 +32,0 @@
-+	}
@@ -44,2 +37 @@
-@@ -2152,7 +2160,10 @@ rte_vhost_get_monitor_addr(int vid, uint16_t queue_id,
- 		pmc->match = 0;
+@@ -2090,6 +2096,11 @@ rte_vhost_get_monitor_addr(int vid, uint16_t queue_id,
@@ -48 +40,2 @@
--	return 0;
+ 	return 0;
++
@@ -50 +43 @@
-+	rte_rwlock_read_unlock(&vq->access_lock);
++	rte_spinlock_unlock(&vq->access_lock);
@@ -52 +45 @@
-+	return ret;
++	return -1;
@@ -55,0 +49,8 @@
+@@ -2157,6 +2168,7 @@ int rte_vhost_vring_stats_reset(int vid, uint16_t queue_id)
+ {
+ 	struct virtio_net *dev = get_device(vid);
+ 	struct vhost_virtqueue *vq;
++	int ret = 0;
+ 
+ 	if (dev == NULL)
+ 		return -1;

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'vhost: fix checking virtqueue access in stats API' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (10 preceding siblings ...)
  2023-12-11 10:10   ` patch 'vhost: fix missing lock protection in power monitor API' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'common/cnxk: fix pool buffer size in opaque mode' " Xueming Li
                     ` (108 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Maxime Coquelin; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8c291d87783d2e22e6234cddc23bee27d0f14dae

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8c291d87783d2e22e6234cddc23bee27d0f14dae Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 20 Oct 2023 10:48:04 +0200
Subject: [PATCH] vhost: fix checking virtqueue access in stats API
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a004501a147889d608008ab6f18355e9b0ceff65 ]

Acquiring the access lock is not enough to ensure
virtqueue's metadata such as vring pointers are valid.

The access status must also be checked.

Fixes: be75dc99ea1f ("vhost: support per-virtqueue statistics")

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 lib/vhost/vhost.c | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c
index 6e1bba4391..40ac350e21 100644
--- a/lib/vhost/vhost.c
+++ b/lib/vhost/vhost.c
@@ -2138,6 +2138,7 @@ rte_vhost_vring_stats_get(int vid, uint16_t queue_id,
 	struct virtio_net *dev = get_device(vid);
 	struct vhost_virtqueue *vq;
 	unsigned int i;
+	int ret = VHOST_NB_VQ_STATS;
 
 	if (dev == NULL)
 		return -1;
@@ -2154,14 +2155,22 @@ rte_vhost_vring_stats_get(int vid, uint16_t queue_id,
 	vq = dev->virtqueue[queue_id];
 
 	rte_spinlock_lock(&vq->access_lock);
+
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
+
 	for (i = 0; i < VHOST_NB_VQ_STATS; i++) {
 		stats[i].value =
 			*(uint64_t *)(((char *)vq) + vhost_vq_stat_strings[i].offset);
 		stats[i].id = i;
 	}
+
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
-	return VHOST_NB_VQ_STATS;
+	return ret;
 }
 
 int rte_vhost_vring_stats_reset(int vid, uint16_t queue_id)
@@ -2182,10 +2191,17 @@ int rte_vhost_vring_stats_reset(int vid, uint16_t queue_id)
 	vq = dev->virtqueue[queue_id];
 
 	rte_spinlock_lock(&vq->access_lock);
+
+	if (unlikely(!vq->access_ok)) {
+		ret = -1;
+		goto out_unlock;
+	}
 	memset(&vq->stats, 0, sizeof(vq->stats));
+
+out_unlock:
 	rte_spinlock_unlock(&vq->access_lock);
 
-	return 0;
+	return ret;
 }
 
 int
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.623239500 +0800
+++ 0012-vhost-fix-checking-virtqueue-access-in-stats-API.patch	2023-12-11 17:56:22.887652300 +0800
@@ -1 +1 @@
-From a004501a147889d608008ab6f18355e9b0ceff65 Mon Sep 17 00:00:00 2001
+From 8c291d87783d2e22e6234cddc23bee27d0f14dae Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a004501a147889d608008ab6f18355e9b0ceff65 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -17,2 +19,2 @@
- lib/vhost/vhost.c | 21 +++++++++++++++++++--
- 1 file changed, 19 insertions(+), 2 deletions(-)
+ lib/vhost/vhost.c | 20 ++++++++++++++++++--
+ 1 file changed, 18 insertions(+), 2 deletions(-)
@@ -21 +23 @@
-index 9a7403c28d..8a1f992d9d 100644
+index 6e1bba4391..40ac350e21 100644
@@ -24 +26 @@
-@@ -2201,6 +2201,7 @@ rte_vhost_vring_stats_get(int vid, uint16_t queue_id,
+@@ -2138,6 +2138,7 @@ rte_vhost_vring_stats_get(int vid, uint16_t queue_id,
@@ -32 +34 @@
-@@ -2217,6 +2218,12 @@ rte_vhost_vring_stats_get(int vid, uint16_t queue_id,
+@@ -2154,14 +2155,22 @@ rte_vhost_vring_stats_get(int vid, uint16_t queue_id,
@@ -35 +37 @@
- 	rte_rwlock_write_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -43,3 +45 @@
- 		/*
- 		 * No need to the read atomic counters as such, due to the
-@@ -2226,15 +2233,18 @@ rte_vhost_vring_stats_get(int vid, uint16_t queue_id,
+ 		stats[i].value =
@@ -51 +51 @@
- 	rte_rwlock_write_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);
@@ -58,8 +58 @@
- {
- 	struct virtio_net *dev = get_device(vid);
- 	struct vhost_virtqueue *vq;
-+	int ret = 0;
- 
- 	if (dev == NULL)
- 		return -1;
-@@ -2248,14 +2258,21 @@ int rte_vhost_vring_stats_reset(int vid, uint16_t queue_id)
+@@ -2182,10 +2191,17 @@ int rte_vhost_vring_stats_reset(int vid, uint16_t queue_id)
@@ -68 +61 @@
- 	rte_rwlock_write_lock(&vq->access_lock);
+ 	rte_spinlock_lock(&vq->access_lock);
@@ -74,4 +66,0 @@
- 	/*
- 	 * No need to the reset atomic counters as such, due to the
- 	 * above write access_lock preventing them to be updated.
- 	 */
@@ -81 +70 @@
- 	rte_rwlock_write_unlock(&vq->access_lock);
+ 	rte_spinlock_unlock(&vq->access_lock);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/cnxk: fix pool buffer size in opaque mode' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (11 preceding siblings ...)
  2023-12-11 10:10   ` patch 'vhost: fix checking virtqueue access in stats " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/cnxk: fix data offset in vector Tx' " Xueming Li
                     ` (107 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Kommula Shiva Shankar; +Cc: Ashwin Sekhar T K, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=780be398dc514a70ffb7a50eafb0d6dd66c7d5b6

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 780be398dc514a70ffb7a50eafb0d6dd66c7d5b6 Mon Sep 17 00:00:00 2001
From: Kommula Shiva Shankar <kshankar@marvell.com>
Date: Fri, 13 Oct 2023 22:05:48 +0530
Subject: [PATCH] common/cnxk: fix pool buffer size in opaque mode
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 95377ce2106eb8a7b560c93d38fe98af44813b5b ]

Pool buffer size in opaque mode must always be set to 0.

Fixes: f765f5611240 ("common/cnxk: add NPA pool HW operations")

Signed-off-by: Kommula Shiva Shankar <kshankar@marvell.com>
Signed-off-by: Ashwin Sekhar T K <asekhar@marvell.com>
---
 drivers/common/cnxk/roc_npa.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/common/cnxk/roc_npa.c b/drivers/common/cnxk/roc_npa.c
index ce0b7e8a72..ea58030477 100644
--- a/drivers/common/cnxk/roc_npa.c
+++ b/drivers/common/cnxk/roc_npa.c
@@ -372,7 +372,11 @@ npa_aura_pool_pair_alloc(struct npa_lf *lf, const uint32_t block_size,
 	/* Update pool fields */
 	pool->stack_base = mz->iova;
 	pool->ena = 1;
-	pool->buf_size = block_size / ROC_ALIGN;
+	/* In opaque mode buffer size must be 0 */
+	if (!pool->nat_align)
+		pool->buf_size = 0;
+	else
+		pool->buf_size = block_size / ROC_ALIGN;
 	pool->stack_max_pages = stack_size;
 	pool->shift = plt_log2_u32(block_count);
 	pool->shift = pool->shift < 8 ? 0 : pool->shift - 8;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.647659000 +0800
+++ 0013-common-cnxk-fix-pool-buffer-size-in-opaque-mode.patch	2023-12-11 17:56:22.887652300 +0800
@@ -1 +1 @@
-From 95377ce2106eb8a7b560c93d38fe98af44813b5b Mon Sep 17 00:00:00 2001
+From 780be398dc514a70ffb7a50eafb0d6dd66c7d5b6 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 95377ce2106eb8a7b560c93d38fe98af44813b5b ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index b76b8e2342..6c14c49901 100644
+index ce0b7e8a72..ea58030477 100644
@@ -21 +23 @@
-@@ -517,7 +517,11 @@ npa_aura_pool_pair_alloc(struct npa_lf *lf, const uint32_t block_size,
+@@ -372,7 +372,11 @@ npa_aura_pool_pair_alloc(struct npa_lf *lf, const uint32_t block_size,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/cnxk: fix data offset in vector Tx' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (12 preceding siblings ...)
  2023-12-11 10:10   ` patch 'common/cnxk: fix pool buffer size in opaque mode' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/nfp: fix crash on close' " Xueming Li
                     ` (106 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Nithin Dabilpuram; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=4dfec51b970287ae68d29d11f2c889131a745418

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 4dfec51b970287ae68d29d11f2c889131a745418 Mon Sep 17 00:00:00 2001
From: Nithin Dabilpuram <ndabilpuram@marvell.com>
Date: Mon, 16 Oct 2023 12:34:35 +0530
Subject: [PATCH] net/cnxk: fix data offset in vector Tx
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e85428880864291505681920e6ecaf80e7f29afd ]

Extract data offset from individual mbuf's instead of mbuf0.

Fixes: 6771216c2f44 ("drivers: mark cnxk to support disabling IOVA as PA")

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
---
 drivers/net/cnxk/cn10k_tx.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/cnxk/cn10k_tx.h b/drivers/net/cnxk/cn10k_tx.h
index 63cf6821d2..84b5faa137 100644
--- a/drivers/net/cnxk/cn10k_tx.h
+++ b/drivers/net/cnxk/cn10k_tx.h
@@ -1909,13 +1909,13 @@ again:
 			vsetq_lane_u64(((struct rte_mbuf *)mbuf0)->data_off, vld1q_u64(mbuf0), 1);
 		len_olflags0 = vld1q_u64(mbuf0 + 3);
 		dataoff_iova1 =
-			vsetq_lane_u64(((struct rte_mbuf *)mbuf0)->data_off, vld1q_u64(mbuf1), 1);
+			vsetq_lane_u64(((struct rte_mbuf *)mbuf1)->data_off, vld1q_u64(mbuf1), 1);
 		len_olflags1 = vld1q_u64(mbuf1 + 3);
 		dataoff_iova2 =
-			vsetq_lane_u64(((struct rte_mbuf *)mbuf0)->data_off, vld1q_u64(mbuf2), 1);
+			vsetq_lane_u64(((struct rte_mbuf *)mbuf2)->data_off, vld1q_u64(mbuf2), 1);
 		len_olflags2 = vld1q_u64(mbuf2 + 3);
 		dataoff_iova3 =
-			vsetq_lane_u64(((struct rte_mbuf *)mbuf0)->data_off, vld1q_u64(mbuf3), 1);
+			vsetq_lane_u64(((struct rte_mbuf *)mbuf3)->data_off, vld1q_u64(mbuf3), 1);
 		len_olflags3 = vld1q_u64(mbuf3 + 3);
 
 		/* Move mbufs to point pool */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.672315900 +0800
+++ 0014-net-cnxk-fix-data-offset-in-vector-Tx.patch	2023-12-11 17:56:22.897652300 +0800
@@ -1 +1 @@
-From e85428880864291505681920e6ecaf80e7f29afd Mon Sep 17 00:00:00 2001
+From 4dfec51b970287ae68d29d11f2c889131a745418 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e85428880864291505681920e6ecaf80e7f29afd ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -17 +19 @@
-index e7943e3c88..467f0ccc65 100644
+index 63cf6821d2..84b5faa137 100644
@@ -20 +22 @@
-@@ -2201,13 +2201,13 @@ again:
+@@ -1909,13 +1909,13 @@ again:

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/nfp: fix crash on close' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (13 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/cnxk: fix data offset in vector Tx' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'ethdev: fix function name in comment' " Xueming Li
                     ` (105 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Chaoyong He; +Cc: Long Wu, Peng Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e671505da168d36e6c001395bf78a574a5a51a68

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e671505da168d36e6c001395bf78a574a5a51a68 Mon Sep 17 00:00:00 2001
From: Chaoyong He <chaoyong.he@corigine.com>
Date: Tue, 17 Oct 2023 10:37:30 +0800
Subject: [PATCH] net/nfp: fix crash on close
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3b9dcf252c118705bb17f450318d3495b4608092 ]

The ".dev_close" should not call rte_eth_dev_release_port() API
directly, the rte_eth_dev_close() API will do it.

Fixes: 831c44ab7869 ("net/nfp: add flower PF related routines")

Signed-off-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
---
 drivers/net/nfp/flower/nfp_flower.c | 2 --
 drivers/net/nfp/nfp_ethdev.c        | 1 -
 2 files changed, 3 deletions(-)

diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c
index 9872e010d2..5896d208d0 100644
--- a/drivers/net/nfp/flower/nfp_flower.c
+++ b/drivers/net/nfp/flower/nfp_flower.c
@@ -224,8 +224,6 @@ nfp_flower_pf_close(struct rte_eth_dev *dev)
 
 	nn_cfg_writeb(hw, NFP_NET_CFG_LSC, 0xff);
 
-	rte_eth_dev_release_port(dev);
-
 	/* Now it is safe to free all PF resources */
 	PMD_DRV_LOG(INFO, "Freeing PF resources");
 	nfp_cpp_area_free(pf_dev->ctrl_area);
diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
index 689e26f1e1..71832bfa23 100644
--- a/drivers/net/nfp/nfp_ethdev.c
+++ b/drivers/net/nfp/nfp_ethdev.c
@@ -304,7 +304,6 @@ nfp_net_close(struct rte_eth_dev *dev)
 	/* Mark this port as unused and free device priv resources*/
 	nn_cfg_writeb(hw, NFP_NET_CFG_LSC, 0xff);
 	app_fw_nic->ports[hw->idx] = NULL;
-	rte_eth_dev_release_port(dev);
 
 	for (i = 0; i < app_fw_nic->total_phyports; i++) {
 		/* Check to see if ports are still in use */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.699270100 +0800
+++ 0015-net-nfp-fix-crash-on-close.patch	2023-12-11 17:56:22.897652300 +0800
@@ -1 +1 @@
-From 3b9dcf252c118705bb17f450318d3495b4608092 Mon Sep 17 00:00:00 2001
+From e671505da168d36e6c001395bf78a574a5a51a68 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3b9dcf252c118705bb17f450318d3495b4608092 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 0c54d7ed27..60d843451e 100644
+index 9872e010d2..5896d208d0 100644
@@ -24 +26 @@
-@@ -221,8 +221,6 @@ nfp_flower_pf_close(struct rte_eth_dev *dev)
+@@ -224,8 +224,6 @@ nfp_flower_pf_close(struct rte_eth_dev *dev)
@@ -34 +36 @@
-index 20940072fe..d32a82210c 100644
+index 689e26f1e1..71832bfa23 100644
@@ -37,2 +39,2 @@
-@@ -286,7 +286,6 @@ nfp_net_close(struct rte_eth_dev *dev)
- 	/* Mark this port as unused and free device priv resources */
+@@ -304,7 +304,6 @@ nfp_net_close(struct rte_eth_dev *dev)
+ 	/* Mark this port as unused and free device priv resources*/

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'ethdev: fix function name in comment' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (14 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/nfp: fix crash on close' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/gve: update max Rx packet length to be based on MTU' " Xueming Li
                     ` (104 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Ferruh Yigit, Huisong Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=6f78b589c58a182459d8253ba66f6cd256258742

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6f78b589c58a182459d8253ba66f6cd256258742 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Fri, 20 Oct 2023 14:05:56 +0100
Subject: [PATCH] ethdev: fix function name in comment
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 4b98bef701c0bf39752031dd8943326945e2b5d1 ]

For those using the function comments as a guide, provide the name of
the correct callback function to use when wanting to count dropped
packets from the ethdev Tx buffering system.

Fixes: d6c99e62c852 ("ethdev: add buffered Tx")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
Acked-by: Huisong Li <lihuisong@huawei.com>
---
 lib/ethdev/rte_ethdev.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
index 5f187131e2..e73244822a 100644
--- a/lib/ethdev/rte_ethdev.h
+++ b/lib/ethdev/rte_ethdev.h
@@ -3637,7 +3637,7 @@ rte_eth_tx_buffer_init(struct rte_eth_dev_tx_buffer *buffer, uint16_t size);
  * for example, to count dropped packets, or to retry transmission of packets
  * which cannot be sent, this function should be used to register a suitable
  * callback function to implement the desired behaviour.
- * The example callback "rte_eth_count_unsent_packet_callback()" is also
+ * The example callback "rte_eth_tx_buffer_count_callback()" is also
  * provided as reference.
  *
  * @param buffer
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.722310100 +0800
+++ 0016-ethdev-fix-function-name-in-comment.patch	2023-12-11 17:56:22.897652300 +0800
@@ -1 +1 @@
-From 4b98bef701c0bf39752031dd8943326945e2b5d1 Mon Sep 17 00:00:00 2001
+From 6f78b589c58a182459d8253ba66f6cd256258742 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4b98bef701c0bf39752031dd8943326945e2b5d1 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index d1c10f2bbf..a53dd5a1ef 100644
+index 5f187131e2..e73244822a 100644
@@ -24 +26 @@
-@@ -3732,7 +3732,7 @@ rte_eth_tx_buffer_init(struct rte_eth_dev_tx_buffer *buffer, uint16_t size);
+@@ -3637,7 +3637,7 @@ rte_eth_tx_buffer_init(struct rte_eth_dev_tx_buffer *buffer, uint16_t size);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/gve: update max Rx packet length to be based on MTU' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (15 preceding siblings ...)
  2023-12-11 10:10   ` patch 'ethdev: fix function name in comment' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'app/testpmd: fix early exit from signal' " Xueming Li
                     ` (103 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Joshua Washington; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8f4eb6095105663603e436adab910acfec485aed

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8f4eb6095105663603e436adab910acfec485aed Mon Sep 17 00:00:00 2001
From: Joshua Washington <joshwash@google.com>
Date: Mon, 16 Oct 2023 13:59:48 -0700
Subject: [PATCH] net/gve: update max Rx packet length to be based on MTU
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3b7896cd4963933140e1621cc421ec744a3ca247 ]

Before this patch, max_rx_pktlen was always set to UINT16_MAX. This, in
conjunction with the MTU fix, causes problems with testpmd, as setting
the packet length with the --max-pkt-len flag causes the MTU to be set
higher than possible due to underflow.

As an example, setting --max-pkt-len=1460 (the default MTU on Google
Cloud VMs) causes testpmd to set the following:
    mtu = 1460 - eth_overhead,

where eth_overhead = dev->max_rx_pktlen - dev->max_mtu = 65535 - 1460.

Thus, mtu = 1460 - 65535 + 1460 = 2921 due to underflow.

Fixes: 030025b74202 ("net/gve: fix max MTU limit")

Signed-off-by: Joshua Washington <joshwash@google.com>
---
 drivers/net/gve/gve_ethdev.c | 2 +-
 drivers/net/gve/gve_ethdev.h | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
index 806f45b0a7..7872b4e476 100644
--- a/drivers/net/gve/gve_ethdev.c
+++ b/drivers/net/gve/gve_ethdev.c
@@ -276,7 +276,7 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	dev_info->max_rx_queues = priv->max_nb_rxq;
 	dev_info->max_tx_queues = priv->max_nb_txq;
 	dev_info->min_rx_bufsize = GVE_MIN_BUF_SIZE;
-	dev_info->max_rx_pktlen = GVE_MAX_RX_PKTLEN;
+	dev_info->max_rx_pktlen = priv->max_mtu + RTE_ETHER_HDR_LEN;
 	dev_info->max_mtu = priv->max_mtu;
 	dev_info->min_mtu = RTE_ETHER_MIN_MTU;
 
diff --git a/drivers/net/gve/gve_ethdev.h b/drivers/net/gve/gve_ethdev.h
index 975318938d..4123685b34 100644
--- a/drivers/net/gve/gve_ethdev.h
+++ b/drivers/net/gve/gve_ethdev.h
@@ -29,7 +29,6 @@
 #define GVE_TX_MAX_FREE_SZ          512
 
 #define GVE_MIN_BUF_SIZE	    1024
-#define GVE_MAX_RX_PKTLEN	    65535
 
 /* A list of pages registered with the device during setup and used by a queue
  * as buffers
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.750701000 +0800
+++ 0017-net-gve-update-max-Rx-packet-length-to-be-based-on-M.patch	2023-12-11 17:56:22.897652300 +0800
@@ -1 +1 @@
-From 3b7896cd4963933140e1621cc421ec744a3ca247 Mon Sep 17 00:00:00 2001
+From 8f4eb6095105663603e436adab910acfec485aed Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3b7896cd4963933140e1621cc421ec744a3ca247 ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org
@@ -29 +31 @@
-index b441f96623..eb3bc7e151 100644
+index 806f45b0a7..7872b4e476 100644
@@ -32 +34 @@
-@@ -297,7 +297,7 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+@@ -276,7 +276,7 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@ -42 +44 @@
-index 1cba282128..755ee8ad15 100644
+index 975318938d..4123685b34 100644
@@ -45 +47 @@
-@@ -21,7 +21,6 @@
+@@ -29,7 +29,6 @@
@@ -51,2 +53,2 @@
- #define GVE_TX_CKSUM_OFFLOAD_MASK (		\
- 		RTE_MBUF_F_TX_L4_MASK  |	\
+ /* A list of pages registered with the device during setup and used by a queue
+  * as buffers

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/testpmd: fix early exit from signal' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (16 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/gve: update max Rx packet length to be based on MTU' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/hns3: fix typo in function name' " Xueming Li
                     ` (102 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Ferruh Yigit, David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=976cefa8035d36d2f42a430cc1bcf877c12bff20

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 976cefa8035d36d2f42a430cc1bcf877c12bff20 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 26 Oct 2023 10:11:33 -0700
Subject: [PATCH] app/testpmd: fix early exit from signal
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a996cd04aeeaeca88e6313174101a1229349fb47 ]

Other signals may occur causing read to get interrupted.
Loop until quit flag is set by signal, a character is entered,
or end of file. This fixes bug where testpmd would exit early
because of signal used by TAP device.

Bugzilla ID: 1305
Fixes: 0fd1386c30c3 ("app/testpmd: cleanup cleanly from signal")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 app/test-pmd/testpmd.c | 25 ++++++++-----------------
 1 file changed, 8 insertions(+), 17 deletions(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 33c9888740..340c713c19 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -11,7 +11,6 @@
 #include <fcntl.h>
 #ifndef RTE_EXEC_ENV_WINDOWS
 #include <sys/mman.h>
-#include <sys/select.h>
 #endif
 #include <sys/types.h>
 #include <errno.h>
@@ -4646,25 +4645,17 @@ main(int argc, char** argv)
 			}
 		} else {
 			char c;
-			fd_set fds;
 
 			printf("Press enter to exit\n");
-
-			FD_ZERO(&fds);
-			FD_SET(0, &fds);
-
-			/* wait for signal or enter */
-			ret = select(1, &fds, NULL, NULL, NULL);
-			if (ret < 0 && errno != EINTR)
-				rte_exit(EXIT_FAILURE,
-					 "Select failed: %s\n",
-					 strerror(errno));
-
-			/* if got enter then consume it */
-			if (ret == 1 && read(0, &c, 1) < 0)
-				rte_exit(EXIT_FAILURE,
-					 "Read failed: %s\n",
+			while (f_quit == 0) {
+				/* end-of-file or any character exits loop */
+				if (read(0, &c, 1) >= 0)
+					break;
+				if (errno == EINTR)
+					continue;
+				rte_exit(EXIT_FAILURE, "Read failed: %s\n",
 					 strerror(errno));
+			}
 		}
 	}
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.786477700 +0800
+++ 0018-app-testpmd-fix-early-exit-from-signal.patch	2023-12-11 17:56:22.907652300 +0800
@@ -1 +1 @@
-From a996cd04aeeaeca88e6313174101a1229349fb47 Mon Sep 17 00:00:00 2001
+From 976cefa8035d36d2f42a430cc1bcf877c12bff20 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a996cd04aeeaeca88e6313174101a1229349fb47 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 595b77748c..9e4e99e53b 100644
+index 33c9888740..340c713c19 100644
@@ -34 +36 @@
-@@ -4743,25 +4742,17 @@ main(int argc, char** argv)
+@@ -4646,25 +4645,17 @@ main(int argc, char** argv)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix typo in function name' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (17 preceding siblings ...)
  2023-12-11 10:10   ` patch 'app/testpmd: fix early exit from signal' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/hns3: fix unchecked Rx free threshold' " Xueming Li
                     ` (101 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Jie Hai; +Cc: Huisong Li, Chengwen Feng, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=b9195e016ec91f839e91976ad9c727d4b6f638a3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b9195e016ec91f839e91976ad9c727d4b6f638a3 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Fri, 27 Oct 2023 14:09:39 +0800
Subject: [PATCH] net/hns3: fix typo in function name
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 28ad38dd7403d64b3c0aa6dfd33e314bdce276c6 ]

This patch fixes a typo.

Fixes: c09c7847d892 ("net/hns3: support traffic management")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
---
 drivers/net/hns3/hns3_tm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_tm.c b/drivers/net/hns3/hns3_tm.c
index 67402a700f..d969164014 100644
--- a/drivers/net/hns3/hns3_tm.c
+++ b/drivers/net/hns3/hns3_tm.c
@@ -739,7 +739,7 @@ hns3_tm_node_type_get(struct rte_eth_dev *dev, uint32_t node_id,
 }
 
 static void
-hns3_tm_nonleaf_level_capsbilities_get(struct rte_eth_dev *dev,
+hns3_tm_nonleaf_level_capabilities_get(struct rte_eth_dev *dev,
 				       uint32_t level_id,
 				       struct rte_tm_level_capabilities *cap)
 {
@@ -818,7 +818,7 @@ hns3_tm_level_capabilities_get(struct rte_eth_dev *dev,
 	memset(cap, 0, sizeof(struct rte_tm_level_capabilities));
 
 	if (level_id != HNS3_TM_NODE_LEVEL_QUEUE)
-		hns3_tm_nonleaf_level_capsbilities_get(dev, level_id, cap);
+		hns3_tm_nonleaf_level_capabilities_get(dev, level_id, cap);
 	else
 		hns3_tm_leaf_level_capabilities_get(dev, cap);
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.813672100 +0800
+++ 0019-net-hns3-fix-typo-in-function-name.patch	2023-12-11 17:56:22.907652300 +0800
@@ -1 +1 @@
-From 28ad38dd7403d64b3c0aa6dfd33e314bdce276c6 Mon Sep 17 00:00:00 2001
+From b9195e016ec91f839e91976ad9c727d4b6f638a3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 28ad38dd7403d64b3c0aa6dfd33e314bdce276c6 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix unchecked Rx free threshold' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (18 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/hns3: fix typo in function name' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/hns3: fix double stats for IMP and global reset' " Xueming Li
                     ` (100 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=70c868a1556ef6a89571298d5b7cac97e7eb458a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 70c868a1556ef6a89571298d5b7cac97e7eb458a Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 27 Oct 2023 14:09:40 +0800
Subject: [PATCH] net/hns3: fix unchecked Rx free threshold
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c1f0cd3a4c834c2e550370b6d31b6bcd456a15f9 ]

To reduce the frequency of updating the head pointer of Rx queue,
driver just updates this pointer when the number of processed
descriptors is greater than the Rx free threshold. If the Rx free
threshold is set to a value greater than or equal to the number of
descriptors in Rx queue, the driver does not update this pointer.
As a result, the hardware cannot receive more packets.

This patch fix it by adding Rx free threshold check.

Fixes: bba636698316 ("net/hns3: support Rx/Tx and related operations")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
 drivers/net/hns3/hns3_rxtx.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 296aba8b35..5db0d3418c 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -1789,6 +1789,12 @@ hns3_rx_queue_conf_check(struct hns3_hw *hw, const struct rte_eth_rxconf *conf,
 		return -EINVAL;
 	}
 
+	if (conf->rx_free_thresh >= nb_desc) {
+		hns3_err(hw, "rx_free_thresh (%u) must be less than %u",
+			 conf->rx_free_thresh, nb_desc);
+		return -EINVAL;
+	}
+
 	if (conf->rx_drop_en == 0)
 		hns3_warn(hw, "if no descriptors available, packets are always "
 			  "dropped and rx_drop_en (1) is fixed on");
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.836913800 +0800
+++ 0020-net-hns3-fix-unchecked-Rx-free-threshold.patch	2023-12-11 17:56:22.907652300 +0800
@@ -1 +1 @@
-From c1f0cd3a4c834c2e550370b6d31b6bcd456a15f9 Mon Sep 17 00:00:00 2001
+From 70c868a1556ef6a89571298d5b7cac97e7eb458a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c1f0cd3a4c834c2e550370b6d31b6bcd456a15f9 ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index f3c3b38c55..13214d02d5 100644
+index 296aba8b35..5db0d3418c 100644
@@ -27 +29 @@
-@@ -1785,6 +1785,12 @@ hns3_rx_queue_conf_check(struct hns3_hw *hw, const struct rte_eth_rxconf *conf,
+@@ -1789,6 +1789,12 @@ hns3_rx_queue_conf_check(struct hns3_hw *hw, const struct rte_eth_rxconf *conf,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix double stats for IMP and global reset' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (19 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/hns3: fix unchecked Rx free threshold' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/hns3: remove reset log in secondary' " Xueming Li
                     ` (99 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=c4bf1adb6365633eef361659257c32cb67ab40d2

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c4bf1adb6365633eef361659257c32cb67ab40d2 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 27 Oct 2023 14:09:42 +0800
Subject: [PATCH] net/hns3: fix double stats for IMP and global reset
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c48e74370c5eafbe8db5c826a797344e4fdf8f49 ]

There is a stats counter for IMP and global reset in PF driver.
hns3 driver has two following task to detect reset event:
(1) interrupt handled task(A): triggered by interrupt and detect
    which reset level. And the reset service will be executed
    after 10us.
(2) polling task(B): scan reset source register to detect if
    driver has to do reset. And the reset service will be executed
    after deferred 3s.

They'll both count the number of one reset plus 1.
Task(A) adds it before doing the reset service. And in the reset service,
task(B) adds it if hw->reset.schedule is 'SCHEDULE_REQUESTED'.
Normally, this reset counter is just added by 1 once. Unfortunately,
this counter is added by 2 in the following case:
1. Task(B) detect the reset event, like IMP. hw->reset.schedule is
   set to 'SCHEDULE_REQUESTED'.
2. Task(A) is just triggered before running the reset service of task(B).
   Note: the reset counter is added by 1 at this moment before running
   the reset service of task(A). Additionally, the reset service of
   task(B) is canceled in task(A) because of schedule status being
   'SCHEDULE_REQUESTED'.
3. Then the reset service of task(A) is executed at last.
   Note: The reset counter is added by 1 again in this step because of
   schedule status still being 'SCHEDULE_REQUESTED'.

So this patch fix it by setting the scheduling status to
'SCHEDULE_REQUESTED' in step 2.

Fixes: 2790c6464725 ("net/hns3: support device reset")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
 drivers/net/hns3/hns3_intr.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_intr.c b/drivers/net/hns3/hns3_intr.c
index 44a1119415..baf5f58e9e 100644
--- a/drivers/net/hns3/hns3_intr.c
+++ b/drivers/net/hns3/hns3_intr.c
@@ -2434,8 +2434,8 @@ hns3_schedule_reset(struct hns3_adapter *hns)
 	if (__atomic_load_n(&hw->reset.schedule, __ATOMIC_RELAXED) ==
 			    SCHEDULE_DEFERRED)
 		rte_eal_alarm_cancel(hw->reset.ops->reset_service, hns);
-	else
-		__atomic_store_n(&hw->reset.schedule, SCHEDULE_REQUESTED,
+
+	__atomic_store_n(&hw->reset.schedule, SCHEDULE_REQUESTED,
 				 __ATOMIC_RELAXED);
 
 	rte_eal_alarm_set(SWITCH_CONTEXT_US, hw->reset.ops->reset_service, hns);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.871448600 +0800
+++ 0021-net-hns3-fix-double-stats-for-IMP-and-global-reset.patch	2023-12-11 17:56:22.907652300 +0800
@@ -1 +1 @@
-From c48e74370c5eafbe8db5c826a797344e4fdf8f49 Mon Sep 17 00:00:00 2001
+From c4bf1adb6365633eef361659257c32cb67ab40d2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c48e74370c5eafbe8db5c826a797344e4fdf8f49 ]
@@ -35 +37,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: remove reset log in secondary' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (20 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/hns3: fix double stats for IMP and global reset' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/hns3: fix multiple reset detected log' " Xueming Li
                     ` (98 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=290166c239c0d88a2cf77bce9e58543ed98bb7a7

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 290166c239c0d88a2cf77bce9e58543ed98bb7a7 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 27 Oct 2023 14:09:43 +0800
Subject: [PATCH] net/hns3: remove reset log in secondary
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 5394df455749f60614a19d791d1d73c26b74dea1 ]

The reset event is checked and done in primary. And the secondary
doesn't check and display reset log. There is a patch to remove the
check code for secondary. please see commit a8f1f7cf1b42 ("net/hns3:
fix crash when secondary process access FW")

This patch removes the redundant log print of reset.

Fixes: a8f1f7cf1b42 ("net/hns3: fix crash when secondary process access FW")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c    | 11 +++++------
 drivers/net/hns3/hns3_ethdev_vf.c | 11 +++++------
 2 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index b9a848540b..feabedc458 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -5546,14 +5546,13 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
 	enum hns3_reset_level reset;
 
 	/*
-	 * Check the registers to confirm whether there is reset pending.
-	 * Note: This check may lead to schedule reset task, but only primary
-	 *       process can process the reset event. Therefore, limit the
-	 *       checking under only primary process.
+	 * Only primary can process can process the reset event,
+	 * so don't check reset event in secondary.
 	 */
-	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
-		hns3_check_event_cause(hns, NULL);
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return false;
 
+	hns3_check_event_cause(hns, NULL);
 	reset = hns3_get_reset_level(hns, &hw->reset.pending);
 	if (reset != HNS3_NONE_RESET && hw->reset.level != HNS3_NONE_RESET &&
 	    hw->reset.level < reset) {
diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index ad0ccb82fe..3874148815 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -1796,14 +1796,13 @@ hns3vf_is_reset_pending(struct hns3_adapter *hns)
 		return false;
 
 	/*
-	 * Check the registers to confirm whether there is reset pending.
-	 * Note: This check may lead to schedule reset task, but only primary
-	 *       process can process the reset event. Therefore, limit the
-	 *       checking under only primary process.
+	 * Only primary can process can process the reset event,
+	 * so don't check reset event in secondary.
 	 */
-	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
-		hns3vf_check_event_cause(hns, NULL);
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+		return false;
 
+	hns3vf_check_event_cause(hns, NULL);
 	reset = hns3vf_get_reset_level(hw, &hw->reset.pending);
 	if (hw->reset.level != HNS3_NONE_RESET && reset != HNS3_NONE_RESET &&
 	    hw->reset.level < reset) {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.896839400 +0800
+++ 0022-net-hns3-remove-reset-log-in-secondary.patch	2023-12-11 17:56:22.917652300 +0800
@@ -1 +1 @@
-From 5394df455749f60614a19d791d1d73c26b74dea1 Mon Sep 17 00:00:00 2001
+From 290166c239c0d88a2cf77bce9e58543ed98bb7a7 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5394df455749f60614a19d791d1d73c26b74dea1 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 964f47f164..3bdce1fa4b 100644
+index b9a848540b..feabedc458 100644
@@ -26 +28 @@
-@@ -5512,14 +5512,13 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
+@@ -5546,14 +5546,13 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
@@ -47 +49 @@
-index 007f5d619f..5f3422d14e 100644
+index ad0ccb82fe..3874148815 100644
@@ -50 +52 @@
-@@ -1715,14 +1715,13 @@ hns3vf_is_reset_pending(struct hns3_adapter *hns)
+@@ -1796,14 +1796,13 @@ hns3vf_is_reset_pending(struct hns3_adapter *hns)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix multiple reset detected log' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (21 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/hns3: remove reset log in secondary' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/hns3: fix IMP or global reset' " Xueming Li
                     ` (97 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=65231cf278cc741a0c3076886a468429b63f1f48

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 65231cf278cc741a0c3076886a468429b63f1f48 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 27 Oct 2023 14:09:44 +0800
Subject: [PATCH] net/hns3: fix multiple reset detected log
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 5be38fc6c0fc7e54d0121bab2fe93a27b8e8f7ab ]

Currently, the driver proactively checks whether interrupt exist
(by checking reset registers), related reset delay task is scheduled.

When a reset whose level is equal to or lower than the current level
is detected, there is unnecessary to add delay task and print logs.

This patch fix it.

Fixes: 2790c6464725 ("net/hns3: support device reset")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 64 ++++++++++++++++++++--------------
 1 file changed, 37 insertions(+), 27 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index feabedc458..576cc56216 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -128,42 +128,29 @@ hns3_pf_enable_irq0(struct hns3_hw *hw)
 }
 
 static enum hns3_evt_cause
-hns3_proc_imp_reset_event(struct hns3_adapter *hns, bool is_delay,
-			  uint32_t *vec_val)
+hns3_proc_imp_reset_event(struct hns3_adapter *hns, uint32_t *vec_val)
 {
 	struct hns3_hw *hw = &hns->hw;
 
 	__atomic_store_n(&hw->reset.disable_cmd, 1, __ATOMIC_RELAXED);
 	hns3_atomic_set_bit(HNS3_IMP_RESET, &hw->reset.pending);
 	*vec_val = BIT(HNS3_VECTOR0_IMPRESET_INT_B);
-	if (!is_delay) {
-		hw->reset.stats.imp_cnt++;
-		hns3_warn(hw, "IMP reset detected, clear reset status");
-	} else {
-		hns3_schedule_delayed_reset(hns);
-		hns3_warn(hw, "IMP reset detected, don't clear reset status");
-	}
+	hw->reset.stats.imp_cnt++;
+	hns3_warn(hw, "IMP reset detected, clear reset status");
 
 	return HNS3_VECTOR0_EVENT_RST;
 }
 
 static enum hns3_evt_cause
-hns3_proc_global_reset_event(struct hns3_adapter *hns, bool is_delay,
-			     uint32_t *vec_val)
+hns3_proc_global_reset_event(struct hns3_adapter *hns, uint32_t *vec_val)
 {
 	struct hns3_hw *hw = &hns->hw;
 
 	__atomic_store_n(&hw->reset.disable_cmd, 1, __ATOMIC_RELAXED);
 	hns3_atomic_set_bit(HNS3_GLOBAL_RESET, &hw->reset.pending);
 	*vec_val = BIT(HNS3_VECTOR0_GLOBALRESET_INT_B);
-	if (!is_delay) {
-		hw->reset.stats.global_cnt++;
-		hns3_warn(hw, "Global reset detected, clear reset status");
-	} else {
-		hns3_schedule_delayed_reset(hns);
-		hns3_warn(hw,
-			  "Global reset detected, don't clear reset status");
-	}
+	hw->reset.stats.global_cnt++;
+	hns3_warn(hw, "Global reset detected, clear reset status");
 
 	return HNS3_VECTOR0_EVENT_RST;
 }
@@ -177,14 +164,12 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 	uint32_t hw_err_src_reg;
 	uint32_t val;
 	enum hns3_evt_cause ret;
-	bool is_delay;
 
 	/* fetch the events from their corresponding regs */
 	vector0_int_stats = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG);
 	cmdq_src_val = hns3_read_dev(hw, HNS3_VECTOR0_CMDQ_SRC_REG);
 	hw_err_src_reg = hns3_read_dev(hw, HNS3_RAS_PF_OTHER_INT_STS_REG);
 
-	is_delay = clearval == NULL ? true : false;
 	/*
 	 * Assumption: If by any chance reset and mailbox events are reported
 	 * together then we will only process reset event and defer the
@@ -193,13 +178,13 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 	 * from H/W just for the mailbox.
 	 */
 	if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & vector0_int_stats) { /* IMP */
-		ret = hns3_proc_imp_reset_event(hns, is_delay, &val);
+		ret = hns3_proc_imp_reset_event(hns, &val);
 		goto out;
 	}
 
 	/* Global reset */
 	if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & vector0_int_stats) {
-		ret = hns3_proc_global_reset_event(hns, is_delay, &val);
+		ret = hns3_proc_global_reset_event(hns, &val);
 		goto out;
 	}
 
@@ -228,10 +213,9 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 
 	val = vector0_int_stats;
 	ret = HNS3_VECTOR0_EVENT_OTHER;
-out:
 
-	if (clearval)
-		*clearval = val;
+out:
+	*clearval = val;
 	return ret;
 }
 
@@ -5539,6 +5523,32 @@ is_pf_reset_done(struct hns3_hw *hw)
 		return true;
 }
 
+static void
+hns3_detect_reset_event(struct hns3_hw *hw)
+{
+	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
+	enum hns3_reset_level new_req = HNS3_NONE_RESET;
+	enum hns3_reset_level last_req;
+	uint32_t vector0_intr_state;
+
+	last_req = hns3_get_reset_level(hns, &hw->reset.pending);
+	vector0_intr_state = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG);
+	if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & vector0_intr_state) {
+		__atomic_store_n(&hw->reset.disable_cmd, 1, __ATOMIC_RELAXED);
+		hns3_atomic_set_bit(HNS3_IMP_RESET, &hw->reset.pending);
+		new_req = HNS3_IMP_RESET;
+	} else if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & vector0_intr_state) {
+		__atomic_store_n(&hw->reset.disable_cmd, 1, __ATOMIC_RELAXED);
+		hns3_atomic_set_bit(HNS3_GLOBAL_RESET, &hw->reset.pending);
+		new_req = HNS3_GLOBAL_RESET;
+	}
+
+	if (new_req != HNS3_NONE_RESET && last_req < new_req) {
+		hns3_schedule_delayed_reset(hns);
+		hns3_warn(hw, "High level reset detected, delay do reset");
+	}
+}
+
 bool
 hns3_is_reset_pending(struct hns3_adapter *hns)
 {
@@ -5552,7 +5562,7 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return false;
 
-	hns3_check_event_cause(hns, NULL);
+	hns3_detect_reset_event(hw);
 	reset = hns3_get_reset_level(hns, &hw->reset.pending);
 	if (reset != HNS3_NONE_RESET && hw->reset.level != HNS3_NONE_RESET &&
 	    hw->reset.level < reset) {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.934646000 +0800
+++ 0023-net-hns3-fix-multiple-reset-detected-log.patch	2023-12-11 17:56:22.917652300 +0800
@@ -1 +1 @@
-From 5be38fc6c0fc7e54d0121bab2fe93a27b8e8f7ab Mon Sep 17 00:00:00 2001
+From 65231cf278cc741a0c3076886a468429b63f1f48 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5be38fc6c0fc7e54d0121bab2fe93a27b8e8f7ab ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 3bdce1fa4b..18afc0fa0a 100644
+index feabedc458..576cc56216 100644
@@ -26 +28 @@
-@@ -124,42 +124,29 @@ hns3_pf_enable_irq0(struct hns3_hw *hw)
+@@ -128,42 +128,29 @@ hns3_pf_enable_irq0(struct hns3_hw *hw)
@@ -75 +77 @@
-@@ -173,14 +160,12 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -177,14 +164,12 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -90 +92 @@
-@@ -189,13 +174,13 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -193,13 +178,13 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -106 +108 @@
-@@ -224,10 +209,9 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -228,10 +213,9 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -119 +121 @@
-@@ -5505,6 +5489,32 @@ is_pf_reset_done(struct hns3_hw *hw)
+@@ -5539,6 +5523,32 @@ is_pf_reset_done(struct hns3_hw *hw)
@@ -152 +154 @@
-@@ -5518,7 +5528,7 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
+@@ -5552,7 +5562,7 @@ hns3_is_reset_pending(struct hns3_adapter *hns)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix IMP or global reset' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (22 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/hns3: fix multiple reset detected log' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/hns3: refactor interrupt state query' " Xueming Li
                     ` (96 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=9a62d06e64ab1c7708c2197d23f198eb3daaccce

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 9a62d06e64ab1c7708c2197d23f198eb3daaccce Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 27 Oct 2023 14:09:45 +0800
Subject: [PATCH] net/hns3: fix IMP or global reset
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 1eee1ea75c0eadaea6dde368b289cf0acf6a1190 ]

Currently, when the IMP or Global reset detected, the vector0
interrupt is enabled before the reset process is completed.
At this moment, if the initialization of IMP is not completed,
and the vector0 interrupt may continue to be reported. In this
scenario, the IMP/global reset being performed by the driver
does not need to be interrupted. Therefore, for IMP and global
resets, the driver has to enable the interrupt after the end
of reset.

The RAS interrupt is also shared with the vector0 interrupt.
When the interrupt is disabled, the RAS interrupt can still be
reported to the driver and the driver interrupt processing
function is also called. In this case, the interrupt status of
the IMP/global may still exist. Therefore, this patch also has
to the check of the new reset level based on the priority of
reset level in the interrupt handler.

Fixes: 2790c6464725 ("net/hns3: support device reset")
Fixes: 3988ab0eee52 ("net/hns3: add abnormal interrupt process")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 88 ++++++++++++++++++++++++++++------
 drivers/net/hns3/hns3_ethdev.h |  1 +
 drivers/net/hns3/hns3_intr.c   |  2 +
 3 files changed, 77 insertions(+), 14 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 576cc56216..036062947d 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -219,6 +219,30 @@ out:
 	return ret;
 }
 
+void
+hns3_clear_reset_event(struct hns3_hw *hw)
+{
+	uint32_t clearval = 0;
+
+	switch (hw->reset.level) {
+	case HNS3_IMP_RESET:
+		clearval = BIT(HNS3_VECTOR0_IMPRESET_INT_B);
+		break;
+	case HNS3_GLOBAL_RESET:
+		clearval = BIT(HNS3_VECTOR0_GLOBALRESET_INT_B);
+		break;
+	default:
+		break;
+	}
+
+	if (clearval == 0)
+		return;
+
+	hns3_write_dev(hw, HNS3_MISC_RESET_STS_REG, clearval);
+
+	hns3_pf_enable_irq0(hw);
+}
+
 static void
 hns3_clear_event_cause(struct hns3_hw *hw, uint32_t event_type, uint32_t regclr)
 {
@@ -291,6 +315,34 @@ hns3_delay_before_clear_event_cause(struct hns3_hw *hw, uint32_t event_type, uin
 	}
 }
 
+static bool
+hns3_reset_event_valid(struct hns3_hw *hw)
+{
+	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
+	enum hns3_reset_level new_req = HNS3_NONE_RESET;
+	enum hns3_reset_level last_req;
+	uint32_t vector0_int;
+
+	vector0_int = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG);
+	if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & vector0_int)
+		new_req = HNS3_IMP_RESET;
+	else if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & vector0_int)
+		new_req = HNS3_GLOBAL_RESET;
+	if (new_req == HNS3_NONE_RESET)
+		return true;
+
+	last_req = hns3_get_reset_level(hns, &hw->reset.pending);
+	if (last_req == HNS3_NONE_RESET)
+		return true;
+
+	if (new_req > last_req)
+		return true;
+
+	hns3_warn(hw, "last_req (%u) less than or equal to new_req (%u) ignore",
+		  last_req, new_req);
+	return false;
+}
+
 static void
 hns3_interrupt_handler(void *param)
 {
@@ -303,6 +355,9 @@ hns3_interrupt_handler(void *param)
 	uint32_t ras_int;
 	uint32_t cmdq_int;
 
+	if (!hns3_reset_event_valid(hw))
+		return;
+
 	/* Disable interrupt */
 	hns3_pf_disable_irq0(hw);
 
@@ -331,7 +386,11 @@ hns3_interrupt_handler(void *param)
 	}
 
 	/* Enable interrupt if it is not cause by reset */
-	hns3_pf_enable_irq0(hw);
+	if (event_cause == HNS3_VECTOR0_EVENT_ERR ||
+	    event_cause == HNS3_VECTOR0_EVENT_MBX ||
+	    event_cause == HNS3_VECTOR0_EVENT_PTP ||
+	    event_cause == HNS3_VECTOR0_EVENT_OTHER)
+		hns3_pf_enable_irq0(hw);
 }
 
 static int
@@ -5523,7 +5582,7 @@ is_pf_reset_done(struct hns3_hw *hw)
 		return true;
 }
 
-static void
+static enum hns3_reset_level
 hns3_detect_reset_event(struct hns3_hw *hw)
 {
 	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
@@ -5535,11 +5594,9 @@ hns3_detect_reset_event(struct hns3_hw *hw)
 	vector0_intr_state = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG);
 	if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & vector0_intr_state) {
 		__atomic_store_n(&hw->reset.disable_cmd, 1, __ATOMIC_RELAXED);
-		hns3_atomic_set_bit(HNS3_IMP_RESET, &hw->reset.pending);
 		new_req = HNS3_IMP_RESET;
 	} else if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & vector0_intr_state) {
 		__atomic_store_n(&hw->reset.disable_cmd, 1, __ATOMIC_RELAXED);
-		hns3_atomic_set_bit(HNS3_GLOBAL_RESET, &hw->reset.pending);
 		new_req = HNS3_GLOBAL_RESET;
 	}
 
@@ -5547,13 +5604,16 @@ hns3_detect_reset_event(struct hns3_hw *hw)
 		hns3_schedule_delayed_reset(hns);
 		hns3_warn(hw, "High level reset detected, delay do reset");
 	}
+
+	return new_req;
 }
 
 bool
 hns3_is_reset_pending(struct hns3_adapter *hns)
 {
+	enum hns3_reset_level new_req;
 	struct hns3_hw *hw = &hns->hw;
-	enum hns3_reset_level reset;
+	enum hns3_reset_level last_req;
 
 	/*
 	 * Only primary can process can process the reset event,
@@ -5562,17 +5622,17 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return false;
 
-	hns3_detect_reset_event(hw);
-	reset = hns3_get_reset_level(hns, &hw->reset.pending);
-	if (reset != HNS3_NONE_RESET && hw->reset.level != HNS3_NONE_RESET &&
-	    hw->reset.level < reset) {
-		hns3_warn(hw, "High level reset %d is pending", reset);
+	new_req = hns3_detect_reset_event(hw);
+	last_req = hns3_get_reset_level(hns, &hw->reset.pending);
+	if (last_req != HNS3_NONE_RESET && new_req != HNS3_NONE_RESET &&
+	    new_req < last_req) {
+		hns3_warn(hw, "High level reset %d is pending", last_req);
 		return true;
 	}
-	reset = hns3_get_reset_level(hns, &hw->reset.request);
-	if (reset != HNS3_NONE_RESET && hw->reset.level != HNS3_NONE_RESET &&
-	    hw->reset.level < reset) {
-		hns3_warn(hw, "High level reset %d is request", reset);
+	last_req = hns3_get_reset_level(hns, &hw->reset.request);
+	if (last_req != HNS3_NONE_RESET && hw->reset.level != HNS3_NONE_RESET &&
+	    hw->reset.level < last_req) {
+		hns3_warn(hw, "High level reset %d is request", last_req);
 		return true;
 	}
 	return false;
diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h
index 58572948fe..f86512bd35 100644
--- a/drivers/net/hns3/hns3_ethdev.h
+++ b/drivers/net/hns3/hns3_ethdev.h
@@ -1029,6 +1029,7 @@ void hns3_update_linkstatus_and_event(struct hns3_hw *hw, bool query);
 void hns3vf_update_link_status(struct hns3_hw *hw, uint8_t link_status,
 			  uint32_t link_speed, uint8_t link_duplex);
 void hns3vf_update_push_lsc_cap(struct hns3_hw *hw, bool supported);
+void hns3_clear_reset_event(struct hns3_hw *hw);
 
 
 static inline bool
diff --git a/drivers/net/hns3/hns3_intr.c b/drivers/net/hns3/hns3_intr.c
index baf5f58e9e..c5a3e3797c 100644
--- a/drivers/net/hns3/hns3_intr.c
+++ b/drivers/net/hns3/hns3_intr.c
@@ -2749,6 +2749,7 @@ hns3_reset_post(struct hns3_adapter *hns)
 		/* IMP will wait ready flag before reset */
 		hns3_notify_reset_ready(hw, false);
 		hns3_clear_reset_level(hw, &hw->reset.pending);
+		hns3_clear_reset_event(hw);
 		__atomic_store_n(&hns->hw.reset.resetting, 0, __ATOMIC_RELAXED);
 		hw->reset.attempts = 0;
 		hw->reset.stats.success_cnt++;
@@ -2798,6 +2799,7 @@ hns3_reset_fail_handle(struct hns3_adapter *hns)
 	struct timeval tv;
 
 	hns3_clear_reset_level(hw, &hw->reset.pending);
+	hns3_clear_reset_event(hw);
 	if (hns3_reset_err_handle(hns)) {
 		hw->reset.stage = RESET_STAGE_PREWAIT;
 		hns3_schedule_reset(hns);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.963748300 +0800
+++ 0024-net-hns3-fix-IMP-or-global-reset.patch	2023-12-11 17:56:22.927652300 +0800
@@ -1 +1 @@
-From 1eee1ea75c0eadaea6dde368b289cf0acf6a1190 Mon Sep 17 00:00:00 2001
+From 9a62d06e64ab1c7708c2197d23f198eb3daaccce Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1eee1ea75c0eadaea6dde368b289cf0acf6a1190 ]
@@ -25 +27,0 @@
-Cc: stable@dpdk.org
@@ -35 +37 @@
-index 18afc0fa0a..bb9dde9c5b 100644
+index 576cc56216..036062947d 100644
@@ -38 +40 @@
-@@ -215,6 +215,30 @@ out:
+@@ -219,6 +219,30 @@ out:
@@ -69 +71 @@
-@@ -287,6 +311,34 @@ hns3_delay_before_clear_event_cause(struct hns3_hw *hw, uint32_t event_type, uin
+@@ -291,6 +315,34 @@ hns3_delay_before_clear_event_cause(struct hns3_hw *hw, uint32_t event_type, uin
@@ -104 +106 @@
-@@ -299,6 +351,9 @@ hns3_interrupt_handler(void *param)
+@@ -303,6 +355,9 @@ hns3_interrupt_handler(void *param)
@@ -114 +116 @@
-@@ -327,7 +382,11 @@ hns3_interrupt_handler(void *param)
+@@ -331,7 +386,11 @@ hns3_interrupt_handler(void *param)
@@ -127 +129 @@
-@@ -5489,7 +5548,7 @@ is_pf_reset_done(struct hns3_hw *hw)
+@@ -5523,7 +5582,7 @@ is_pf_reset_done(struct hns3_hw *hw)
@@ -136 +138 @@
-@@ -5501,11 +5560,9 @@ hns3_detect_reset_event(struct hns3_hw *hw)
+@@ -5535,11 +5594,9 @@ hns3_detect_reset_event(struct hns3_hw *hw)
@@ -148 +150 @@
-@@ -5513,13 +5570,16 @@ hns3_detect_reset_event(struct hns3_hw *hw)
+@@ -5547,13 +5604,16 @@ hns3_detect_reset_event(struct hns3_hw *hw)
@@ -166 +168 @@
-@@ -5528,17 +5588,17 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
+@@ -5562,17 +5622,17 @@ hns3_is_reset_pending(struct hns3_adapter *hns)
@@ -194 +196 @@
-index c85a6912ad..0e8d043704 100644
+index 58572948fe..f86512bd35 100644
@@ -197 +199 @@
-@@ -1033,6 +1033,7 @@ void hns3_update_linkstatus_and_event(struct hns3_hw *hw, bool query);
+@@ -1029,6 +1029,7 @@ void hns3_update_linkstatus_and_event(struct hns3_hw *hw, bool query);
@@ -203 +204,0 @@
- const char *hns3_get_media_type_name(uint8_t media_type);
@@ -204,0 +206 @@
+ static inline bool

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: refactor interrupt state query' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (23 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/hns3: fix IMP or global reset' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/nfp: fix reconfigure logic in PF initialization' " Xueming Li
                     ` (95 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8dcc1b45529b93d5a850f79e86b1f010b99bd138

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8dcc1b45529b93d5a850f79e86b1f010b99bd138 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 27 Oct 2023 14:09:46 +0800
Subject: [PATCH] net/hns3: refactor interrupt state query
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c01ffb24a241a360361ed5c94a819824a8542f3f ]

PF driver get all interrupt states by reading three registers. This logic
code block is distributed in many places. So this patch extracts a common
function to do this to improve the maintenance.

Fixes: f53a793bb7c2 ("net/hns3: add more hardware error types")
Fixes: 3988ab0eee52 ("net/hns3: add abnormal interrupt process")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 57 +++++++++++++++++++---------------
 1 file changed, 32 insertions(+), 25 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 036062947d..af66bf062e 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -62,6 +62,12 @@ enum hns3_evt_cause {
 	HNS3_VECTOR0_EVENT_OTHER,
 };
 
+struct hns3_intr_state {
+	uint32_t vector0_state;
+	uint32_t cmdq_state;
+	uint32_t hw_err_state;
+};
+
 #define HNS3_SPEEDS_SUPP_FEC (RTE_ETH_LINK_SPEED_10G | \
 			      RTE_ETH_LINK_SPEED_25G | \
 			      RTE_ETH_LINK_SPEED_40G | \
@@ -155,20 +161,23 @@ hns3_proc_global_reset_event(struct hns3_adapter *hns, uint32_t *vec_val)
 	return HNS3_VECTOR0_EVENT_RST;
 }
 
+static void
+hns3_query_intr_state(struct hns3_hw *hw, struct hns3_intr_state *state)
+{
+	state->vector0_state = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG);
+	state->cmdq_state = hns3_read_dev(hw, HNS3_VECTOR0_CMDQ_SRC_REG);
+	state->hw_err_state = hns3_read_dev(hw, HNS3_RAS_PF_OTHER_INT_STS_REG);
+}
+
 static enum hns3_evt_cause
 hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 {
 	struct hns3_hw *hw = &hns->hw;
-	uint32_t vector0_int_stats;
-	uint32_t cmdq_src_val;
-	uint32_t hw_err_src_reg;
+	struct hns3_intr_state state;
 	uint32_t val;
 	enum hns3_evt_cause ret;
 
-	/* fetch the events from their corresponding regs */
-	vector0_int_stats = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG);
-	cmdq_src_val = hns3_read_dev(hw, HNS3_VECTOR0_CMDQ_SRC_REG);
-	hw_err_src_reg = hns3_read_dev(hw, HNS3_RAS_PF_OTHER_INT_STS_REG);
+	hns3_query_intr_state(hw, &state);
 
 	/*
 	 * Assumption: If by any chance reset and mailbox events are reported
@@ -177,41 +186,41 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 	 * RX CMDQ event this time we would receive again another interrupt
 	 * from H/W just for the mailbox.
 	 */
-	if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & vector0_int_stats) { /* IMP */
+	if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & state.vector0_state) { /* IMP */
 		ret = hns3_proc_imp_reset_event(hns, &val);
 		goto out;
 	}
 
 	/* Global reset */
-	if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & vector0_int_stats) {
+	if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & state.vector0_state) {
 		ret = hns3_proc_global_reset_event(hns, &val);
 		goto out;
 	}
 
 	/* Check for vector0 1588 event source */
-	if (BIT(HNS3_VECTOR0_1588_INT_B) & vector0_int_stats) {
+	if (BIT(HNS3_VECTOR0_1588_INT_B) & state.vector0_state) {
 		val = BIT(HNS3_VECTOR0_1588_INT_B);
 		ret = HNS3_VECTOR0_EVENT_PTP;
 		goto out;
 	}
 
 	/* check for vector0 msix event source */
-	if (vector0_int_stats & HNS3_VECTOR0_REG_MSIX_MASK ||
-	    hw_err_src_reg & HNS3_RAS_REG_NFE_MASK) {
-		val = vector0_int_stats | hw_err_src_reg;
+	if (state.vector0_state & HNS3_VECTOR0_REG_MSIX_MASK ||
+	    state.hw_err_state & HNS3_RAS_REG_NFE_MASK) {
+		val = state.vector0_state | state.hw_err_state;
 		ret = HNS3_VECTOR0_EVENT_ERR;
 		goto out;
 	}
 
 	/* check for vector0 mailbox(=CMDQ RX) event source */
-	if (BIT(HNS3_VECTOR0_RX_CMDQ_INT_B) & cmdq_src_val) {
-		cmdq_src_val &= ~BIT(HNS3_VECTOR0_RX_CMDQ_INT_B);
-		val = cmdq_src_val;
+	if (BIT(HNS3_VECTOR0_RX_CMDQ_INT_B) & state.cmdq_state) {
+		state.cmdq_state &= ~BIT(HNS3_VECTOR0_RX_CMDQ_INT_B);
+		val = state.cmdq_state;
 		ret = HNS3_VECTOR0_EVENT_MBX;
 		goto out;
 	}
 
-	val = vector0_int_stats;
+	val = state.vector0_state;
 	ret = HNS3_VECTOR0_EVENT_OTHER;
 
 out:
@@ -350,10 +359,8 @@ hns3_interrupt_handler(void *param)
 	struct hns3_adapter *hns = dev->data->dev_private;
 	struct hns3_hw *hw = &hns->hw;
 	enum hns3_evt_cause event_cause;
+	struct hns3_intr_state state;
 	uint32_t clearval = 0;
-	uint32_t vector0_int;
-	uint32_t ras_int;
-	uint32_t cmdq_int;
 
 	if (!hns3_reset_event_valid(hw))
 		return;
@@ -362,16 +369,15 @@ hns3_interrupt_handler(void *param)
 	hns3_pf_disable_irq0(hw);
 
 	event_cause = hns3_check_event_cause(hns, &clearval);
-	vector0_int = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG);
-	ras_int = hns3_read_dev(hw, HNS3_RAS_PF_OTHER_INT_STS_REG);
-	cmdq_int = hns3_read_dev(hw, HNS3_VECTOR0_CMDQ_SRC_REG);
+	hns3_query_intr_state(hw, &state);
 	hns3_delay_before_clear_event_cause(hw, event_cause, clearval);
 	hns3_clear_event_cause(hw, event_cause, clearval);
 	/* vector 0 interrupt is shared with reset and mailbox source events. */
 	if (event_cause == HNS3_VECTOR0_EVENT_ERR) {
 		hns3_warn(hw, "received interrupt: vector0_int_stat:0x%x "
 			  "ras_int_stat:0x%x cmdq_int_stat:0x%x",
-			  vector0_int, ras_int, cmdq_int);
+			  state.vector0_state, state.hw_err_state,
+			  state.cmdq_state);
 		hns3_handle_mac_tnl(hw);
 		hns3_handle_error(hns);
 	} else if (event_cause == HNS3_VECTOR0_EVENT_RST) {
@@ -382,7 +388,8 @@ hns3_interrupt_handler(void *param)
 	} else if (event_cause != HNS3_VECTOR0_EVENT_PTP) {
 		hns3_warn(hw, "received unknown event: vector0_int_stat:0x%x "
 			  "ras_int_stat:0x%x cmdq_int_stat:0x%x",
-			  vector0_int, ras_int, cmdq_int);
+			  state.vector0_state, state.hw_err_state,
+			  state.cmdq_state);
 	}
 
 	/* Enable interrupt if it is not cause by reset */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:23.999817300 +0800
+++ 0025-net-hns3-refactor-interrupt-state-query.patch	2023-12-11 17:56:22.927652300 +0800
@@ -1 +1 @@
-From c01ffb24a241a360361ed5c94a819824a8542f3f Mon Sep 17 00:00:00 2001
+From 8dcc1b45529b93d5a850f79e86b1f010b99bd138 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c01ffb24a241a360361ed5c94a819824a8542f3f ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index bb9dde9c5b..0feea52542 100644
+index 036062947d..af66bf062e 100644
@@ -23 +25 @@
-@@ -57,6 +57,12 @@ enum hns3_evt_cause {
+@@ -62,6 +62,12 @@ enum hns3_evt_cause {
@@ -36 +38 @@
-@@ -151,20 +157,23 @@ hns3_proc_global_reset_event(struct hns3_adapter *hns, uint32_t *vec_val)
+@@ -155,20 +161,23 @@ hns3_proc_global_reset_event(struct hns3_adapter *hns, uint32_t *vec_val)
@@ -67 +69 @@
-@@ -173,41 +182,41 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
+@@ -177,41 +186,41 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
@@ -119 +121 @@
-@@ -346,10 +355,8 @@ hns3_interrupt_handler(void *param)
+@@ -350,10 +359,8 @@ hns3_interrupt_handler(void *param)
@@ -131 +133 @@
-@@ -358,16 +365,15 @@ hns3_interrupt_handler(void *param)
+@@ -362,16 +369,15 @@ hns3_interrupt_handler(void *param)
@@ -151 +153 @@
-@@ -378,7 +384,8 @@ hns3_interrupt_handler(void *param)
+@@ -382,7 +388,8 @@ hns3_interrupt_handler(void *param)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/nfp: fix reconfigure logic in PF initialization' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (24 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/hns3: refactor interrupt state query' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/nfp: fix reconfigure logic in VF " Xueming Li
                     ` (94 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Chaoyong He; +Cc: Long Wu, Peng Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=cb30eb9a1176718cb8b963361c5daf1700a22de9

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From cb30eb9a1176718cb8b963361c5daf1700a22de9 Mon Sep 17 00:00:00 2001
From: Chaoyong He <chaoyong.he@corigine.com>
Date: Sat, 28 Oct 2023 14:23:13 +0800
Subject: [PATCH] net/nfp: fix reconfigure logic in PF initialization
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 1e80c07472aeed5669c79c0430b8aeece5129a20 ]

There exists exit point between the reconfigure logic and the store
logic of the PF initialization, this may lead one situation that value
in the config bar is not same with the value stored in the data
structure.

Fix this by move up the store statement.

Fixes: b812daadad0d ("nfp: add Rx and Tx")

Signed-off-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
---
 drivers/net/nfp/nfp_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
index 71832bfa23..a780887868 100644
--- a/drivers/net/nfp/nfp_ethdev.c
+++ b/drivers/net/nfp/nfp_ethdev.c
@@ -155,6 +155,8 @@ nfp_net_start(struct rte_eth_dev *dev)
 
 	nn_cfg_writel(hw, NFP_NET_CFG_CTRL, new_ctrl);
 	if (nfp_net_reconfig(hw, new_ctrl, update) < 0)
+	hw->ctrl = new_ctrl;
+
 		return -EIO;
 
 	/*
@@ -173,8 +175,6 @@ nfp_net_start(struct rte_eth_dev *dev)
 		nfp_eth_set_configured(dev->process_private,
 				       hw->nfp_idx, 1);
 
-	hw->ctrl = new_ctrl;
-
 	for (i = 0; i < dev->data->nb_rx_queues; i++)
 		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	for (i = 0; i < dev->data->nb_tx_queues; i++)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.032035500 +0800
+++ 0026-net-nfp-fix-reconfigure-logic-in-PF-initialization.patch	2023-12-11 17:56:22.927652300 +0800
@@ -1 +1 @@
-From 1e80c07472aeed5669c79c0430b8aeece5129a20 Mon Sep 17 00:00:00 2001
+From cb30eb9a1176718cb8b963361c5daf1700a22de9 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1e80c07472aeed5669c79c0430b8aeece5129a20 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 76317925ec..0a0e3d6375 100644
+index 71832bfa23..a780887868 100644
@@ -27,3 +29 @@
-@@ -141,6 +141,8 @@ nfp_net_start(struct rte_eth_dev *dev)
- 	if (nfp_reconfig(hw, new_ctrl, update) != 0)
- 		return -EIO;
+@@ -155,6 +155,8 @@ nfp_net_start(struct rte_eth_dev *dev)
@@ -30,0 +31,2 @@
+ 	nn_cfg_writel(hw, NFP_NET_CFG_CTRL, new_ctrl);
+ 	if (nfp_net_reconfig(hw, new_ctrl, update) < 0)
@@ -33,6 +35,6 @@
- 	/* Enable packet type offload by extend ctrl word1. */
- 	cap_extend = hw->cap_ext;
- 	if ((cap_extend & NFP_NET_CFG_CTRL_PKT_TYPE) != 0)
-@@ -171,8 +173,6 @@ nfp_net_start(struct rte_eth_dev *dev)
- 	else
- 		nfp_eth_set_configured(dev->process_private, net_hw->nfp_idx, 1);
+ 		return -EIO;
+ 
+ 	/*
+@@ -173,8 +175,6 @@ nfp_net_start(struct rte_eth_dev *dev)
+ 		nfp_eth_set_configured(dev->process_private,
+ 				       hw->nfp_idx, 1);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/nfp: fix reconfigure logic in VF initialization' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (25 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/nfp: fix reconfigure logic in PF initialization' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'test/bonding: remove unreachable statement' " Xueming Li
                     ` (93 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Chaoyong He; +Cc: Long Wu, Peng Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8d45a7ecacdfa22d32aa47c93561ac74e305aba8

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8d45a7ecacdfa22d32aa47c93561ac74e305aba8 Mon Sep 17 00:00:00 2001
From: Chaoyong He <chaoyong.he@corigine.com>
Date: Sat, 28 Oct 2023 14:23:14 +0800
Subject: [PATCH] net/nfp: fix reconfigure logic in VF initialization
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 61847adc98057c0e500c65110a83181b7db4ebc9 ]

There exists exit point between the reconfigure logic and the store
logic of the VF initialization, this may lead one situation that value
in the config bar is not same with the value stored in the data
structure.

Fix this by move up the store statement.

Fixes: 7f8e73201dae ("net/nfp: move VF functions into its own file")

Signed-off-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
---
 drivers/net/nfp/nfp_ethdev_vf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c
index 268820cbea..6a70daca90 100644
--- a/drivers/net/nfp/nfp_ethdev_vf.c
+++ b/drivers/net/nfp/nfp_ethdev_vf.c
@@ -114,6 +114,8 @@ nfp_netvf_start(struct rte_eth_dev *dev)
 	if (nfp_net_reconfig(hw, new_ctrl, update) < 0)
 		return -EIO;
 
+	hw->ctrl = new_ctrl;
+
 	/*
 	 * Allocating rte mbufs for configured rx queues.
 	 * This requires queues being enabled before
@@ -123,8 +125,6 @@ nfp_netvf_start(struct rte_eth_dev *dev)
 		goto error;
 	}
 
-	hw->ctrl = new_ctrl;
-
 	for (i = 0; i < dev->data->nb_rx_queues; i++)
 		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	for (i = 0; i < dev->data->nb_tx_queues; i++)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.061159400 +0800
+++ 0027-net-nfp-fix-reconfigure-logic-in-VF-initialization.patch	2023-12-11 17:56:22.927652300 +0800
@@ -1 +1 @@
-From 61847adc98057c0e500c65110a83181b7db4ebc9 Mon Sep 17 00:00:00 2001
+From 8d45a7ecacdfa22d32aa47c93561ac74e305aba8 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 61847adc98057c0e500c65110a83181b7db4ebc9 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index b9cfb48021..2d08a07913 100644
+index 268820cbea..6a70daca90 100644
@@ -27,2 +29,2 @@
-@@ -91,6 +91,8 @@ nfp_netvf_start(struct rte_eth_dev *dev)
- 	if (nfp_reconfig(hw, new_ctrl, update) != 0)
+@@ -114,6 +114,8 @@ nfp_netvf_start(struct rte_eth_dev *dev)
+ 	if (nfp_net_reconfig(hw, new_ctrl, update) < 0)
@@ -35,2 +37,2 @@
- 	 * This requires queues being enabled before.
-@@ -100,8 +102,6 @@ nfp_netvf_start(struct rte_eth_dev *dev)
+ 	 * This requires queues being enabled before
+@@ -123,8 +125,6 @@ nfp_netvf_start(struct rte_eth_dev *dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test/bonding: remove unreachable statement' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (26 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/nfp: fix reconfigure logic in VF " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'test/bonding: add missing check' " Xueming Li
                     ` (92 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Long Wu; +Cc: Chaoyong He, Peng Zhang, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=7989293c6668d63bac5d3c2ff63c6dcfde89a7f6

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7989293c6668d63bac5d3c2ff63c6dcfde89a7f6 Mon Sep 17 00:00:00 2001
From: Long Wu <long.wu@corigine.com>
Date: Tue, 10 Oct 2023 14:23:02 +0800
Subject: [PATCH] test/bonding: remove unreachable statement
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9f4f98c9898fc6aa730ed02571790aa0b2ac4813 ]

CI found that execution cannot reach the expression "else"
inside this statement.

Coverity issue: 403097
Fixes: 5e41ab250dfa ("app/test: unit tests for bonding mode 4")

Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test/test_link_bonding_mode4.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/app/test/test_link_bonding_mode4.c b/app/test/test_link_bonding_mode4.c
index 21c512c94b..7410f99617 100644
--- a/app/test/test_link_bonding_mode4.c
+++ b/app/test/test_link_bonding_mode4.c
@@ -641,8 +641,7 @@ bond_handshake(void)
 	/* If response didn't send - report failure */
 	TEST_ASSERT_EQUAL(all_slaves_done, 1, "Bond handshake failed\n");
 
-	/* If flags doesn't match - report failure */
-	return all_slaves_done == 1 ? TEST_SUCCESS : TEST_FAILED;
+	return TEST_SUCCESS;
 }
 
 #define TEST_LACP_SLAVE_COUT RTE_DIM(test_params.slave_ports)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.089521500 +0800
+++ 0028-test-bonding-remove-unreachable-statement.patch	2023-12-11 17:56:22.927652300 +0800
@@ -1 +1 @@
-From 9f4f98c9898fc6aa730ed02571790aa0b2ac4813 Mon Sep 17 00:00:00 2001
+From 7989293c6668d63bac5d3c2ff63c6dcfde89a7f6 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9f4f98c9898fc6aa730ed02571790aa0b2ac4813 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 645fc1e0d4..ff13dbed93 100644
+index 21c512c94b..7410f99617 100644
@@ -27 +29 @@
- 	TEST_ASSERT_EQUAL(all_members_done, 1, "Bond handshake failed\n");
+ 	TEST_ASSERT_EQUAL(all_slaves_done, 1, "Bond handshake failed\n");
@@ -30 +32 @@
--	return all_members_done == 1 ? TEST_SUCCESS : TEST_FAILED;
+-	return all_slaves_done == 1 ? TEST_SUCCESS : TEST_FAILED;
@@ -34 +36 @@
- #define TEST_LACP_MEMBER_COUT RTE_DIM(test_params.member_ports)
+ #define TEST_LACP_SLAVE_COUT RTE_DIM(test_params.slave_ports)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test/bonding: add missing check' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (27 preceding siblings ...)
  2023-12-11 10:10   ` patch 'test/bonding: remove unreachable statement' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/bonding: fix possible overrun' " Xueming Li
                     ` (91 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Long Wu; +Cc: Chaoyong He, Peng Zhang, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=d3f778e0770274d1a0cc42f0d0a4360d7de1fa4a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d3f778e0770274d1a0cc42f0d0a4360d7de1fa4a Mon Sep 17 00:00:00 2001
From: Long Wu <long.wu@corigine.com>
Date: Tue, 10 Oct 2023 14:23:04 +0800
Subject: [PATCH] test/bonding: add missing check
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 0ecafc2e44268e4d0626dcf0c811590466291f20 ]

CI found the function without checking return value in this place.

Coverity issue: 403101
Fixes: 92073ef961ee ("bond: unit tests")

Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test/test_link_bonding.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/app/test/test_link_bonding.c b/app/test/test_link_bonding.c
index d74e2f5fca..53f5c13a24 100644
--- a/app/test/test_link_bonding.c
+++ b/app/test/test_link_bonding.c
@@ -447,7 +447,8 @@ test_add_already_bonded_slave_to_bonded_device(void)
 	uint16_t slaves[RTE_MAX_ETHPORTS];
 	char pmd_name[RTE_ETH_NAME_MAX_LEN];
 
-	test_add_slave_to_bonded_device();
+	TEST_ASSERT_SUCCESS(test_add_slave_to_bonded_device(),
+			"Failed to add member to bonding device");
 
 	current_slave_count = rte_eth_bond_slaves_get(test_params->bonded_port_id,
 			slaves, RTE_MAX_ETHPORTS);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.131390500 +0800
+++ 0029-test-bonding-add-missing-check.patch	2023-12-11 17:56:22.937652300 +0800
@@ -1 +1 @@
-From 0ecafc2e44268e4d0626dcf0c811590466291f20 Mon Sep 17 00:00:00 2001
+From d3f778e0770274d1a0cc42f0d0a4360d7de1fa4a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 0ecafc2e44268e4d0626dcf0c811590466291f20 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 4d715c4465..4d54706c21 100644
+index d74e2f5fca..53f5c13a24 100644
@@ -24,2 +26,2 @@
-@@ -449,7 +449,8 @@ test_add_already_bonding_member_to_bonding_device(void)
- 	uint16_t members[RTE_MAX_ETHPORTS];
+@@ -447,7 +447,8 @@ test_add_already_bonded_slave_to_bonded_device(void)
+ 	uint16_t slaves[RTE_MAX_ETHPORTS];
@@ -28,2 +30,2 @@
--	test_add_member_to_bonding_device();
-+	TEST_ASSERT_SUCCESS(test_add_member_to_bonding_device(),
+-	test_add_slave_to_bonded_device();
++	TEST_ASSERT_SUCCESS(test_add_slave_to_bonded_device(),
@@ -32,2 +34,2 @@
- 	current_member_count = rte_eth_bond_members_get(test_params->bonding_port_id,
- 			members, RTE_MAX_ETHPORTS);
+ 	current_slave_count = rte_eth_bond_slaves_get(test_params->bonded_port_id,
+ 			slaves, RTE_MAX_ETHPORTS);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/bonding: fix possible overrun' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (28 preceding siblings ...)
  2023-12-11 10:10   ` patch 'test/bonding: add missing check' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/txgbe: add proper memory barriers in Rx' " Xueming Li
                     ` (90 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Long Wu; +Cc: Chaoyong He, Peng Zhang, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=22b7f9edf9f05ef32b5be7319037510abd63771a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 22b7f9edf9f05ef32b5be7319037510abd63771a Mon Sep 17 00:00:00 2001
From: Long Wu <long.wu@corigine.com>
Date: Wed, 1 Nov 2023 10:19:59 +0800
Subject: [PATCH] net/bonding: fix possible overrun
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 925f8582c49c79f588cb4c96f510fb94becbb3bc ]

CI found that overrunning array of 32 2-byte elements at
element index 65535 (byte offset 131071) by dereferencing
pointer "members + agg_new_idx".

Coverity issue: 403099
Fixes: 6d72657ce379 ("net/bonding: add other aggregator modes")

Signed-off-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/bonding/rte_eth_bond_8023ad.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c
index 4a266bb2ca..928dfca7af 100644
--- a/drivers/net/bonding/rte_eth_bond_8023ad.c
+++ b/drivers/net/bonding/rte_eth_bond_8023ad.c
@@ -654,12 +654,9 @@ tx_machine(struct bond_dev_private *internals, uint16_t slave_id)
 }
 
 static uint16_t
-max_index(uint64_t *a, int n)
+max_index(uint64_t *a, uint16_t n)
 {
-	if (n <= 0)
-		return -1;
-
-	int i, max_i = 0;
+	uint16_t i, max_i = 0;
 	uint64_t max = a[0];
 
 	for (i = 1; i < n; ++i) {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.162771400 +0800
+++ 0030-net-bonding-fix-possible-overrun.patch	2023-12-11 17:56:22.937652300 +0800
@@ -1 +1 @@
-From 925f8582c49c79f588cb4c96f510fb94becbb3bc Mon Sep 17 00:00:00 2001
+From 22b7f9edf9f05ef32b5be7319037510abd63771a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 925f8582c49c79f588cb4c96f510fb94becbb3bc ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 677067870f..79f1b3f1a0 100644
+index 4a266bb2ca..928dfca7af 100644
@@ -26 +28 @@
-@@ -654,12 +654,9 @@ tx_machine(struct bond_dev_private *internals, uint16_t member_id)
+@@ -654,12 +654,9 @@ tx_machine(struct bond_dev_private *internals, uint16_t slave_id)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/txgbe: add proper memory barriers in Rx' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (29 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/bonding: fix possible overrun' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/ngbe: " Xueming Li
                     ` (89 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=33f8a0ce2cb240f08f1c160ad1712999c7a3a298

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 33f8a0ce2cb240f08f1c160ad1712999c7a3a298 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Wed, 1 Nov 2023 11:32:40 +0800
Subject: [PATCH] net/txgbe: add proper memory barriers in Rx
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 5bf954b7d91ad20ee87befbad9fdb53f03dd488b ]

Refer to commit 85e46c532bc7 ("net/ixgbe: add proper memory barriers in
Rx"). Fix the same issue as ixgbe.

Segmentation fault has been observed while running the
txgbe_recv_pkts_lro() function to receive packets on the Loongson 3A5000
processor. It's caused by the out-of-order execution of CPU. So add a
proper memory barrier to ensure the read ordering be correct.

We also did the same thing in the txgbe_recv_pkts() function to make the
rxd data be valid even though we did not find segmentation fault in this
function.

Fixes: 0e484278c85f ("net/txgbe: support Rx")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/txgbe_rxtx.c | 47 +++++++++++++++-------------------
 1 file changed, 21 insertions(+), 26 deletions(-)

diff --git a/drivers/net/txgbe/txgbe_rxtx.c b/drivers/net/txgbe/txgbe_rxtx.c
index 834ada886a..24fc34d3c4 100644
--- a/drivers/net/txgbe/txgbe_rxtx.c
+++ b/drivers/net/txgbe/txgbe_rxtx.c
@@ -1476,11 +1476,22 @@ txgbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
 		 * of accesses cannot be reordered by the compiler. If they were
 		 * not volatile, they could be reordered which could lead to
 		 * using invalid descriptor fields when read from rxd.
+		 *
+		 * Meanwhile, to prevent the CPU from executing out of order, we
+		 * need to use a proper memory barrier to ensure the memory
+		 * ordering below.
 		 */
 		rxdp = &rx_ring[rx_id];
 		staterr = rxdp->qw1.lo.status;
 		if (!(staterr & rte_cpu_to_le_32(TXGBE_RXD_STAT_DD)))
 			break;
+
+		/*
+		 * Use acquire fence to ensure that status_error which includes
+		 * DD bit is loaded before loading of other descriptor words.
+		 */
+		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
+
 		rxd = *rxdp;
 
 		/*
@@ -1726,32 +1737,10 @@ txgbe_recv_pkts_lro(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts,
 
 next_desc:
 		/*
-		 * The code in this whole file uses the volatile pointer to
-		 * ensure the read ordering of the status and the rest of the
-		 * descriptor fields (on the compiler level only!!!). This is so
-		 * UGLY - why not to just use the compiler barrier instead? DPDK
-		 * even has the rte_compiler_barrier() for that.
-		 *
-		 * But most importantly this is just wrong because this doesn't
-		 * ensure memory ordering in a general case at all. For
-		 * instance, DPDK is supposed to work on Power CPUs where
-		 * compiler barrier may just not be enough!
-		 *
-		 * I tried to write only this function properly to have a
-		 * starting point (as a part of an LRO/RSC series) but the
-		 * compiler cursed at me when I tried to cast away the
-		 * "volatile" from rx_ring (yes, it's volatile too!!!). So, I'm
-		 * keeping it the way it is for now.
-		 *
-		 * The code in this file is broken in so many other places and
-		 * will just not work on a big endian CPU anyway therefore the
-		 * lines below will have to be revisited together with the rest
-		 * of the txgbe PMD.
-		 *
-		 * TODO:
-		 *    - Get rid of "volatile" and let the compiler do its job.
-		 *    - Use the proper memory barrier (rte_rmb()) to ensure the
-		 *      memory ordering below.
+		 * "Volatile" only prevents caching of the variable marked
+		 * volatile. Most important, "volatile" cannot prevent the CPU
+		 * from executing out of order. So, it is necessary to use a
+		 * proper memory barrier to ensure the memory ordering below.
 		 */
 		rxdp = &rx_ring[rx_id];
 		staterr = rte_le_to_cpu_32(rxdp->qw1.lo.status);
@@ -1759,6 +1748,12 @@ next_desc:
 		if (!(staterr & TXGBE_RXD_STAT_DD))
 			break;
 
+		/*
+		 * Use acquire fence to ensure that status_error which includes
+		 * DD bit is loaded before loading of other descriptor words.
+		 */
+		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
+
 		rxd = *rxdp;
 
 		PMD_RX_LOG(DEBUG, "port_id=%u queue_id=%u rx_id=%u "
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.187521000 +0800
+++ 0031-net-txgbe-add-proper-memory-barriers-in-Rx.patch	2023-12-11 17:56:22.937652300 +0800
@@ -1 +1 @@
-From 5bf954b7d91ad20ee87befbad9fdb53f03dd488b Mon Sep 17 00:00:00 2001
+From 33f8a0ce2cb240f08f1c160ad1712999c7a3a298 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5bf954b7d91ad20ee87befbad9fdb53f03dd488b ]
@@ -19 +21,0 @@
-Cc: stable@dpdk.org
@@ -23,2 +25,2 @@
- drivers/net/txgbe/txgbe_rxtx.c | 49 +++++++++++++++-------------------
- 1 file changed, 22 insertions(+), 27 deletions(-)
+ drivers/net/txgbe/txgbe_rxtx.c | 47 +++++++++++++++-------------------
+ 1 file changed, 21 insertions(+), 26 deletions(-)
@@ -27 +29 @@
-index 834ada886a..1cd4b25965 100644
+index 834ada886a..24fc34d3c4 100644
@@ -30,9 +31,0 @@
-@@ -1226,7 +1226,7 @@ txgbe_rx_scan_hw_ring(struct txgbe_rx_queue *rxq)
- 		for (j = 0; j < LOOK_AHEAD; j++)
- 			s[j] = rte_le_to_cpu_32(rxdp[j].qw1.lo.status);
- 
--		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
-+		rte_atomic_thread_fence(rte_memory_order_acquire);
- 
- 		/* Compute how many status bits were set */
- 		for (nb_dd = 0; nb_dd < LOOK_AHEAD &&
@@ -57 +50 @@
-+		rte_atomic_thread_fence(rte_memory_order_acquire);
++		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
@@ -107 +100 @@
-+		rte_atomic_thread_fence(rte_memory_order_acquire);
++		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ngbe: add proper memory barriers in Rx' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (30 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/txgbe: add proper memory barriers in Rx' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'ethdev: fix 32-bit build with GCC 13' " Xueming Li
                     ` (88 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Jiawen Wu; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=14a4c7b3e812ff3b9e4d0bd1029f018a9f253384

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 14a4c7b3e812ff3b9e4d0bd1029f018a9f253384 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: Wed, 1 Nov 2023 11:32:41 +0800
Subject: [PATCH] net/ngbe: add proper memory barriers in Rx
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a74c5001e96e0463db0ace848a1605b98c1d8c24 ]

Refer to commit 85e46c532bc7 ("net/ixgbe: add proper memory barriers in
Rx"). Fix the same issue as ixgbe.

Although due to the testing schedule, the current test has not found this
problem. We also do the same fix in ngbe, to ensure the read ordering be
correct.

Fixes: 79f3128d4d98 ("net/ngbe: support scattered Rx")

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/ngbe/ngbe_rxtx.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/drivers/net/ngbe/ngbe_rxtx.c b/drivers/net/ngbe/ngbe_rxtx.c
index ec353a30b1..54a6f6a887 100644
--- a/drivers/net/ngbe/ngbe_rxtx.c
+++ b/drivers/net/ngbe/ngbe_rxtx.c
@@ -1223,11 +1223,22 @@ ngbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
 		 * of accesses cannot be reordered by the compiler. If they were
 		 * not volatile, they could be reordered which could lead to
 		 * using invalid descriptor fields when read from rxd.
+		 *
+		 * Meanwhile, to prevent the CPU from executing out of order, we
+		 * need to use a proper memory barrier to ensure the memory
+		 * ordering below.
 		 */
 		rxdp = &rx_ring[rx_id];
 		staterr = rxdp->qw1.lo.status;
 		if (!(staterr & rte_cpu_to_le_32(NGBE_RXD_STAT_DD)))
 			break;
+
+		/*
+		 * Use acquire fence to ensure that status_error which includes
+		 * DD bit is loaded before loading of other descriptor words.
+		 */
+		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
+
 		rxd = *rxdp;
 
 		/*
@@ -1454,6 +1465,12 @@ next_desc:
 		if (!(staterr & NGBE_RXD_STAT_DD))
 			break;
 
+		/*
+		 * Use acquire fence to ensure that status_error which includes
+		 * DD bit is loaded before loading of other descriptor words.
+		 */
+		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
+
 		rxd = *rxdp;
 
 		PMD_RX_LOG(DEBUG, "port_id=%u queue_id=%u rx_id=%u "
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.219804400 +0800
+++ 0032-net-ngbe-add-proper-memory-barriers-in-Rx.patch	2023-12-11 17:56:22.947652300 +0800
@@ -1 +1 @@
-From a74c5001e96e0463db0ace848a1605b98c1d8c24 Mon Sep 17 00:00:00 2001
+From 14a4c7b3e812ff3b9e4d0bd1029f018a9f253384 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a74c5001e96e0463db0ace848a1605b98c1d8c24 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +20,2 @@
- drivers/net/ngbe/ngbe_rxtx.c | 19 ++++++++++++++++++-
- 1 file changed, 18 insertions(+), 1 deletion(-)
+ drivers/net/ngbe/ngbe_rxtx.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
@@ -22 +24 @@
-index ec353a30b1..8a873b858e 100644
+index ec353a30b1..54a6f6a887 100644
@@ -25,9 +26,0 @@
-@@ -980,7 +980,7 @@ ngbe_rx_scan_hw_ring(struct ngbe_rx_queue *rxq)
- 		for (j = 0; j < LOOK_AHEAD; j++)
- 			s[j] = rte_le_to_cpu_32(rxdp[j].qw1.lo.status);
- 
--		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
-+		rte_atomic_thread_fence(rte_memory_order_acquire);
- 
- 		/* Compute how many status bits were set */
- 		for (nb_dd = 0; nb_dd < LOOK_AHEAD &&
@@ -52 +45 @@
-+		rte_atomic_thread_fence(rte_memory_order_acquire);
++		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);
@@ -65 +58 @@
-+		rte_atomic_thread_fence(rte_memory_order_acquire);
++		rte_atomic_thread_fence(__ATOMIC_ACQUIRE);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'ethdev: fix 32-bit build with GCC 13' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (31 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/ngbe: " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:10   ` patch 'net/enic: avoid extra unlock in MTU set' " Xueming Li
                     ` (87 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Ruifeng Wang; +Cc: Luca Boccassi, Ori Kam, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=73440e9fd34389f4ed218b95ac0b1d594cd84095

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 73440e9fd34389f4ed218b95ac0b1d594cd84095 Mon Sep 17 00:00:00 2001
From: Ruifeng Wang <ruifeng.wang@arm.com>
Date: Wed, 1 Nov 2023 15:15:54 +0800
Subject: [PATCH] ethdev: fix 32-bit build with GCC 13
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3d67012ab70252190fcfea12c122567a4d010228 ]

aarch32 build with gcc-13.0.1 generated following warning:

In function 'memcpy',
 inlined from 'rte_memcpy' at .../eal/arm/include/rte_memcpy_32.h:296:9,
 inlined from 'rte_flow_conv_action_conf' at .../rte_flow.c:726:20,
 inlined from 'rte_flow_conv_actions' at .../ethdev/rte_flow.c:936:10:
warning: '__builtin_memcpy' specified bound 4294967264 exceeds maximum
         object size 2147483647 [-Wstringop-overflow=]

The issue is due to possible wrapping in unsigned arithmetic.
The 'size' can be 0. 'off' is 32. When 'tmp' is equal to (unsigned)-32,
the copy length is more than half the address space. Hence the warning.

Cast variables to 64-bit to avoid wrapping.

Fixes: 063911ee1df4 ("ethdev: add flow API object converter")

Reported-by: Luca Boccassi <bluca@debian.org>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Ori Kam <orika@nvidia.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 lib/ethdev/rte_flow.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c
index 2eadb0a032..ae22755ee6 100644
--- a/lib/ethdev/rte_flow.c
+++ b/lib/ethdev/rte_flow.c
@@ -654,7 +654,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
 		if (src.rss->key_len && src.rss->key) {
 			off = RTE_ALIGN_CEIL(off, sizeof(*dst.rss->key));
 			tmp = sizeof(*src.rss->key) * src.rss->key_len;
-			if (size >= off + tmp)
+			if (size >= (uint64_t)off + (uint64_t)tmp)
 				dst.rss->key = rte_memcpy
 					((void *)((uintptr_t)dst.rss + off),
 					 src.rss->key, tmp);
@@ -663,7 +663,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
 		if (src.rss->queue_num) {
 			off = RTE_ALIGN_CEIL(off, sizeof(*dst.rss->queue));
 			tmp = sizeof(*src.rss->queue) * src.rss->queue_num;
-			if (size >= off + tmp)
+			if (size >= (uint64_t)off + (uint64_t)tmp)
 				dst.rss->queue = rte_memcpy
 					((void *)((uintptr_t)dst.rss + off),
 					 src.rss->queue, tmp);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.248016300 +0800
+++ 0033-ethdev-fix-32-bit-build-with-GCC-13.patch	2023-12-11 17:56:22.947652300 +0800
@@ -1 +1 @@
-From 3d67012ab70252190fcfea12c122567a4d010228 Mon Sep 17 00:00:00 2001
+From 73440e9fd34389f4ed218b95ac0b1d594cd84095 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3d67012ab70252190fcfea12c122567a4d010228 ]
@@ -22 +24,0 @@
-Cc: stable@dpdk.org
@@ -33 +35 @@
-index 4d6c28ee0e..20ee8430ea 100644
+index 2eadb0a032..ae22755ee6 100644
@@ -36 +38 @@
-@@ -724,7 +724,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
+@@ -654,7 +654,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
@@ -45 +47 @@
-@@ -733,7 +733,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,
+@@ -663,7 +663,7 @@ rte_flow_conv_action_conf(void *buf, const size_t size,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/enic: avoid extra unlock in MTU set' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (32 preceding siblings ...)
  2023-12-11 10:10   ` patch 'ethdev: fix 32-bit build with GCC 13' " Xueming Li
@ 2023-12-11 10:10   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/hns3: fix setting DCB capability' " Xueming Li
                     ` (86 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:10 UTC (permalink / raw)
  To: Weiguo Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=4f039a69e904d24f92922337aa0919635b08e718

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 4f039a69e904d24f92922337aa0919635b08e718 Mon Sep 17 00:00:00 2001
From: Weiguo Li <liweiguo@xencore.cn>
Date: Wed, 1 Nov 2023 15:28:09 +0800
Subject: [PATCH] net/enic: avoid extra unlock in MTU set
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e90884a65bf6d8ed0e1e5618af42cf5856a422f1 ]

The 'set_mtu_done' goto statement is being executed in a context
where the 'mtu_lock' has not been previously locked.

To avoid the extra unlocking operation, replace the goto statement
with a return statement.

Fixes: c3e09182bcd6 ("net/enic: support scatter Rx in MTU update")

Signed-off-by: Weiguo Li <liweiguo@xencore.cn>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 .mailmap                     | 2 +-
 drivers/net/enic/enic_main.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.mailmap b/.mailmap
index a1ff0137a7..b3473b08eb 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1446,7 +1446,7 @@ Waterman Cao <waterman.cao@intel.com>
 Weichun Chen <weichunx.chen@intel.com>
 Wei Dai <wei.dai@intel.com>
 Weifeng Li <liweifeng96@126.com>
-Weiguo Li <liwg06@foxmail.com>
+Weiguo Li <liweiguo@xencore.cn> <liwg06@foxmail.com>
 Wei Huang <wei.huang@intel.com>
 Wei Hu <weh@microsoft.com>
 Wei Hu (Xavier) <xavier.huwei@huawei.com>
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 19a99a82c5..a6aaa760ca 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -1639,7 +1639,7 @@ int enic_set_mtu(struct enic *enic, uint16_t new_mtu)
 	 * packet length.
 	 */
 	if (!eth_dev->data->dev_started)
-		goto set_mtu_done;
+		return rc;
 
 	/*
 	 * The device has started, re-do RQs on the fly. In the process, we
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.277400500 +0800
+++ 0034-net-enic-avoid-extra-unlock-in-MTU-set.patch	2023-12-11 17:56:22.947652300 +0800
@@ -1 +1 @@
-From e90884a65bf6d8ed0e1e5618af42cf5856a422f1 Mon Sep 17 00:00:00 2001
+From 4f039a69e904d24f92922337aa0919635b08e718 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e90884a65bf6d8ed0e1e5618af42cf5856a422f1 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 1e6d750979..c384d97a1a 100644
+index a1ff0137a7..b3473b08eb 100644
@@ -26 +28 @@
-@@ -1502,7 +1502,7 @@ Waterman Cao <waterman.cao@intel.com>
+@@ -1446,7 +1446,7 @@ Waterman Cao <waterman.cao@intel.com>

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix setting DCB capability' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (33 preceding siblings ...)
  2023-12-11 10:10   ` patch 'net/enic: avoid extra unlock in MTU set' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/hns3: fix LRO offload to report' " Xueming Li
                     ` (85 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Huisong Li; +Cc: Jie Hai, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=518bc133278f9c88e81f5be63e293612a611976e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 518bc133278f9c88e81f5be63e293612a611976e Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Tue, 31 Oct 2023 20:23:54 +0800
Subject: [PATCH] net/hns3: fix setting DCB capability
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit ac61c444e647298dded80a2ab52966a2dbe22b68 ]

The "hw->capability" is set after querying firmware and version.
But the DCB capability of PF is set in other place.
So this patch moves setting DCB capability to the place where
all capabilities are set.

Fixes: ab2e2e344163 ("net/hns3: get device capability in primary process")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_cmd.c    | 25 +++++++++++++++++++++++++
 drivers/net/hns3/hns3_ethdev.c | 13 -------------
 2 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/drivers/net/hns3/hns3_cmd.c b/drivers/net/hns3/hns3_cmd.c
index bdfc85f934..8f5c373acf 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -519,6 +519,28 @@ hns3_build_api_caps(void)
 	return rte_cpu_to_le_32(api_caps);
 }
 
+static void
+hns3_set_dcb_capability(struct hns3_hw *hw)
+{
+	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
+	struct rte_pci_device *pci_dev;
+	struct rte_eth_dev *eth_dev;
+	uint16_t device_id;
+
+	if (hns->is_vf)
+		return;
+
+	eth_dev = &rte_eth_devices[hw->data->port_id];
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
+	device_id = pci_dev->id.device_id;
+
+	if (device_id == HNS3_DEV_ID_25GE_RDMA ||
+	    device_id == HNS3_DEV_ID_50GE_RDMA ||
+	    device_id == HNS3_DEV_ID_100G_RDMA_MACSEC ||
+	    device_id == HNS3_DEV_ID_200G_RDMA)
+		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_DCB_B, 1);
+}
+
 static int
 hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
 {
@@ -536,6 +558,9 @@ hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
 		return ret;
 
 	hw->fw_version = rte_le_to_cpu_32(resp->firmware);
+
+	hns3_set_dcb_capability(hw);
+
 	/*
 	 * Make sure mask the capability before parse capability because it
 	 * may overwrite resp's data.
diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index af66bf062e..03ddc14eae 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -2723,22 +2723,9 @@ static int
 hns3_get_capability(struct hns3_hw *hw)
 {
 	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
-	struct rte_pci_device *pci_dev;
 	struct hns3_pf *pf = &hns->pf;
-	struct rte_eth_dev *eth_dev;
-	uint16_t device_id;
 	int ret;
 
-	eth_dev = &rte_eth_devices[hw->data->port_id];
-	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
-	device_id = pci_dev->id.device_id;
-
-	if (device_id == HNS3_DEV_ID_25GE_RDMA ||
-	    device_id == HNS3_DEV_ID_50GE_RDMA ||
-	    device_id == HNS3_DEV_ID_100G_RDMA_MACSEC ||
-	    device_id == HNS3_DEV_ID_200G_RDMA)
-		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_DCB_B, 1);
-
 	ret = hns3_get_pci_revision_id(hw, &hw->revision);
 	if (ret)
 		return ret;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.304259400 +0800
+++ 0035-net-hns3-fix-setting-DCB-capability.patch	2023-12-11 17:56:22.957652300 +0800
@@ -1 +1 @@
-From ac61c444e647298dded80a2ab52966a2dbe22b68 Mon Sep 17 00:00:00 2001
+From 518bc133278f9c88e81f5be63e293612a611976e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ac61c444e647298dded80a2ab52966a2dbe22b68 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index ca1d3f1b8c..62c55f347f 100644
+index bdfc85f934..8f5c373acf 100644
@@ -25 +27 @@
-@@ -525,6 +525,28 @@ hns3_build_api_caps(void)
+@@ -519,6 +519,28 @@ hns3_build_api_caps(void)
@@ -54 +56 @@
-@@ -542,6 +564,9 @@ hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
+@@ -536,6 +558,9 @@ hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
@@ -65 +67 @@
-index 0feea52542..472737e8a8 100644
+index af66bf062e..03ddc14eae 100644
@@ -68 +70 @@
-@@ -2719,22 +2719,9 @@ static int
+@@ -2723,22 +2723,9 @@ static int

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix LRO offload to report' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (34 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/hns3: fix setting DCB capability' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/hns3: fix some return values' " Xueming Li
                     ` (84 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Huisong Li; +Cc: Jie Hai, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=36f408b7d8be653b1c529b71f8d7651dbc6f4f68

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 36f408b7d8be653b1c529b71f8d7651dbc6f4f68 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Tue, 31 Oct 2023 20:23:55 +0800
Subject: [PATCH] net/hns3: fix LRO offload to report
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a4b2c6815abd3e39daca2e2c93334b813e6a0be4 ]

Some network engines, like part of HIP09, may not support LRO
offload, but this offload capability is also reported to user.
So this patch determines whether driver reports this capability
based on the capabilities from firmware.

In addition, some network engines, like HIP08, always support LRO
offload and their firmware don't report this capability. So this
patch has to move getting revision ID codes to earlier stage and set
default capabilities for these network engines based on revision ID.

Fixes: ab2e2e344163 ("net/hns3: get device capability in primary process")
Fixes: f5ed7d99cf45 ("net/hns3: extract common function to obtain revision ID")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_cmd.c       | 17 ++++++++++++++++-
 drivers/net/hns3/hns3_cmd.h       |  1 +
 drivers/net/hns3/hns3_common.c    |  5 +++--
 drivers/net/hns3/hns3_dump.c      |  1 +
 drivers/net/hns3/hns3_ethdev.c    |  8 ++++----
 drivers/net/hns3/hns3_ethdev.h    |  1 +
 drivers/net/hns3/hns3_ethdev_vf.c |  8 ++++----
 drivers/net/hns3/hns3_rxtx.c      |  3 +++
 8 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/drivers/net/hns3/hns3_cmd.c b/drivers/net/hns3/hns3_cmd.c
index 8f5c373acf..1dd4b7a8fc 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -507,6 +507,8 @@ hns3_parse_capability(struct hns3_hw *hw,
 		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_RAS_IMP_B, 1);
 	if (hns3_get_bit(caps, HNS3_CAPS_TM_B))
 		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_TM_B, 1);
+	if (hns3_get_bit(caps, HNS3_CAPS_GRO_B))
+		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_GRO_B, 1);
 }
 
 static uint32_t
@@ -541,6 +543,19 @@ hns3_set_dcb_capability(struct hns3_hw *hw)
 		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_DCB_B, 1);
 }
 
+static void
+hns3_set_default_capability(struct hns3_hw *hw)
+{
+	hns3_set_dcb_capability(hw);
+
+	/*
+	 * The firmware of the network engines with HIP08 do not report some
+	 * capabilities, like GRO. Set default capabilities for it.
+	 */
+	if (hw->revision < PCI_REVISION_ID_HIP09_A)
+		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_GRO_B, 1);
+}
+
 static int
 hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
 {
@@ -559,7 +574,7 @@ hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
 
 	hw->fw_version = rte_le_to_cpu_32(resp->firmware);
 
-	hns3_set_dcb_capability(hw);
+	hns3_set_default_capability(hw);
 
 	/*
 	 * Make sure mask the capability before parse capability because it
diff --git a/drivers/net/hns3/hns3_cmd.h b/drivers/net/hns3/hns3_cmd.h
index eb394c9dec..0a4d59bd9b 100644
--- a/drivers/net/hns3/hns3_cmd.h
+++ b/drivers/net/hns3/hns3_cmd.h
@@ -322,6 +322,7 @@ enum HNS3_CAPS_BITS {
 	HNS3_CAPS_RAS_IMP_B,
 	HNS3_CAPS_RXD_ADV_LAYOUT_B = 15,
 	HNS3_CAPS_TM_B = 19,
+	HNS3_CAPS_GRO_B = 20,
 };
 
 /* Capabilities of VF dependent on the PF */
diff --git a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c
index 3dce7a9a31..5d9df03733 100644
--- a/drivers/net/hns3/hns3_common.c
+++ b/drivers/net/hns3/hns3_common.c
@@ -70,8 +70,7 @@ hns3_dev_infos_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *info)
 				 RTE_ETH_RX_OFFLOAD_SCATTER |
 				 RTE_ETH_RX_OFFLOAD_VLAN_STRIP |
 				 RTE_ETH_RX_OFFLOAD_VLAN_FILTER |
-				 RTE_ETH_RX_OFFLOAD_RSS_HASH |
-				 RTE_ETH_RX_OFFLOAD_TCP_LRO);
+				 RTE_ETH_RX_OFFLOAD_RSS_HASH);
 	info->tx_offload_capa = (RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM |
 				 RTE_ETH_TX_OFFLOAD_IPV4_CKSUM |
 				 RTE_ETH_TX_OFFLOAD_TCP_CKSUM |
@@ -99,6 +98,8 @@ hns3_dev_infos_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *info)
 
 	if (hns3_dev_get_support(hw, PTP))
 		info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TIMESTAMP;
+	if (hns3_dev_get_support(hw, GRO))
+		info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TCP_LRO;
 
 	info->rx_desc_lim = (struct rte_eth_desc_lim) {
 		.nb_max = HNS3_MAX_RING_DESC,
diff --git a/drivers/net/hns3/hns3_dump.c b/drivers/net/hns3/hns3_dump.c
index e3dbc5ea27..bac4427227 100644
--- a/drivers/net/hns3/hns3_dump.c
+++ b/drivers/net/hns3/hns3_dump.c
@@ -101,6 +101,7 @@ hns3_get_dev_feature_capability(FILE *file, struct hns3_hw *hw)
 		{HNS3_DEV_SUPPORT_RAS_IMP_B, "RAS IMP"},
 		{HNS3_DEV_SUPPORT_TM_B, "TM"},
 		{HNS3_DEV_SUPPORT_VF_VLAN_FLT_MOD_B, "VF VLAN FILTER MOD"},
+		{HNS3_DEV_SUPPORT_GRO_B, "GRO"}
 	};
 	uint32_t i;
 
diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 03ddc14eae..f1131f4ba8 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -2726,10 +2726,6 @@ hns3_get_capability(struct hns3_hw *hw)
 	struct hns3_pf *pf = &hns->pf;
 	int ret;
 
-	ret = hns3_get_pci_revision_id(hw, &hw->revision);
-	if (ret)
-		return ret;
-
 	ret = hns3_query_mac_stats_reg_num(hw);
 	if (ret)
 		return ret;
@@ -4592,6 +4588,10 @@ hns3_init_pf(struct rte_eth_dev *eth_dev)
 	/* Get hardware io base address from pcie BAR2 IO space */
 	hw->io_base = pci_dev->mem_resource[2].addr;
 
+	ret = hns3_get_pci_revision_id(hw, &hw->revision);
+	if (ret)
+		return ret;
+
 	/* Firmware command queue initialize */
 	ret = hns3_cmd_init_queue(hw);
 	if (ret) {
diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h
index f86512bd35..a3dd4b45c2 100644
--- a/drivers/net/hns3/hns3_ethdev.h
+++ b/drivers/net/hns3/hns3_ethdev.h
@@ -884,6 +884,7 @@ enum hns3_dev_cap {
 	HNS3_DEV_SUPPORT_RAS_IMP_B,
 	HNS3_DEV_SUPPORT_TM_B,
 	HNS3_DEV_SUPPORT_VF_VLAN_FLT_MOD_B,
+	HNS3_DEV_SUPPORT_GRO_B,
 };
 
 #define hns3_dev_get_support(hw, _name) \
diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index 3874148815..3cbf2ed2a7 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -762,10 +762,6 @@ hns3vf_get_capability(struct hns3_hw *hw)
 {
 	int ret;
 
-	ret = hns3_get_pci_revision_id(hw, &hw->revision);
-	if (ret)
-		return ret;
-
 	if (hw->revision < PCI_REVISION_ID_HIP09_A) {
 		hns3_set_default_dev_specifications(hw);
 		hw->intr.mapping_mode = HNS3_INTR_MAPPING_VEC_RSV_ONE;
@@ -1418,6 +1414,10 @@ hns3vf_init_vf(struct rte_eth_dev *eth_dev)
 	/* Get hardware io base address from pcie BAR2 IO space */
 	hw->io_base = pci_dev->mem_resource[2].addr;
 
+	ret = hns3_get_pci_revision_id(hw, &hw->revision);
+	if (ret)
+		return ret;
+
 	/* Firmware command queue initialize */
 	ret = hns3_cmd_init_queue(hw);
 	if (ret) {
diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 5db0d3418c..9d473dbc22 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -3124,6 +3124,9 @@ hns3_config_gro(struct hns3_hw *hw, bool en)
 	struct hns3_cmd_desc desc;
 	int ret;
 
+	if (!hns3_dev_get_support(hw, GRO))
+		return 0;
+
 	hns3_cmd_setup_basic_desc(&desc, HNS3_OPC_GRO_GENERIC_CONFIG, false);
 	req = (struct hns3_cfg_gro_status_cmd *)desc.data;
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.330617800 +0800
+++ 0036-net-hns3-fix-LRO-offload-to-report.patch	2023-12-11 17:56:22.967652300 +0800
@@ -1 +1 @@
-From a4b2c6815abd3e39daca2e2c93334b813e6a0be4 Mon Sep 17 00:00:00 2001
+From 36f408b7d8be653b1c529b71f8d7651dbc6f4f68 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a4b2c6815abd3e39daca2e2c93334b813e6a0be4 ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
- drivers/net/hns3/hns3_dump.c      |  3 ++-
+ drivers/net/hns3/hns3_dump.c      |  1 +
@@ -31 +33 @@
- 8 files changed, 34 insertions(+), 12 deletions(-)
+ 8 files changed, 33 insertions(+), 11 deletions(-)
@@ -34 +36 @@
-index 62c55f347f..a5c4c11dc8 100644
+index 8f5c373acf..1dd4b7a8fc 100644
@@ -37 +39,3 @@
-@@ -513,6 +513,8 @@ hns3_parse_capability(struct hns3_hw *hw,
+@@ -507,6 +507,8 @@ hns3_parse_capability(struct hns3_hw *hw,
+ 		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_RAS_IMP_B, 1);
+ 	if (hns3_get_bit(caps, HNS3_CAPS_TM_B))
@@ -39,2 +42,0 @@
- 	if (hns3_get_bit(caps, HNS3_CAPS_FC_AUTO_B))
- 		hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_FC_AUTO_B, 1);
@@ -46 +48 @@
-@@ -547,6 +549,19 @@ hns3_set_dcb_capability(struct hns3_hw *hw)
+@@ -541,6 +543,19 @@ hns3_set_dcb_capability(struct hns3_hw *hw)
@@ -66 +68 @@
-@@ -565,7 +580,7 @@ hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
+@@ -559,7 +574,7 @@ hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
@@ -76 +78 @@
-index 3f2bb4fd29..79a8c1edad 100644
+index eb394c9dec..0a4d59bd9b 100644
@@ -79 +81 @@
-@@ -323,6 +323,7 @@ enum HNS3_CAPS_BITS {
+@@ -322,6 +322,7 @@ enum HNS3_CAPS_BITS {
@@ -84 +85,0 @@
- 	HNS3_CAPS_FC_AUTO_B = 30,
@@ -86,0 +88 @@
+ /* Capabilities of VF dependent on the PF */
@@ -88 +90 @@
-index c4d47f43fe..9327adbdc1 100644
+index 3dce7a9a31..5d9df03733 100644
@@ -111 +113 @@
-index 5c21ff0a33..cb369be5be 100644
+index e3dbc5ea27..bac4427227 100644
@@ -114 +116 @@
-@@ -104,7 +104,8 @@ hns3_get_dev_feature_capability(FILE *file, struct hns3_hw *hw)
+@@ -101,6 +101,7 @@ hns3_get_dev_feature_capability(FILE *file, struct hns3_hw *hw)
@@ -118,2 +119,0 @@
--		{HNS3_DEV_SUPPORT_FC_AUTO_B, "FC AUTO"}
-+		{HNS3_DEV_SUPPORT_FC_AUTO_B, "FC AUTO"},
@@ -125 +125 @@
-index 472737e8a8..941d047bf1 100644
+index 03ddc14eae..f1131f4ba8 100644
@@ -128 +128 @@
-@@ -2722,10 +2722,6 @@ hns3_get_capability(struct hns3_hw *hw)
+@@ -2726,10 +2726,6 @@ hns3_get_capability(struct hns3_hw *hw)
@@ -139 +139 @@
-@@ -4582,6 +4578,10 @@ hns3_init_pf(struct rte_eth_dev *eth_dev)
+@@ -4592,6 +4588,10 @@ hns3_init_pf(struct rte_eth_dev *eth_dev)
@@ -151 +151 @@
-index 0e8d043704..668f141e32 100644
+index f86512bd35..a3dd4b45c2 100644
@@ -154 +154,2 @@
-@@ -888,6 +888,7 @@ enum hns3_dev_cap {
+@@ -884,6 +884,7 @@ enum hns3_dev_cap {
+ 	HNS3_DEV_SUPPORT_RAS_IMP_B,
@@ -157 +157,0 @@
- 	HNS3_DEV_SUPPORT_FC_AUTO_B,
@@ -163 +163 @@
-index 5f3422d14e..0a227e6e45 100644
+index 3874148815..3cbf2ed2a7 100644
@@ -166 +166 @@
-@@ -681,10 +681,6 @@ hns3vf_get_capability(struct hns3_hw *hw)
+@@ -762,10 +762,6 @@ hns3vf_get_capability(struct hns3_hw *hw)
@@ -177 +177 @@
-@@ -1337,6 +1333,10 @@ hns3vf_init_vf(struct rte_eth_dev *eth_dev)
+@@ -1418,6 +1414,10 @@ hns3vf_init_vf(struct rte_eth_dev *eth_dev)
@@ -189 +189 @@
-index f28ca040be..09b7e90c70 100644
+index 5db0d3418c..9d473dbc22 100644
@@ -192 +192 @@
-@@ -3125,6 +3125,9 @@ hns3_config_gro(struct hns3_hw *hw, bool en)
+@@ -3124,6 +3124,9 @@ hns3_config_gro(struct hns3_hw *hw, bool en)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix some return values' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (35 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/hns3: fix LRO offload to report' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/hns3: fix some error logs' " Xueming Li
                     ` (83 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=84b217ed2cf446539ff591af5c52eec75e3bdf84

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 84b217ed2cf446539ff591af5c52eec75e3bdf84 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Tue, 31 Oct 2023 20:23:56 +0800
Subject: [PATCH] net/hns3: fix some return values
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 08159599978f7f7eb6c4aaed7c290e33b8bc3d64 ]

1. Fix the return value of hns3_get_imissed_stats_num as 'uint16_t'.
2. Add some error check for return value.

Fixes: fcba820d9b9e ("net/hns3: support flow director")

Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_ethdev_vf.c |  5 ++++-
 drivers/net/hns3/hns3_fdir.c      |  2 +-
 drivers/net/hns3/hns3_stats.c     | 15 ++++++++++-----
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index 3cbf2ed2a7..64f4dd148c 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -2162,8 +2162,11 @@ hns3vf_reinit_dev(struct hns3_adapter *hns)
 		 */
 		if (pci_dev->kdrv == RTE_PCI_KDRV_IGB_UIO ||
 		    pci_dev->kdrv == RTE_PCI_KDRV_UIO_GENERIC) {
-			if (hns3vf_enable_msix(pci_dev, true))
+			ret = hns3vf_enable_msix(pci_dev, true);
+			if (ret != 0) {
 				hns3_err(hw, "Failed to enable msix");
+				return ret;
+			}
 		}
 
 		rte_intr_enable(pci_dev->intr_handle);
diff --git a/drivers/net/hns3/hns3_fdir.c b/drivers/net/hns3/hns3_fdir.c
index 48a91fb517..a3e79619ec 100644
--- a/drivers/net/hns3/hns3_fdir.c
+++ b/drivers/net/hns3/hns3_fdir.c
@@ -974,7 +974,7 @@ int hns3_fdir_filter_program(struct hns3_adapter *hns,
 				 rule->key_conf.spec.src_port,
 				 rule->key_conf.spec.dst_port, ret);
 		else
-			hns3_remove_fdir_filter(hw, fdir_info, &rule->key_conf);
+			ret = hns3_remove_fdir_filter(hw, fdir_info, &rule->key_conf);
 
 		return ret;
 	}
diff --git a/drivers/net/hns3/hns3_stats.c b/drivers/net/hns3/hns3_stats.c
index c2e692a2c5..9a1e8935e5 100644
--- a/drivers/net/hns3/hns3_stats.c
+++ b/drivers/net/hns3/hns3_stats.c
@@ -771,7 +771,7 @@ hns3_mac_stats_reset(struct hns3_hw *hw)
 	return 0;
 }
 
-static int
+static uint16_t
 hns3_get_imissed_stats_num(struct hns3_adapter *hns)
 {
 #define NO_IMISSED_STATS_NUM   0
@@ -993,7 +993,7 @@ hns3_imissed_stats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
 	struct hns3_adapter *hns = dev->data->dev_private;
 	struct hns3_hw *hw = &hns->hw;
 	struct hns3_rx_missed_stats *imissed_stats = &hw->imissed_stats;
-	int imissed_stats_num;
+	uint16_t imissed_stats_num;
 	int cnt = *count;
 	char *addr;
 	uint16_t i;
@@ -1170,7 +1170,7 @@ hns3_imissed_stats_name_get(struct rte_eth_dev *dev,
 {
 	struct hns3_adapter *hns = dev->data->dev_private;
 	uint32_t cnt = *count;
-	int imissed_stats_num;
+	uint16_t imissed_stats_num;
 	uint16_t i;
 
 	imissed_stats_num = hns3_get_imissed_stats_num(hns);
@@ -1539,8 +1539,13 @@ hns3_stats_init(struct hns3_hw *hw)
 		return ret;
 	}
 
-	if (!hns->is_vf)
-		hns3_mac_stats_reset(hw);
+	if (!hns->is_vf) {
+		ret = hns3_mac_stats_reset(hw);
+		if (ret) {
+			hns3_err(hw, "reset mac stats failed, ret = %d", ret);
+			return ret;
+		}
+	}
 
 	return hns3_tqp_stats_init(hw);
 }
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.368063600 +0800
+++ 0037-net-hns3-fix-some-return-values.patch	2023-12-11 17:56:22.977652300 +0800
@@ -1 +1 @@
-From 08159599978f7f7eb6c4aaed7c290e33b8bc3d64 Mon Sep 17 00:00:00 2001
+From 84b217ed2cf446539ff591af5c52eec75e3bdf84 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 08159599978f7f7eb6c4aaed7c290e33b8bc3d64 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 0a227e6e45..156fb905f9 100644
+index 3cbf2ed2a7..64f4dd148c 100644
@@ -23 +25 @@
-@@ -2081,8 +2081,11 @@ hns3vf_reinit_dev(struct hns3_adapter *hns)
+@@ -2162,8 +2162,11 @@ hns3vf_reinit_dev(struct hns3_adapter *hns)
@@ -37 +39 @@
-index c80fa59e63..d100e58d10 100644
+index 48a91fb517..a3e79619ec 100644
@@ -40 +42 @@
-@@ -978,7 +978,7 @@ int hns3_fdir_filter_program(struct hns3_adapter *hns,
+@@ -974,7 +974,7 @@ int hns3_fdir_filter_program(struct hns3_adapter *hns,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix some error logs' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (36 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/hns3: fix some return values' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/hns3: keep set/get algo key functions local' " Xueming Li
                     ` (82 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=555126492becbea6c7d53883cef10015c8c2c98a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 555126492becbea6c7d53883cef10015c8c2c98a Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Tue, 31 Oct 2023 20:23:57 +0800
Subject: [PATCH] net/hns3: fix some error logs
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit fdafdca875eafe36950542cbfbdb21b01b371081 ]

This patch fixes some error log.

Fixes: 62e3ccc2b94c ("net/hns3: support flow control")

Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_dcb.c  | 2 +-
 drivers/net/hns3/hns3_flow.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_dcb.c b/drivers/net/hns3/hns3_dcb.c
index 07b8c46a81..2831d3dc62 100644
--- a/drivers/net/hns3/hns3_dcb.c
+++ b/drivers/net/hns3/hns3_dcb.c
@@ -1082,7 +1082,7 @@ hns3_dcb_map_cfg(struct hns3_hw *hw)
 
 	ret = hns3_pg_to_pri_map(hw);
 	if (ret) {
-		hns3_err(hw, "pri_to_pg mapping fail: %d", ret);
+		hns3_err(hw, "pg_to_pri mapping fail: %d", ret);
 		return ret;
 	}
 
diff --git a/drivers/net/hns3/hns3_flow.c b/drivers/net/hns3/hns3_flow.c
index d5c9c22633..da17fa6e69 100644
--- a/drivers/net/hns3/hns3_flow.c
+++ b/drivers/net/hns3/hns3_flow.c
@@ -927,7 +927,7 @@ hns3_parse_sctp(const struct rte_flow_item *item, struct hns3_fdir_rule *rule,
 			return rte_flow_error_set(error, EINVAL,
 						  RTE_FLOW_ERROR_TYPE_ITEM_MASK,
 						  item,
-						  "Only support src & dst port in SCTP");
+						  "Only support src & dst port & v-tag in SCTP");
 		if (sctp_mask->hdr.src_port) {
 			hns3_set_bit(rule->input_set, INNER_SRC_PORT, 1);
 			rule->key_conf.mask.src_port =
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.399635500 +0800
+++ 0038-net-hns3-fix-some-error-logs.patch	2023-12-11 17:56:22.977652300 +0800
@@ -1 +1 @@
-From fdafdca875eafe36950542cbfbdb21b01b371081 Mon Sep 17 00:00:00 2001
+From 555126492becbea6c7d53883cef10015c8c2c98a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit fdafdca875eafe36950542cbfbdb21b01b371081 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -31 +33 @@
-index a5a7e452d8..7fbe65313c 100644
+index d5c9c22633..da17fa6e69 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: keep set/get algo key functions local' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (37 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/hns3: fix some error logs' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/hns3: fix uninitialized hash algo value' " Xueming Li
                     ` (81 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=085f8342f53b3c23332cd2ede966a8bef6fd054a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 085f8342f53b3c23332cd2ede966a8bef6fd054a Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Tue, 31 Oct 2023 20:23:58 +0800
Subject: [PATCH] net/hns3: keep set/get algo key functions local
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 4d996f3b2a1dcce2fff59a0a9490c04480e4c805 ]

The functions "hns3_rss_set_algo_key()" and "hns3_rss_get_algo_key()"
are the inner interfaces to set hardware. Driver already had an API,
"hns3_update_rss_algo_key()", to export and to update RSS algo or key.
So above two innter interface don't export.

Fixes: 7da415d27d88 ("net/hns3: use hardware config to report hash key")

Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_rss.c | 4 ++--
 drivers/net/hns3/hns3_rss.h | 4 ----
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/net/hns3/hns3_rss.c b/drivers/net/hns3/hns3_rss.c
index 6126512bd7..9bb8426256 100644
--- a/drivers/net/hns3/hns3_rss.c
+++ b/drivers/net/hns3/hns3_rss.c
@@ -283,7 +283,7 @@ static const struct {
  * rss_generic_config command function, opcode:0x0D01.
  * Used to set algorithm and hash key of RSS.
  */
-int
+static int
 hns3_rss_set_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
 		      const uint8_t *key, uint8_t key_len)
 {
@@ -324,7 +324,7 @@ hns3_rss_set_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
 	return 0;
 }
 
-int
+static int
 hns3_rss_get_algo_key(struct hns3_hw *hw,  uint8_t *hash_algo,
 		      uint8_t *key, uint8_t key_len)
 {
diff --git a/drivers/net/hns3/hns3_rss.h b/drivers/net/hns3/hns3_rss.h
index 415430a399..9d182a8025 100644
--- a/drivers/net/hns3/hns3_rss.h
+++ b/drivers/net/hns3/hns3_rss.h
@@ -190,10 +190,6 @@ bool hns3_check_rss_types_valid(struct hns3_hw *hw, uint64_t types);
 int hns3_set_rss_tuple_by_rss_hf(struct hns3_hw *hw, uint64_t rss_hf);
 int hns3_set_rss_tuple_field(struct hns3_hw *hw, uint64_t tuple_fields);
 int hns3_get_rss_tuple_field(struct hns3_hw *hw, uint64_t *tuple_fields);
-int hns3_rss_set_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
-			  const uint8_t *key, uint8_t key_len);
-int hns3_rss_get_algo_key(struct hns3_hw *hw,  uint8_t *hash_algo,
-			  uint8_t *key, uint8_t key_len);
 uint64_t hns3_rss_calc_tuple_filed(uint64_t rss_hf);
 int hns3_update_rss_algo_key(struct hns3_hw *hw, uint8_t hash_algo,
 			     uint8_t *key, uint8_t key_len);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.428296700 +0800
+++ 0039-net-hns3-keep-set-get-algo-key-functions-local.patch	2023-12-11 17:56:22.977652300 +0800
@@ -1 +1 @@
-From 4d996f3b2a1dcce2fff59a0a9490c04480e4c805 Mon Sep 17 00:00:00 2001
+From 085f8342f53b3c23332cd2ede966a8bef6fd054a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4d996f3b2a1dcce2fff59a0a9490c04480e4c805 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix uninitialized hash algo value' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (38 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/hns3: keep set/get algo key functions local' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/tap: fix L4 checksum offloading' " Xueming Li
                     ` (80 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Jie Hai; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=de2edad82b14c575eea8868b468e175db93209f7

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From de2edad82b14c575eea8868b468e175db93209f7 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Tue, 31 Oct 2023 20:23:59 +0800
Subject: [PATCH] net/hns3: fix uninitialized hash algo value
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 177cf5c93f9ac86d8a2b817115ef1e979023414c ]

This patch initializes "hash_algo" as zero to avoid using
it uninitialized.

Fixes: e3069658da9f ("net/hns3: reimplement hash flow function")

Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_rss.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_rss.c b/drivers/net/hns3/hns3_rss.c
index 9bb8426256..eeeca71a5c 100644
--- a/drivers/net/hns3/hns3_rss.c
+++ b/drivers/net/hns3/hns3_rss.c
@@ -771,7 +771,7 @@ hns3_dev_rss_hash_conf_get(struct rte_eth_dev *dev,
 {
 	struct hns3_adapter *hns = dev->data->dev_private;
 	struct hns3_hw *hw = &hns->hw;
-	uint8_t hash_algo;
+	uint8_t hash_algo = 0;
 	int ret;
 
 	rte_spinlock_lock(&hw->lock);
@@ -993,7 +993,7 @@ hns3_update_rss_algo_key(struct hns3_hw *hw, uint8_t hash_func,
 {
 	uint8_t rss_key[HNS3_RSS_KEY_SIZE_MAX] = {0};
 	bool modify_key, modify_algo;
-	uint8_t hash_algo;
+	uint8_t hash_algo = 0;
 	int ret;
 
 	modify_key = (key != NULL && key_len > 0);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.455390400 +0800
+++ 0040-net-hns3-fix-uninitialized-hash-algo-value.patch	2023-12-11 17:56:22.977652300 +0800
@@ -1 +1 @@
-From 177cf5c93f9ac86d8a2b817115ef1e979023414c Mon Sep 17 00:00:00 2001
+From de2edad82b14c575eea8868b468e175db93209f7 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 177cf5c93f9ac86d8a2b817115ef1e979023414c ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/tap: fix L4 checksum offloading' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (39 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/hns3: fix uninitialized hash algo value' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/tap: fix IPv4 " Xueming Li
                     ` (79 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: David Marchand; +Cc: Ales Musil, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=db03b8a934a722f4804405e0ee41bc9da32da4bf

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From db03b8a934a722f4804405e0ee41bc9da32da4bf Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 24 Aug 2023 09:18:20 +0200
Subject: [PATCH] net/tap: fix L4 checksum offloading
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 0bbafe48ae0a35e306b1cd91b0e7726ae4451f9a ]

The L4 checksum offloading API does not require l4_len to be set.
Make the driver discover the L4 headers size by itself.

Fixes: 6546e76056e3 ("net/tap: calculate checksums of multi segs packets")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Tested-by: Ales Musil <amusil@redhat.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 .mailmap                      |  1 +
 drivers/net/tap/rte_eth_tap.c | 13 +++++++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/.mailmap b/.mailmap
index b3473b08eb..7631227cd3 100644
--- a/.mailmap
+++ b/.mailmap
@@ -38,6 +38,7 @@ Aleksandr Loktionov <aleksandr.loktionov@intel.com>
 Aleksandr Miloshenko <a.miloshenko@f5.com>
 Aleksey Baulin <aleksey.baulin@gmail.com>
 Aleksey Katargin <gureedo@gmail.com>
+Ales Musil <amusil@redhat.com>
 Alexander Bechikov <asb.tyum@gmail.com>
 Alexander Belyakov <abelyako@gmail.com>
 Alexander Chernavin <achernavin@netgate.com>
diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index ef8eb610f6..b65a23aed3 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -645,13 +645,22 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
 		    ((mbuf->ol_flags & (RTE_MBUF_F_TX_IP_CKSUM | RTE_MBUF_F_TX_IPV4) ||
 		      (mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) == RTE_MBUF_F_TX_UDP_CKSUM ||
 		      (mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) == RTE_MBUF_F_TX_TCP_CKSUM))) {
+			unsigned int l4_len = 0;
+
 			is_cksum = 1;
 
+			if ((mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) ==
+					RTE_MBUF_F_TX_UDP_CKSUM)
+				l4_len = sizeof(struct rte_udp_hdr);
+			else if ((mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) ==
+					RTE_MBUF_F_TX_TCP_CKSUM)
+				l4_len = sizeof(struct rte_tcp_hdr);
+
 			/* Support only packets with at least layer 4
 			 * header included in the first segment
 			 */
 			seg_len = rte_pktmbuf_data_len(mbuf);
-			l234_hlen = mbuf->l2_len + mbuf->l3_len + mbuf->l4_len;
+			l234_hlen = mbuf->l2_len + mbuf->l3_len + l4_len;
 			if (seg_len < l234_hlen)
 				return -1;
 
@@ -661,7 +670,7 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
 			rte_memcpy(m_copy, rte_pktmbuf_mtod(mbuf, void *),
 					l234_hlen);
 			tap_tx_l3_cksum(m_copy, mbuf->ol_flags,
-				       mbuf->l2_len, mbuf->l3_len, mbuf->l4_len,
+				       mbuf->l2_len, mbuf->l3_len, l4_len,
 				       &l4_cksum, &l4_phdr_cksum,
 				       &l4_raw_cksum);
 			iovecs[k].iov_base = m_copy;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.480046100 +0800
+++ 0041-net-tap-fix-L4-checksum-offloading.patch	2023-12-11 17:56:22.977652300 +0800
@@ -1 +1 @@
-From 0bbafe48ae0a35e306b1cd91b0e7726ae4451f9a Mon Sep 17 00:00:00 2001
+From db03b8a934a722f4804405e0ee41bc9da32da4bf Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 0bbafe48ae0a35e306b1cd91b0e7726ae4451f9a ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index c384d97a1a..c0ab6d090b 100644
+index b3473b08eb..7631227cd3 100644
@@ -24 +26 @@
-@@ -41,6 +41,7 @@ Aleksandr Loktionov <aleksandr.loktionov@intel.com>
+@@ -38,6 +38,7 @@ Aleksandr Loktionov <aleksandr.loktionov@intel.com>
@@ -33 +35 @@
-index b25a52655f..66335d2755 100644
+index ef8eb610f6..b65a23aed3 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/tap: fix IPv4 checksum offloading' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (40 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/tap: fix L4 checksum offloading' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'app/procinfo: fix RSS info' " Xueming Li
                     ` (78 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: David Marchand; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=69d6a23bb15e18035bfe2f866da3e30124c5ca94

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 69d6a23bb15e18035bfe2f866da3e30124c5ca94 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 24 Aug 2023 09:18:21 +0200
Subject: [PATCH] net/tap: fix IPv4 checksum offloading
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3e9c82e88069b1e6e945479626b4c054edf8ba96 ]

Checking that one of RTE_MBUF_F_TX_IPV4 or RTE_MBUF_F_TX_IP_CKSUM is
present is not compliant with the offloading API which specifies that IP
checksum requires RTE_MBUF_F_TX_IP_CKSUM.
On the other hand, RTE_MBUF_F_TX_IP_CKSUM is invalid for IPv6 packets,
so we can simply check for RTE_MBUF_F_TX_IP_CKSUM and assume this is an
IPv4 packet.

Fixes: 8ae3023387e9 ("net/tap: add Rx/Tx checksum offload support")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/tap/rte_eth_tap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index b65a23aed3..2fd46c6b0b 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -559,7 +559,7 @@ tap_tx_l3_cksum(char *packet, uint64_t ol_flags, unsigned int l2_len,
 {
 	void *l3_hdr = packet + l2_len;
 
-	if (ol_flags & (RTE_MBUF_F_TX_IP_CKSUM | RTE_MBUF_F_TX_IPV4)) {
+	if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) {
 		struct rte_ipv4_hdr *iph = l3_hdr;
 		uint16_t cksum;
 
@@ -642,7 +642,7 @@ tap_write_mbufs(struct tx_queue *txq, uint16_t num_mbufs,
 
 		nb_segs = mbuf->nb_segs;
 		if (txq->csum &&
-		    ((mbuf->ol_flags & (RTE_MBUF_F_TX_IP_CKSUM | RTE_MBUF_F_TX_IPV4) ||
+		    ((mbuf->ol_flags & RTE_MBUF_F_TX_IP_CKSUM ||
 		      (mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) == RTE_MBUF_F_TX_UDP_CKSUM ||
 		      (mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) == RTE_MBUF_F_TX_TCP_CKSUM))) {
 			unsigned int l4_len = 0;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.510499300 +0800
+++ 0042-net-tap-fix-IPv4-checksum-offloading.patch	2023-12-11 17:56:22.987652300 +0800
@@ -1 +1 @@
-From 3e9c82e88069b1e6e945479626b4c054edf8ba96 Mon Sep 17 00:00:00 2001
+From 69d6a23bb15e18035bfe2f866da3e30124c5ca94 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3e9c82e88069b1e6e945479626b4c054edf8ba96 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 66335d2755..939c68db9a 100644
+index b65a23aed3..2fd46c6b0b 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/procinfo: fix RSS info' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (41 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/tap: fix IPv4 " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'app/procinfo: adjust format of " Xueming Li
                     ` (77 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Jie Hai
  Cc: Dongdong Liu, Reshma Pattan, Chengwen Feng, Huisong Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=df4470f94c7072597669e29e66d5d8c304f42cde

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From df4470f94c7072597669e29e66d5d8c304f42cde Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Thu, 2 Nov 2023 16:20:16 +0800
Subject: [PATCH] app/procinfo: fix RSS info
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 33079eccf5c1a99af722fe168d8465f602bc98b2 ]

Command show-port should show RSS info (rss_key, len and rss_hf),
However, the information is shown only when rss_conf.rss_key is not
NULL. Since no memory is allocated for rss_conf.rss_key, rss_key
will always be NULL and the rss_info will never show. This patch
fixes it.

Fixes: 8a37f37fc243 ("app/procinfo: add --show-port")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Huisong Li <lihuisong@huawei.com>
---
 app/proc-info/main.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index 50871c92a0..5f7fa64dc5 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -131,6 +131,8 @@ struct desc_param {
 static struct desc_param rx_desc_param;
 static struct desc_param tx_desc_param;
 
+#define RSS_HASH_KEY_SIZE 64
+
 /* display usage */
 static void
 proc_info_usage(const char *prgname)
@@ -821,6 +823,7 @@ show_port(void)
 		struct rte_eth_fc_conf fc_conf;
 		struct rte_ether_addr mac;
 		struct rte_eth_dev_owner owner;
+		uint8_t rss_key[RSS_HASH_KEY_SIZE];
 
 		/* Skip if port is not in mask */
 		if ((enabled_port_mask & (1ul << i)) == 0)
@@ -979,17 +982,17 @@ show_port(void)
 			printf("\n");
 		}
 
+		rss_conf.rss_key = rss_key;
+		rss_conf.rss_key_len = dev_info.hash_key_size;
 		ret = rte_eth_dev_rss_hash_conf_get(i, &rss_conf);
 		if (ret == 0) {
-			if (rss_conf.rss_key) {
-				printf("  - RSS\n");
-				printf("\t  -- RSS len %u key (hex):",
-						rss_conf.rss_key_len);
-				for (k = 0; k < rss_conf.rss_key_len; k++)
-					printf(" %x", rss_conf.rss_key[k]);
-				printf("\t  -- hf 0x%"PRIx64"\n",
-						rss_conf.rss_hf);
-			}
+			printf("  - RSS\n");
+			printf("\t  -- RSS len %u key (hex):",
+					rss_conf.rss_key_len);
+			for (k = 0; k < rss_conf.rss_key_len; k++)
+				printf(" %x", rss_conf.rss_key[k]);
+			printf("\t  -- hf 0x%"PRIx64"\n",
+					rss_conf.rss_hf);
 		}
 
 #ifdef RTE_LIB_SECURITY
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.537430600 +0800
+++ 0043-app-procinfo-fix-RSS-info.patch	2023-12-11 17:56:22.987652300 +0800
@@ -1 +1 @@
-From 33079eccf5c1a99af722fe168d8465f602bc98b2 Mon Sep 17 00:00:00 2001
+From df4470f94c7072597669e29e66d5d8c304f42cde Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 33079eccf5c1a99af722fe168d8465f602bc98b2 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index ce53bc30df..3a441ba075 100644
+index 50871c92a0..5f7fa64dc5 100644
@@ -28 +30 @@
-@@ -151,6 +151,8 @@ struct desc_param {
+@@ -131,6 +131,8 @@ struct desc_param {
@@ -37 +39 @@
-@@ -1011,6 +1013,7 @@ show_port(void)
+@@ -821,6 +823,7 @@ show_port(void)
@@ -45 +47 @@
-@@ -1169,17 +1172,17 @@ show_port(void)
+@@ -979,17 +982,17 @@ show_port(void)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/procinfo: adjust format of RSS info' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (42 preceding siblings ...)
  2023-12-11 10:11   ` patch 'app/procinfo: fix RSS info' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/nfp: fix DMA error after abnormal exit' " Xueming Li
                     ` (76 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Jie Hai; +Cc: Dongdong Liu, Reshma Pattan, Chengwen Feng, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=5b470b0567faa50a554ea514a6cdae55c0af365c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 5b470b0567faa50a554ea514a6cdae55c0af365c Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Thu, 2 Nov 2023 16:20:17 +0800
Subject: [PATCH] app/procinfo: adjust format of RSS info
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 66d4bacc39fb765051594669c33aab4f5d0f9d6c ]

This patch splits the length and value of RSS key into two parts,
removes spaces between RSS keys, and adds line breaks between RSS
key and RSS hf.

Before the adjustment, RSS info is shown as:
  - RSS
	  -- RSS len 40 key (hex): 6d 5a 56 da 25 5b e c2 41 67 \
	     25 3d 43 a3 8f b0 d0 ca 2b cb ae 7b 30 b4 77 cb 2d \
	     a3 80 30 f2 c 6a 42 b7 3b be ac 1 fa -- hf 0x0
and after:
  - RSS info
	  -- key len : 40
	  -- key (hex) : 6d5a56da255b0ec24167253d43a38fb0d0c \
		a2bcbae7b30b477cb2da38030f20c6a42b73bbeac01fa
	  -- hash function : 0x0

Fixes: 8a37f37fc243 ("app/procinfo: add --show-port")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
---
 app/proc-info/main.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index 5f7fa64dc5..9104f9e6b9 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -986,12 +986,13 @@ show_port(void)
 		rss_conf.rss_key_len = dev_info.hash_key_size;
 		ret = rte_eth_dev_rss_hash_conf_get(i, &rss_conf);
 		if (ret == 0) {
-			printf("  - RSS\n");
-			printf("\t  -- RSS len %u key (hex):",
+			printf("  - RSS info\n");
+			printf("\t  -- key len : %u\n",
 					rss_conf.rss_key_len);
+			printf("\t  -- key (hex) : ");
 			for (k = 0; k < rss_conf.rss_key_len; k++)
-				printf(" %x", rss_conf.rss_key[k]);
-			printf("\t  -- hf 0x%"PRIx64"\n",
+				printf("%02x", rss_conf.rss_key[k]);
+			printf("\n\t  -- hash function : 0x%"PRIx64"\n",
 					rss_conf.rss_hf);
 		}
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.567715700 +0800
+++ 0044-app-procinfo-adjust-format-of-RSS-info.patch	2023-12-11 17:56:22.987652300 +0800
@@ -1 +1 @@
-From 66d4bacc39fb765051594669c33aab4f5d0f9d6c Mon Sep 17 00:00:00 2001
+From 5b470b0567faa50a554ea514a6cdae55c0af365c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 66d4bacc39fb765051594669c33aab4f5d0f9d6c ]
@@ -23 +25,0 @@
-Cc: stable@dpdk.org
@@ -34 +36 @@
-index 3a441ba075..4c577fa417 100644
+index 5f7fa64dc5..9104f9e6b9 100644
@@ -37 +39 @@
-@@ -1176,12 +1176,13 @@ show_port(void)
+@@ -986,12 +986,13 @@ show_port(void)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/nfp: fix DMA error after abnormal exit' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (43 preceding siblings ...)
  2023-12-11 10:11   ` patch 'app/procinfo: adjust format of " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/tap: fix RSS for fragmented packets' " Xueming Li
                     ` (75 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Shihong Wang; +Cc: Peng Zhang, Chaoyong He, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=85b95b48ceaffb51f3bec5481c93c9bcb25b7267

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 85b95b48ceaffb51f3bec5481c93c9bcb25b7267 Mon Sep 17 00:00:00 2001
From: Shihong Wang <shihong.wang@corigine.com>
Date: Thu, 2 Nov 2023 10:23:13 +0800
Subject: [PATCH] net/nfp: fix DMA error after abnormal exit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9e442599802e788874110339901f4eeb8f0ecc3b ]

When DPDK application exit abnormally, there might have DMA error,
and which will cause the load of firmware failed.

Fix this by force the physical port down to clear the possible DMA error.

Fixes: 896c265ef954 ("net/nfp: use new CPP interface")

Signed-off-by: Shihong Wang <shihong.wang@corigine.com>
Signed-off-by: Peng Zhang <peng.zhang@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
---
 drivers/net/nfp/nfp_ethdev.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c
index a780887868..1b0131b1d8 100644
--- a/drivers/net/nfp/nfp_ethdev.c
+++ b/drivers/net/nfp/nfp_ethdev.c
@@ -931,7 +931,8 @@ app_cleanup:
 static int
 nfp_pf_init(struct rte_pci_device *pci_dev)
 {
-	int ret;
+	uint32_t i;
+	int ret = 0;
 	int err = 0;
 	uint64_t addr;
 	uint32_t cpp_id;
@@ -978,6 +979,10 @@ nfp_pf_init(struct rte_pci_device *pci_dev)
 		goto hwinfo_cleanup;
 	}
 
+	/* Force the physical port down to clear the possible DMA error */
+	for (i = 0; i < nfp_eth_table->count; i++)
+		nfp_eth_set_configured(cpp, nfp_eth_table->ports[i].index, 0);
+
 	if (nfp_fw_setup(pci_dev, cpp, nfp_eth_table, hwinfo)) {
 		PMD_INIT_LOG(ERR, "Error when uploading firmware");
 		ret = -EIO;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.595989300 +0800
+++ 0045-net-nfp-fix-DMA-error-after-abnormal-exit.patch	2023-12-11 17:56:22.987652300 +0800
@@ -1 +1 @@
-From 9e442599802e788874110339901f4eeb8f0ecc3b Mon Sep 17 00:00:00 2001
+From 85b95b48ceaffb51f3bec5481c93c9bcb25b7267 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9e442599802e788874110339901f4eeb8f0ecc3b ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +20,2 @@
- drivers/net/nfp/nfp_ethdev.c | 5 +++++
- 1 file changed, 5 insertions(+)
+ drivers/net/nfp/nfp_ethdev.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
@@ -22 +24 @@
-index d4cc6ca64a..e988bcf5ac 100644
+index a780887868..1b0131b1d8 100644
@@ -25 +27 @@
-@@ -849,6 +849,7 @@ app_cleanup:
+@@ -931,7 +931,8 @@ app_cleanup:
@@ -28,0 +31 @@
+-	int ret;
@@ -30 +33,2 @@
- 	int ret = 0;
++	int ret = 0;
+ 	int err = 0;
@@ -33 +37 @@
-@@ -907,6 +908,10 @@ nfp_pf_init(struct rte_pci_device *pci_dev)
+@@ -978,6 +979,10 @@ nfp_pf_init(struct rte_pci_device *pci_dev)
@@ -41 +45 @@
- 	if (nfp_fw_setup(pci_dev, cpp, nfp_eth_table, hwinfo) != 0) {
+ 	if (nfp_fw_setup(pci_dev, cpp, nfp_eth_table, hwinfo)) {

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/tap: fix RSS for fragmented packets' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (44 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/nfp: fix DMA error after abnormal exit' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix decap action checking in sample flow' " Xueming Li
                     ` (74 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Madhuker Mythri; +Cc: Stephen Hemminger, Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=81410056f5ab7eacd0b91b6a708f9aca535c4a7a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 81410056f5ab7eacd0b91b6a708f9aca535c4a7a Mon Sep 17 00:00:00 2001
From: Madhuker Mythri <madhuker.mythri@oracle.com>
Date: Wed, 1 Nov 2023 11:02:47 -0700
Subject: [PATCH] net/tap: fix RSS for fragmented packets
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit db6a3ddb166bb53ac7929e4b5c4cad94f6fa6871 ]

As per analysis on Tap PMD, the existing RSS algorithm considering
4-tuple (Src-IP, Dst-IP, Src-port and Dst-port) and identification of
fragment packets is not done, thus we are seeing all the fragmented
chunks of single packet differs in RSS hash value and distributed across
multiple queues.
The RSS algorithm assumes that, all the incoming IP packets are based on
L4-protocol(UDP/TCP) and trying to fetch the L4 fields(Src-port and
Dst-port) for each incoming packet, but for the fragmented chunks these
L4-header will not be present (except for first packet) and should not
consider in RSS hash for L4 header fields in-case of fragmented chunks.
Which is a bug in the RSS algorithm implemented in the BPF functionality
under TAP PMD.

So, modified the RSS eBPF C-program and generated the structure of
C-array in the 'tap_bpf_insns.h' file, which is in eBPF byte-code
instructions format.

Bugzilla ID: 870
Fixes: cdc07e83bb24 ("net/tap: add eBPF program file")

Signed-off-by: Madhuker Mythri <madhuker.mythri@oracle.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/tap/tap_bpf_insns.h   | 2959 +++++++++++++++--------------
 drivers/net/tap/tap_bpf_program.c |   45 +-
 2 files changed, 1540 insertions(+), 1464 deletions(-)

diff --git a/drivers/net/tap/tap_bpf_insns.h b/drivers/net/tap/tap_bpf_insns.h
index 1a91bbad13..53fa76c4e6 100644
--- a/drivers/net/tap/tap_bpf_insns.h
+++ b/drivers/net/tap/tap_bpf_insns.h
@@ -1,10 +1,10 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2017 Mellanox Technologies, Ltd
+ * Auto-generated from tap_bpf_program.c
+ * This not the original source file. Do NOT edit it.
  */
 
 #include <tap_bpf.h>
 
-/* bpf_insn array matching cls_q section. See tap_bpf_program.c file */
 static struct bpf_insn cls_q_insns[] = {
 	{0x61,    2,    1,       52, 0x00000000},
 	{0x18,    3,    0,        0, 0xdeadbeef},
@@ -23,18 +23,17 @@ static struct bpf_insn cls_q_insns[] = {
 	{0x95,    0,    0,        0, 0x00000000},
 };
 
-/* bpf_insn array matching l3_l4 section. see tap_bpf_program.c file */
 static struct bpf_insn l3_l4_hash_insns[] = {
 	{0xbf,    7,    1,        0, 0x00000000},
-	{0x61,    8,    7,       16, 0x00000000},
-	{0x61,    6,    7,       76, 0x00000000},
+	{0x61,    6,    7,       16, 0x00000000},
+	{0x61,    8,    7,       76, 0x00000000},
 	{0x61,    9,    7,       80, 0x00000000},
 	{0x18,    1,    0,        0, 0xdeadbeef},
 	{0x00,    0,    0,        0, 0x00000000},
 	{0x63,   10,    1,       -4, 0x00000000},
 	{0xbf,    2,   10,        0, 0x00000000},
 	{0x07,    2,    0,        0, 0xfffffffc},
-	{0x18,    1,    1,        0, 0x0000cafe},
+	{0x18,    1,    0,        0, 0x00000000},
 	{0x00,    0,    0,        0, 0x00000000},
 	{0x85,    0,    0,        0, 0x00000001},
 	{0x55,    0,    0,       21, 0x00000000},
@@ -58,7 +57,7 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0x07,    1,    0,        0, 0xffffffd0},
 	{0xb7,    2,    0,        0, 0x00000023},
 	{0x85,    0,    0,        0, 0x00000006},
-	{0x05,    0,    0,     1632, 0x00000000},
+	{0x05,    0,    0,     1680, 0x00000000},
 	{0xb7,    1,    0,        0, 0x0000000e},
 	{0x61,    2,    7,       20, 0x00000000},
 	{0x15,    2,    0,       10, 0x00000000},
@@ -66,1630 +65,1678 @@ static struct bpf_insn l3_l4_hash_insns[] = {
 	{0x55,    2,    0,        8, 0x0000a888},
 	{0xbf,    2,    7,        0, 0x00000000},
 	{0xb7,    7,    0,        0, 0x00000000},
-	{0xbf,    1,    6,        0, 0x00000000},
+	{0xbf,    1,    8,        0, 0x00000000},
 	{0x07,    1,    0,        0, 0x00000012},
-	{0x2d,    1,    9,     1622, 0x00000000},
+	{0x2d,    1,    9,     1670, 0x00000000},
 	{0xb7,    1,    0,        0, 0x00000012},
-	{0x69,    8,    6,       16, 0x00000000},
+	{0x69,    6,    8,       16, 0x00000000},
 	{0xbf,    7,    2,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x0000ffff},
 	{0x7b,   10,    7,      -56, 0x00000000},
-	{0x57,    8,    0,        0, 0x0000ffff},
-	{0x15,    8,    0,      409, 0x0000dd86},
+	{0x15,    6,    0,      443, 0x0000dd86},
 	{0xb7,    7,    0,        0, 0x00000003},
-	{0x55,    8,    0,     1614, 0x00000008},
-	{0x0f,    6,    1,        0, 0x00000000},
+	{0x55,    6,    0,     1662, 0x00000008},
+	{0x0f,    8,    1,        0, 0x00000000},
 	{0xb7,    7,    0,        0, 0x00000000},
-	{0xbf,    1,    6,        0, 0x00000000},
+	{0xbf,    1,    8,        0, 0x00000000},
 	{0x07,    1,    0,        0, 0x00000018},
-	{0x2d,    1,    9,     1609, 0x00000000},
-	{0x71,    3,    6,       12, 0x00000000},
-	{0xbf,    1,    3,        0, 0x00000000},
-	{0x67,    1,    0,        0, 0x00000038},
-	{0xc7,    1,    0,        0, 0x00000020},
-	{0x77,    1,    0,        0, 0x0000001f},
-	{0x57,    1,    0,        0, 0x2cc681d1},
-	{0x67,    3,    0,        0, 0x00000018},
+	{0x2d,    1,    9,     1657, 0x00000000},
+	{0xb7,    1,    0,        0, 0x00000000},
+	{0x71,    3,    8,       12, 0x00000000},
+	{0x71,    2,    8,        9, 0x00000000},
+	{0x15,    2,    0,        1, 0x00000011},
+	{0x55,    2,    0,       21, 0x00000006},
+	{0x71,    2,    8,        7, 0x00000000},
+	{0x71,    4,    8,        6, 0x00000000},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0x67,    5,    0,        0, 0x00000008},
+	{0x57,    5,    0,        0, 0x00001f00},
+	{0x4f,    5,    2,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000020},
+	{0x4f,    4,    5,        0, 0x00000000},
+	{0x55,    4,    0,       12, 0x00000000},
+	{0xbf,    2,    8,        0, 0x00000000},
+	{0x07,    2,    0,        0, 0x00000014},
+	{0x71,    4,    2,        0, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000018},
+	{0x71,    1,    2,        1, 0x00000000},
+	{0x67,    1,    0,        0, 0x00000010},
+	{0x4f,    1,    4,        0, 0x00000000},
+	{0x71,    4,    2,        3, 0x00000000},
+	{0x4f,    1,    4,        0, 0x00000000},
+	{0x71,    2,    2,        2, 0x00000000},
+	{0x67,    2,    0,        0, 0x00000008},
+	{0x4f,    1,    2,        0, 0x00000000},
 	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x40000000},
+	{0x67,    4,    0,        0, 0x00000038},
+	{0xc7,    4,    0,        0, 0x00000038},
+	{0xb7,    2,    0,        0, 0x00000000},
+	{0x65,    4,    0,        1, 0xffffffff},
+	{0xb7,    7,    0,        0, 0x2cc681d1},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000040},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x598d03a2},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000020},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xb31a0745},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000010},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x66340e8a},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000008},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xcc681d15},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000004},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x98d03a2b},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000002},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x31a07456},
+	{0x71,    4,    8,       13, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x6340e8ad},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x67,    3,    0,        0, 0x00000038},
+	{0xc7,    3,    0,        0, 0x00000038},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0xc681d15b},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x8d03a2b7},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1a07456f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x340e8ade},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x681d15bd},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000004},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd03a2b7b},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000002},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa07456f6},
+	{0x71,    3,    8,       14, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x40e8aded},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000038},
+	{0xc7,    4,    0,        0, 0x00000038},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xa7,    7,    0,        0, 0x81d15bdb},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000040},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x03a2b7b7},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000020},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x07456f6f},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000010},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x0e8adedf},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000008},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x1d15bdbf},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000004},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x3a2b7b7e},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000002},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x7456f6fd},
+	{0x71,    4,    8,       15, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xe8adedfa},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x67,    3,    0,        0, 0x00000038},
+	{0xc7,    3,    0,        0, 0x00000038},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd15bdbf4},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa2b7b7e9},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x456f6fd3},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x8adedfa7},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x15bdbf4f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000004},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x2b7b7e9e},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000002},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x56f6fd3d},
+	{0x71,    3,    8,       16, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xadedfa7b},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000038},
+	{0xc7,    4,    0,        0, 0x00000038},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xa7,    7,    0,        0, 0x5bdbf4f7},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000040},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xb7b7e9ef},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000020},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x6f6fd3df},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000010},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xdedfa7bf},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000008},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xbdbf4f7f},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000004},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x7b7e9eff},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000002},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xf6fd3dff},
+	{0x71,    4,    8,       17, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xedfa7bfe},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x67,    3,    0,        0, 0x00000038},
+	{0xc7,    3,    0,        0, 0x00000038},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdbf4f7fc},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xb7e9eff9},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6fd3dff2},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdfa7bfe5},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xbf4f7fca},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000004},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7e9eff94},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000002},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xfd3dff28},
+	{0x71,    3,    8,       18, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xfa7bfe51},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x67,    6,    0,        0, 0x00000038},
+	{0xc7,    6,    0,        0, 0x00000038},
+	{0xbf,    4,    5,        0, 0x00000000},
+	{0xa7,    4,    0,        0, 0xf4f7fca2},
+	{0x6d,    2,    6,        1, 0x00000000},
+	{0xbf,    4,    5,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000040},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xe9eff945},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000020},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xd3dff28a},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000010},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xa7bfe514},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000008},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x4f7fca28},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000004},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x9eff9450},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000002},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x3dff28a0},
+	{0x71,    5,    8,       19, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x7bfe5141},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x67,    3,    0,        0, 0x00000038},
+	{0xc7,    3,    0,        0, 0x00000038},
+	{0xbf,    7,    4,        0, 0x00000000},
+	{0xa7,    7,    0,        0, 0xf7fca283},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    7,    4,        0, 0x00000000},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xeff94506},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xdff28a0c},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xbfe51418},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x7fca2831},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000004},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xff945063},
+	{0xbf,    3,    5,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000002},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xff28a0c6},
+	{0x57,    5,    0,        0, 0x00000001},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xfe51418c},
+	{0xbf,    4,    1,        0, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000020},
+	{0xc7,    4,    0,        0, 0x00000020},
+	{0xbf,    3,    7,        0, 0x00000000},
+	{0xa7,    3,    0,        0, 0xfca28319},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    3,    7,        0, 0x00000000},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x40000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xf9450633},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x20000000},
+	{0x79,    6,   10,      -56, 0x00000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xf28a0c67},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x10000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xe51418ce},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x08000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xca28319d},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x04000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x9450633b},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x02000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x28a0c676},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x01000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x51418ced},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00800000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xa28319db},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00400000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x450633b6},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00200000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x8a0c676c},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00100000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x1418ced8},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00080000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x28319db1},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00040000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x50633b63},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00020000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xa0c676c6},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00010000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x418ced8d},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00008000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x8319db1a},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00004000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x0633b634},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00002000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x0c676c68},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00001000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x18ced8d1},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000800},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x319db1a3},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000400},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x633b6347},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000200},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xc676c68f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000100},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x8ced8d1f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000080},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x19db1a3e},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000040},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x33b6347d},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000020},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x676c68fa},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000010},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xced8d1f4},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000008},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x9db1a3e9},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000004},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x3b6347d2},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000002},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x76c68fa5},
+	{0x57,    1,    0,        0, 0x00000001},
+	{0x15,    1,    0,     1194, 0x00000000},
+	{0xa7,    3,    0,        0, 0xed8d1f4a},
+	{0x05,    0,    0,     1192, 0x00000000},
+	{0x0f,    8,    1,        0, 0x00000000},
+	{0xb7,    7,    0,        0, 0x00000000},
+	{0xbf,    1,    8,        0, 0x00000000},
+	{0x07,    1,    0,        0, 0x0000002c},
+	{0x2d,    1,    9,     1216, 0x00000000},
+	{0x61,    2,    8,        8, 0x00000000},
+	{0xdc,    2,    0,        0, 0x00000040},
+	{0xc7,    2,    0,        0, 0x00000020},
+	{0x71,    3,    8,        6, 0x00000000},
+	{0x15,    3,    0,        2, 0x00000011},
+	{0xb7,    1,    0,        0, 0x00000000},
+	{0x55,    3,    0,       12, 0x00000006},
+	{0xbf,    3,    8,        0, 0x00000000},
+	{0x07,    3,    0,        0, 0x00000028},
+	{0x71,    4,    3,        0, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000018},
+	{0x71,    1,    3,        1, 0x00000000},
+	{0x67,    1,    0,        0, 0x00000010},
+	{0x4f,    1,    4,        0, 0x00000000},
+	{0x71,    4,    3,        3, 0x00000000},
+	{0x4f,    1,    4,        0, 0x00000000},
+	{0x71,    3,    3,        2, 0x00000000},
+	{0x67,    3,    0,        0, 0x00000008},
+	{0x4f,    1,    3,        0, 0x00000000},
+	{0xbf,    4,    2,        0, 0x00000000},
+	{0x77,    4,    0,        0, 0x0000001f},
+	{0x57,    4,    0,        0, 0x2cc681d1},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x40000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x598d03a2},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x20000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xb31a0745},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x10000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x66340e8a},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x08000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xcc681d15},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x04000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x98d03a2b},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x02000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x31a07456},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x01000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x6340e8ad},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00800000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xc681d15b},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00400000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x8d03a2b7},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00200000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x1a07456f},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00100000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x340e8ade},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00080000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x681d15bd},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00040000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xd03a2b7b},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00020000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xa07456f6},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00010000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x40e8aded},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00008000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x81d15bdb},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00004000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x03a2b7b7},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00002000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x07456f6f},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00001000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x0e8adedf},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000800},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x1d15bdbf},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000400},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x3a2b7b7e},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000200},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x7456f6fd},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000100},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xe8adedfa},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000080},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xd15bdbf4},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xa2b7b7e9},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x456f6fd3},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x8adedfa7},
+	{0xbf,    3,    2,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x15bdbf4f},
+	{0x61,    3,    8,       12, 0x00000000},
+	{0xbf,    5,    2,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000004},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x2b7b7e9e},
+	{0xdc,    3,    0,        0, 0x00000040},
+	{0xbf,    5,    2,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000002},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x56f6fd3d},
+	{0xc7,    3,    0,        0, 0x00000020},
+	{0x57,    2,    0,        0, 0x00000001},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xadedfa7b},
 	{0xb7,    2,    0,        0, 0x00000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x598d03a2},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x5bdbf4f7},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x40000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xb7b7e9ef},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x20000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb31a0745},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6f6fd3df},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x10000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x66340e8a},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdedfa7bf},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x08000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xcc681d15},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xbdbf4f7f},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x04000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x98d03a2b},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7b7e9eff},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x02000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x31a07456},
-	{0x57,    3,    0,        0, 0x01000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6340e8ad},
-	{0x71,    3,    6,       13, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000010},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xf6fd3dff},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x01000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xedfa7bfe},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00800000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc681d15b},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdbf4f7fc},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00400000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8d03a2b7},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xb7e9eff9},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00200000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1a07456f},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6fd3dff2},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00100000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x340e8ade},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdfa7bfe5},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00080000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x681d15bd},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xbf4f7fca},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00040000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd03a2b7b},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7e9eff94},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00020000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa07456f6},
-	{0x57,    3,    0,        0, 0x00010000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x40e8aded},
-	{0x71,    3,    6,       14, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000008},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xfd3dff28},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00010000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xfa7bfe51},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00008000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x81d15bdb},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xf4f7fca2},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00004000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x03a2b7b7},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xe9eff945},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00002000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x07456f6f},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd3dff28a},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00001000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0e8adedf},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa7bfe514},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000800},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1d15bdbf},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x4f7fca28},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000400},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3a2b7b7e},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x9eff9450},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000200},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7456f6fd},
-	{0x57,    3,    0,        0, 0x00000100},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe8adedfa},
-	{0x71,    3,    6,       15, 0x00000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x3dff28a0},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000100},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7bfe5141},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000080},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd15bdbf4},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xf7fca283},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000040},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa2b7b7e9},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xeff94506},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000020},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x456f6fd3},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdff28a0c},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000010},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8adedfa7},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xbfe51418},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000008},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x15bdbf4f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000004},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2b7b7e9e},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000002},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x56f6fd3d},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7fca2831},
+	{0x61,    4,    8,       16, 0x00000000},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x00000004},
+	{0x15,    6,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xff945063},
+	{0xdc,    4,    0,        0, 0x00000040},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x00000002},
+	{0x15,    6,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xff28a0c6},
+	{0xc7,    4,    0,        0, 0x00000020},
 	{0x57,    3,    0,        0, 0x00000001},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xadedfa7b},
-	{0x71,    4,    6,       16, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000038},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0xb7,    3,    0,        0, 0xffffffff},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x5bdbf4f7},
-	{0x67,    4,    0,        0, 0x00000018},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb7b7e9ef},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6f6fd3df},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdedfa7bf},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbdbf4f7f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7b7e9eff},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf6fd3dff},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xedfa7bfe},
-	{0x71,    4,    6,       17, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000010},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdbf4f7fc},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb7e9eff9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6fd3dff2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdfa7bfe5},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbf4f7fca},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7e9eff94},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfd3dff28},
-	{0x57,    4,    0,        0, 0x00010000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfa7bfe51},
-	{0x71,    4,    6,       18, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000008},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf4f7fca2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe9eff945},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd3dff28a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa7bfe514},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4f7fca28},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9eff9450},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3dff28a0},
-	{0x57,    4,    0,        0, 0x00000100},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7bfe5141},
-	{0x71,    4,    6,       19, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf7fca283},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xeff94506},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdff28a0c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbfe51418},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7fca2831},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xff945063},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xff28a0c6},
-	{0x57,    4,    0,        0, 0x00000001},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfe51418c},
-	{0x71,    4,    6,       20, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000008},
-	{0x71,    5,    6,       21, 0x00000000},
-	{0x4f,    4,    5,        0, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000030},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfca28319},
-	{0x67,    4,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xfe51418c},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xa7,    7,    0,        0, 0xfca28319},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    7,    5,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x40000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf9450633},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xf9450633},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x20000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf28a0c67},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xf28a0c67},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x10000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe51418ce},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xe51418ce},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x08000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xca28319d},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xca28319d},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x04000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9450633b},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x9450633b},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x02000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x28a0c676},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x28a0c676},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x01000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x51418ced},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x51418ced},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00800000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa28319db},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xa28319db},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00400000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x450633b6},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x450633b6},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00200000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8a0c676c},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x8a0c676c},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00100000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1418ced8},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x1418ced8},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00080000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x28319db1},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x28319db1},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00040000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x50633b63},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x50633b63},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00020000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa0c676c6},
-	{0x57,    4,    0,        0, 0x00010000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x418ced8d},
-	{0x71,    3,    6,       22, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000008},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00008000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8319db1a},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00004000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0633b634},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xa0c676c6},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00010000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x418ced8d},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00008000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x8319db1a},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00004000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x0633b634},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00002000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x0c676c68},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00001000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x18ced8d1},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000800},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x319db1a3},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000400},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x633b6347},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000200},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xc676c68f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000100},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x8ced8d1f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000080},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x19db1a3e},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x33b6347d},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x676c68fa},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xced8d1f4},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x9db1a3e9},
+	{0x61,    3,    8,       20, 0x00000000},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000004},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x3b6347d2},
+	{0xdc,    3,    0,        0, 0x00000040},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000002},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x76c68fa5},
+	{0xc7,    3,    0,        0, 0x00000020},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xed8d1f4a},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0xdb1a3e94},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x40000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xb6347d28},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x20000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6c68fa51},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x10000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd8d1f4a3},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x08000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xb1a3e946},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x04000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6347d28d},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x02000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xc68fa51a},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x01000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x8d1f4a35},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00800000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1a3e946b},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00400000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x347d28d7},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00200000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x68fa51ae},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00100000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd1f4a35c},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00080000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa3e946b9},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00040000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x47d28d73},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00020000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x8fa51ae7},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00010000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1f4a35cf},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00008000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x3e946b9e},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00004000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7d28d73c},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00002000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0c676c68},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xfa51ae78},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00001000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x18ced8d1},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xf4a35cf1},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000800},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x319db1a3},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xe946b9e3},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000400},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x633b6347},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd28d73c7},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000200},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc676c68f},
-	{0x57,    3,    0,        0, 0x00000100},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8ced8d1f},
-	{0x71,    3,    6,       23, 0x00000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa51ae78e},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000100},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x4a35cf1c},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000080},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x19db1a3e},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x946b9e38},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000040},
-	{0x79,    5,   10,      -56, 0x00000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x33b6347d},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x28d73c71},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000020},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x676c68fa},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x51ae78e3},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000010},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xced8d1f4},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa35cf1c6},
 	{0xbf,    4,    3,        0, 0x00000000},
 	{0x57,    4,    0,        0, 0x00000008},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9db1a3e9},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000004},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3b6347d2},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000002},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x76c68fa5},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x46b9e38d},
+	{0x61,    4,    8,       24, 0x00000000},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x00000004},
+	{0x15,    6,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x8d73c71b},
+	{0xdc,    4,    0,        0, 0x00000040},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x00000002},
+	{0x15,    6,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1ae78e36},
+	{0xc7,    4,    0,        0, 0x00000020},
 	{0x57,    3,    0,        0, 0x00000001},
-	{0x1d,    3,    2,     1177, 0x00000000},
-	{0xa7,    1,    0,        0, 0xed8d1f4a},
-	{0x05,    0,    0,     1175, 0x00000000},
-	{0x0f,    6,    1,        0, 0x00000000},
-	{0xb7,    7,    0,        0, 0x00000000},
-	{0xbf,    1,    6,        0, 0x00000000},
-	{0x07,    1,    0,        0, 0x0000002c},
-	{0x2d,    1,    9,     1202, 0x00000000},
-	{0x61,    4,    6,        8, 0x00000000},
-	{0xbf,    1,    4,        0, 0x00000000},
-	{0x67,    1,    0,        0, 0x00000038},
-	{0xc7,    1,    0,        0, 0x00000020},
-	{0x77,    1,    0,        0, 0x0000001f},
-	{0x57,    1,    0,        0, 0x2cc681d1},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x35cf1c6c},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xa7,    7,    0,        0, 0x6b9e38d9},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    7,    5,        0, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000040},
-	{0xb7,    2,    0,        0, 0x00000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x598d03a2},
+	{0x57,    3,    0,        0, 0x40000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xd73c71b2},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000020},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb31a0745},
+	{0x57,    3,    0,        0, 0x20000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xae78e364},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000010},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x66340e8a},
+	{0x57,    3,    0,        0, 0x10000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x5cf1c6c9},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000008},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xcc681d15},
+	{0x57,    3,    0,        0, 0x08000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xb9e38d92},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000004},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x98d03a2b},
+	{0x57,    3,    0,        0, 0x04000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x73c71b25},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000002},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x31a07456},
+	{0x57,    3,    0,        0, 0x02000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xe78e364b},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6340e8ad},
+	{0x57,    3,    0,        0, 0x01000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xcf1c6c96},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00800000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x9e38d92c},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00400000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x3c71b259},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00200000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x78e364b2},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00100000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xf1c6c964},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00080000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xe38d92c9},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00040000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xc71b2593},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00020000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x8e364b27},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00010000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x1c6c964e},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00008000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc681d15b},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x38d92c9c},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00004000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8d03a2b7},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x71b25938},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00002000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1a07456f},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xe364b270},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00001000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x340e8ade},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xc6c964e0},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000800},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x681d15bd},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x8d92c9c0},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000400},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd03a2b7b},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x1b259380},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000200},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa07456f6},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x364b2700},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00000100},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x40e8aded},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x6c964e01},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000080},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xd92c9c03},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xb2593807},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x64b2700f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xc964e01e},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x92c9c03d},
+	{0x61,    3,    8,       28, 0x00000000},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000004},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x2593807a},
+	{0xdc,    3,    0,        0, 0x00000040},
+	{0xbf,    5,    4,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000002},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x4b2700f4},
+	{0xc7,    3,    0,        0, 0x00000020},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x964e01e8},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xa7,    5,    0,        0, 0x2c9c03d1},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    5,    7,        0, 0x00000000},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x40000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x593807a3},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x20000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xb2700f46},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x10000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x64e01e8d},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x08000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xc9c03d1a},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x04000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x93807a35},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x02000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x2700f46b},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x01000000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x4e01e8d6},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00800000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x9c03d1ad},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00400000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x3807a35b},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00200000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x700f46b6},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00100000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xe01e8d6c},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00080000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xc03d1ad9},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00040000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x807a35b3},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00020000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x00f46b66},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00010000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x01e8d6cc},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00008000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x03d1ad99},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00004000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x07a35b32},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00002000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x0f46b665},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00001000},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1e8d6cca},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000800},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x3d1ad994},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000400},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x7a35b328},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000200},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xf46b6651},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000100},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xe8d6cca2},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000080},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd1ad9944},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000040},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xa35b3289},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000020},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x46b66512},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000010},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x8d6cca25},
+	{0xbf,    4,    3,        0, 0x00000000},
+	{0x57,    4,    0,        0, 0x00000008},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x1ad9944a},
+	{0x61,    4,    8,       32, 0x00000000},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x00000004},
+	{0x15,    6,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x35b32894},
+	{0xdc,    4,    0,        0, 0x00000040},
+	{0xbf,    6,    3,        0, 0x00000000},
+	{0x57,    6,    0,        0, 0x00000002},
+	{0x15,    6,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0x6b665129},
+	{0xc7,    4,    0,        0, 0x00000020},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    5,    0,        0, 0xd6cca253},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xa7,    7,    0,        0, 0xad9944a7},
+	{0x6d,    2,    4,        1, 0x00000000},
+	{0xbf,    7,    5,        0, 0x00000000},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x40000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x5b32894f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x20000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xb665129f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x10000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x6cca253e},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x08000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xd9944a7d},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x04000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xb32894fb},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x02000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x665129f6},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x01000000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xcca253ec},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00800000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x81d15bdb},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x9944a7d9},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00400000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x03a2b7b7},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x32894fb2},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00200000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x07456f6f},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x65129f65},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00100000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0e8adedf},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xca253eca},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00080000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1d15bdbf},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x944a7d95},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00040000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3a2b7b7e},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x2894fb2a},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00020000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7456f6fd},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x5129f655},
 	{0xbf,    3,    4,        0, 0x00000000},
 	{0x57,    3,    0,        0, 0x00010000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe8adedfa},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xa253ecab},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00008000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x44a7d956},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00004000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x894fb2ac},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00002000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x129f6558},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00001000},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x253ecab1},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000800},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x4a7d9563},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000400},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x94fb2ac7},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000200},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x29f6558f},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000100},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x53ecab1e},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000080},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xa7d9563d},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000040},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x4fb2ac7a},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000020},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x9f6558f5},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000010},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x3ecab1ea},
+	{0xbf,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x00000008},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0x7d9563d5},
+	{0x61,    3,    8,       36, 0x00000000},
 	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0xb7,    3,    0,        0, 0xffffffff},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd15bdbf4},
+	{0x57,    5,    0,        0, 0x00000004},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xfb2ac7ab},
+	{0xdc,    3,    0,        0, 0x00000040},
 	{0xbf,    5,    4,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000002},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xf6558f56},
+	{0xc7,    3,    0,        0, 0x00000020},
+	{0x57,    4,    0,        0, 0x00000001},
+	{0x15,    4,    0,        1, 0x00000000},
+	{0xa7,    7,    0,        0, 0xecab1eac},
+	{0xbf,    4,    7,        0, 0x00000000},
+	{0xa7,    4,    0,        0, 0xd9563d59},
+	{0x6d,    2,    3,        1, 0x00000000},
+	{0xbf,    4,    7,        0, 0x00000000},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa2b7b7e9},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xb2ac7ab2},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x456f6fd3},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x79,    6,   10,      -56, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x6558f564},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8adedfa7},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xcab1eac8},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x15bdbf4f},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x9563d590},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2b7b7e9e},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x2ac7ab20},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x56f6fd3d},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xadedfa7b},
-	{0x61,    4,    6,       12, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x558f5641},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x01000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xab1eac83},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00800000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x563d5906},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00400000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xac7ab20c},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00200000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x58f56418},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00100000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xb1eac831},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00080000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x63d59063},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00040000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xc7ab20c7},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00020000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x8f56418f},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00010000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x1eac831e},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00008000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x3d59063c},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00004000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x7ab20c78},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00002000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xf56418f0},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00001000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xeac831e1},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000800},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xd59063c2},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000400},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xab20c784},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000200},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x56418f09},
+	{0xbf,    5,    3,        0, 0x00000000},
+	{0x57,    5,    0,        0, 0x00000100},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xac831e12},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x5bdbf4f7},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x59063c25},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb7b7e9ef},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xb20c784b},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6f6fd3df},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x6418f097},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdedfa7bf},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0xc831e12f},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbdbf4f7f},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x9063c25f},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7b7e9eff},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x20c784be},
+	{0xbf,    5,    3,        0, 0x00000000},
 	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf6fd3dff},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xedfa7bfe},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdbf4f7fc},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb7e9eff9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6fd3dff2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdfa7bfe5},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbf4f7fca},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7e9eff94},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfd3dff28},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfa7bfe51},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf4f7fca2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe9eff945},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd3dff28a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa7bfe514},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4f7fca28},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9eff9450},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3dff28a0},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7bfe5141},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf7fca283},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xeff94506},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdff28a0c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbfe51418},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7fca2831},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xff945063},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xff28a0c6},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfe51418c},
-	{0x61,    4,    6,       16, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfca28319},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf9450633},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf28a0c67},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe51418ce},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xca28319d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9450633b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x28a0c676},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x51418ced},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa28319db},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x450633b6},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8a0c676c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1418ced8},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x28319db1},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x50633b63},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa0c676c6},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x418ced8d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8319db1a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0633b634},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0c676c68},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x18ced8d1},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x319db1a3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x633b6347},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc676c68f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8ced8d1f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x19db1a3e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x33b6347d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x676c68fa},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xced8d1f4},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9db1a3e9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3b6347d2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x76c68fa5},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xed8d1f4a},
-	{0x61,    4,    6,       20, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xdb1a3e94},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb6347d28},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6c68fa51},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd8d1f4a3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb1a3e946},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6347d28d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc68fa51a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8d1f4a35},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1a3e946b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x347d28d7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x68fa51ae},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd1f4a35c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa3e946b9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x47d28d73},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8fa51ae7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1f4a35cf},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3e946b9e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7d28d73c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfa51ae78},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf4a35cf1},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe946b9e3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd28d73c7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa51ae78e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4a35cf1c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x946b9e38},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x28d73c71},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x51ae78e3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa35cf1c6},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x46b9e38d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8d73c71b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1ae78e36},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x35cf1c6c},
-	{0x61,    4,    6,       24, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6b9e38d9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd73c71b2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xae78e364},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x5cf1c6c9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb9e38d92},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x73c71b25},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe78e364b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xcf1c6c96},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9e38d92c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3c71b259},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x78e364b2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf1c6c964},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe38d92c9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc71b2593},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8e364b27},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1c6c964e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x38d92c9c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x71b25938},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe364b270},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc6c964e0},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8d92c9c0},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1b259380},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x364b2700},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6c964e01},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd92c9c03},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb2593807},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x64b2700f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc964e01e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x92c9c03d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2593807a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4b2700f4},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x964e01e8},
-	{0x61,    4,    6,       28, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2c9c03d1},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x593807a3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb2700f46},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x64e01e8d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc9c03d1a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x93807a35},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2700f46b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4e01e8d6},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9c03d1ad},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3807a35b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x700f46b6},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe01e8d6c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc03d1ad9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x807a35b3},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x00f46b66},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x01e8d6cc},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x03d1ad99},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x07a35b32},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0f46b665},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1e8d6cca},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3d1ad994},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7a35b328},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf46b6651},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe8d6cca2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd1ad9944},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa35b3289},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x46b66512},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8d6cca25},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1ad9944a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x35b32894},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6b665129},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd6cca253},
-	{0x61,    4,    6,       32, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xad9944a7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x5b32894f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb665129f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6cca253e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd9944a7d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb32894fb},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x665129f6},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xcca253ec},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9944a7d9},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x32894fb2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x65129f65},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xca253eca},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x944a7d95},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2894fb2a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x5129f655},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa253ecab},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x44a7d956},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x894fb2ac},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x129f6558},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x253ecab1},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4a7d9563},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x94fb2ac7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x29f6558f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x53ecab1e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000020},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xa7d9563d},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4fb2ac7a},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9f6558f5},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3ecab1ea},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7d9563d5},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfb2ac7ab},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf6558f56},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xecab1eac},
-	{0x61,    4,    6,       36, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000080},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd9563d59},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000040},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb2ac7ab2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000020},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6558f564},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000010},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xcab1eac8},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000008},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9563d590},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000004},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2ac7ab20},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000002},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x558f5641},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000001},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xab1eac83},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00008000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x563d5906},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00004000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xac7ab20c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00002000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x58f56418},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00001000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb1eac831},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000800},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x63d59063},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000400},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc7ab20c7},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000200},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8f56418f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00000100},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1eac831e},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00800000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3d59063c},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00400000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7ab20c78},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00200000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf56418f0},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00100000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xeac831e1},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00080000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xd59063c2},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00040000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xab20c784},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00020000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x56418f09},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x00010000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xac831e12},
-	{0xbf,    5,    4,        0, 0x00000000},
+	{0x15,    5,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x418f097c},
+	{0x57,    3,    0,        0, 0x00000001},
+	{0x15,    3,    0,        1, 0x00000000},
+	{0xa7,    4,    0,        0, 0x831e12f9},
+	{0xbf,    5,    1,        0, 0x00000000},
 	{0x67,    5,    0,        0, 0x00000020},
 	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x59063c25},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x40000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xb20c784b},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x20000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x6418f097},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x10000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc831e12f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x08000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9063c25f},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x04000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x20c784be},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x57,    5,    0,        0, 0x02000000},
-	{0x1d,    5,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x418f097c},
-	{0x57,    4,    0,        0, 0x01000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x831e12f9},
-	{0x71,    4,    6,       40, 0x00000000},
-	{0x67,    4,    0,        0, 0x00000008},
-	{0x71,    5,    6,       41, 0x00000000},
-	{0x4f,    4,    5,        0, 0x00000000},
-	{0xbf,    5,    4,        0, 0x00000000},
-	{0x67,    5,    0,        0, 0x00000030},
-	{0xc7,    5,    0,        0, 0x00000020},
-	{0x6d,    5,    3,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x063c25f3},
-	{0x67,    4,    0,        0, 0x00000010},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x40000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x0c784be7},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x20000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x18f097cf},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x10000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x31e12f9f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x08000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x63c25f3f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x04000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc784be7f},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x02000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x8f097cff},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x01000000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x1e12f9fe},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00800000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3c25f3fc},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00400000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x784be7f8},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00200000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf097cff0},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00100000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe12f9fe0},
-	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00080000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xc25f3fc1},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00040000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x84be7f83},
+	{0xa7,    3,    0,        0, 0x063c25f3},
+	{0x6d,    2,    5,        1, 0x00000000},
 	{0xbf,    3,    4,        0, 0x00000000},
-	{0x57,    3,    0,        0, 0x00020000},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x097cff07},
-	{0x57,    4,    0,        0, 0x00010000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x12f9fe0f},
-	{0x71,    3,    6,       42, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000008},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00008000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x25f3fc1f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00004000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x4be7f83f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00002000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x97cff07f},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00001000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x2f9fe0fe},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000800},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x5f3fc1fd},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000400},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xbe7f83fb},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000200},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7cff07f7},
-	{0x57,    3,    0,        0, 0x00000100},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf9fe0fee},
-	{0x71,    3,    6,       43, 0x00000000},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000080},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xf3fc1fdc},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000040},
-	{0x79,    5,   10,      -56, 0x00000000},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xe7f83fb8},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000020},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xcff07f70},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000010},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x9fe0fee1},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000008},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x3fc1fdc2},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000004},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0x7f83fb85},
-	{0xbf,    4,    3,        0, 0x00000000},
-	{0x57,    4,    0,        0, 0x00000002},
-	{0x1d,    4,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xff07f70a},
-	{0x57,    3,    0,        0, 0x00000001},
-	{0x1d,    3,    2,        1, 0x00000000},
-	{0xa7,    1,    0,        0, 0xfe0fee15},
-	{0x71,    2,    0,      201, 0x00000000},
-	{0x67,    2,    0,        0, 0x00000008},
-	{0x71,    3,    0,      200, 0x00000000},
-	{0x4f,    2,    3,        0, 0x00000000},
-	{0x71,    3,    0,      203, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000008},
-	{0x71,    4,    0,      202, 0x00000000},
-	{0x4f,    3,    4,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000010},
-	{0x4f,    3,    2,        0, 0x00000000},
-	{0x67,    1,    0,        0, 0x00000020},
-	{0x77,    1,    0,        0, 0x00000020},
 	{0xbf,    2,    1,        0, 0x00000000},
-	{0x3f,    2,    3,        0, 0x00000000},
-	{0x2f,    2,    3,        0, 0x00000000},
-	{0x1f,    1,    2,        0, 0x00000000},
-	{0x57,    1,    0,        0, 0x0000000f},
-	{0x67,    1,    0,        0, 0x00000002},
-	{0x0f,    0,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x40000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x0c784be7},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x20000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x18f097cf},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x10000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x31e12f9f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x08000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x63c25f3f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x04000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xc784be7f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x02000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x8f097cff},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x01000000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x1e12f9fe},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00800000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x3c25f3fc},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00400000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x784be7f8},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00200000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xf097cff0},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00100000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xe12f9fe0},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00080000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xc25f3fc1},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00040000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x84be7f83},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00020000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x097cff07},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00010000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x12f9fe0f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00008000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x25f3fc1f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00004000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x4be7f83f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00002000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x97cff07f},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00001000},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x2f9fe0fe},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000800},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x5f3fc1fd},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000400},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xbe7f83fb},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000200},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x7cff07f7},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000100},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xf9fe0fee},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000080},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xf3fc1fdc},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000040},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xe7f83fb8},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000020},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xcff07f70},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000010},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x9fe0fee1},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000008},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x3fc1fdc2},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000004},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0x7f83fb85},
+	{0xbf,    2,    1,        0, 0x00000000},
+	{0x57,    2,    0,        0, 0x00000002},
+	{0x15,    2,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xff07f70a},
+	{0x57,    1,    0,        0, 0x00000001},
+	{0x15,    1,    0,        1, 0x00000000},
+	{0xa7,    3,    0,        0, 0xfe0fee15},
+	{0x71,    1,    0,      201, 0x00000000},
+	{0x67,    1,    0,        0, 0x00000008},
+	{0x71,    2,    0,      200, 0x00000000},
+	{0x4f,    1,    2,        0, 0x00000000},
+	{0x71,    2,    0,      202, 0x00000000},
+	{0x67,    2,    0,        0, 0x00000010},
+	{0x71,    4,    0,      203, 0x00000000},
+	{0x67,    4,    0,        0, 0x00000018},
+	{0x4f,    4,    2,        0, 0x00000000},
+	{0x4f,    4,    1,        0, 0x00000000},
+	{0x67,    3,    0,        0, 0x00000020},
+	{0x77,    3,    0,        0, 0x00000020},
+	{0x9f,    3,    4,        0, 0x00000000},
+	{0x57,    3,    0,        0, 0x0000000f},
+	{0x67,    3,    0,        0, 0x00000002},
+	{0x0f,    0,    3,        0, 0x00000000},
 	{0x71,    1,    0,      137, 0x00000000},
 	{0x67,    1,    0,        0, 0x00000008},
 	{0x71,    2,    0,      136, 0x00000000},
 	{0x4f,    1,    2,        0, 0x00000000},
 	{0x71,    2,    0,      138, 0x00000000},
+	{0x67,    2,    0,        0, 0x00000010},
 	{0x71,    3,    0,      139, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000008},
+	{0x67,    3,    0,        0, 0x00000018},
 	{0x4f,    3,    2,        0, 0x00000000},
-	{0x67,    3,    0,        0, 0x00000010},
 	{0x4f,    3,    1,        0, 0x00000000},
 	{0x07,    3,    0,        0, 0x7cafe800},
-	{0x63,    5,    3,       52, 0x00000000},
+	{0x63,    6,    3,       52, 0x00000000},
 	{0xb7,    7,    0,        0, 0x00000001},
 	{0xbf,    0,    7,        0, 0x00000000},
 	{0x95,    0,    0,        0, 0x00000000},
diff --git a/drivers/net/tap/tap_bpf_program.c b/drivers/net/tap/tap_bpf_program.c
index 20c310e5e7..d9bb65831a 100644
--- a/drivers/net/tap/tap_bpf_program.c
+++ b/drivers/net/tap/tap_bpf_program.c
@@ -131,6 +131,8 @@ rss_l3_l4(struct __sk_buff *skb)
 	__u8 *key = 0;
 	__u32 len;
 	__u32 queue = 0;
+	bool mf = 0;
+	__u16 frag_off = 0;
 
 	rsskey = map_lookup_elem(&map_keys, &key_idx);
 	if (!rsskey) {
@@ -155,6 +157,8 @@ rss_l3_l4(struct __sk_buff *skb)
 			return TC_ACT_OK;
 
 		__u8 *src_dst_addr = data + off + offsetof(struct iphdr, saddr);
+		__u8 *frag_off_addr = data + off + offsetof(struct iphdr, frag_off);
+		__u8 *prot_addr = data + off + offsetof(struct iphdr, protocol);
 		__u8 *src_dst_port = data + off + sizeof(struct iphdr);
 		struct ipv4_l3_l4_tuple v4_tuple = {
 			.src_addr = IPv4(*(src_dst_addr + 0),
@@ -165,11 +169,25 @@ rss_l3_l4(struct __sk_buff *skb)
 					*(src_dst_addr + 5),
 					*(src_dst_addr + 6),
 					*(src_dst_addr + 7)),
-			.sport = PORT(*(src_dst_port + 0),
-					*(src_dst_port + 1)),
-			.dport = PORT(*(src_dst_port + 2),
-					*(src_dst_port + 3)),
+			.sport = 0,
+			.dport = 0,
 		};
+		/** Fetch the L4-payer port numbers only in-case of TCP/UDP
+		 ** and also if the packet is not fragmented. Since fragmented
+		 ** chunks do not have L4 TCP/UDP header.
+		 **/
+		if (*prot_addr == IPPROTO_UDP || *prot_addr == IPPROTO_TCP) {
+			frag_off = PORT(*(frag_off_addr + 0),
+					*(frag_off_addr + 1));
+			mf = frag_off & 0x2000;
+			frag_off = frag_off & 0x1fff;
+			if (mf == 0 && frag_off == 0) {
+				v4_tuple.sport = PORT(*(src_dst_port + 0),
+						*(src_dst_port + 1));
+				v4_tuple.dport = PORT(*(src_dst_port + 2),
+						*(src_dst_port + 3));
+			}
+		}
 		__u8 input_len = sizeof(v4_tuple) / sizeof(__u32);
 		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV4_L3))
 			input_len--;
@@ -182,6 +200,9 @@ rss_l3_l4(struct __sk_buff *skb)
 					offsetof(struct ipv6hdr, saddr);
 		__u8 *src_dst_port = data + off +
 					sizeof(struct ipv6hdr);
+		__u8 *next_hdr = data + off +
+					offsetof(struct ipv6hdr, nexthdr);
+
 		struct ipv6_l3_l4_tuple v6_tuple;
 		for (j = 0; j < 4; j++)
 			*((uint32_t *)&v6_tuple.src_addr + j) =
@@ -191,10 +212,18 @@ rss_l3_l4(struct __sk_buff *skb)
 			*((uint32_t *)&v6_tuple.dst_addr + j) =
 				__builtin_bswap32(*((uint32_t *)
 						src_dst_addr + 4 + j));
-		v6_tuple.sport = PORT(*(src_dst_port + 0),
-			      *(src_dst_port + 1));
-		v6_tuple.dport = PORT(*(src_dst_port + 2),
-			      *(src_dst_port + 3));
+
+		/** Fetch the L4 header port-numbers only if next-header
+		 * is TCP/UDP **/
+		if (*next_hdr == IPPROTO_UDP || *next_hdr == IPPROTO_TCP) {
+			v6_tuple.sport = PORT(*(src_dst_port + 0),
+				      *(src_dst_port + 1));
+			v6_tuple.dport = PORT(*(src_dst_port + 2),
+				      *(src_dst_port + 3));
+		} else {
+			v6_tuple.sport = 0;
+			v6_tuple.dport = 0;
+		}
 
 		__u8 input_len = sizeof(v6_tuple) / sizeof(__u32);
 		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV6_L3))
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.621232800 +0800
+++ 0046-net-tap-fix-RSS-for-fragmented-packets.patch	2023-12-11 17:56:22.987652300 +0800
@@ -1 +1 @@
-From db6a3ddb166bb53ac7929e4b5c4cad94f6fa6871 Mon Sep 17 00:00:00 2001
+From 81410056f5ab7eacd0b91b6a708f9aca535c4a7a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit db6a3ddb166bb53ac7929e4b5c4cad94f6fa6871 ]
@@ -25 +27,0 @@
-Cc: stable@dpdk.org
@@ -31,2 +33,2 @@
- drivers/net/tap/bpf/tap_bpf_program.c |   45 +-
- drivers/net/tap/tap_bpf_insns.h       | 2959 +++++++++++++------------
+ drivers/net/tap/tap_bpf_insns.h   | 2959 +++++++++++++++--------------
+ drivers/net/tap/tap_bpf_program.c |   45 +-
@@ -35,85 +36,0 @@
-diff --git a/drivers/net/tap/bpf/tap_bpf_program.c b/drivers/net/tap/bpf/tap_bpf_program.c
-index d65021d8a1..f05aed021c 100644
---- a/drivers/net/tap/bpf/tap_bpf_program.c
-+++ b/drivers/net/tap/bpf/tap_bpf_program.c
-@@ -133,6 +133,8 @@ rss_l3_l4(struct __sk_buff *skb)
- 	__u8 *key = 0;
- 	__u32 len;
- 	__u32 queue = 0;
-+	bool mf = 0;
-+	__u16 frag_off = 0;
- 
- 	rsskey = map_lookup_elem(&map_keys, &key_idx);
- 	if (!rsskey) {
-@@ -157,6 +159,8 @@ rss_l3_l4(struct __sk_buff *skb)
- 			return TC_ACT_OK;
- 
- 		__u8 *src_dst_addr = data + off + offsetof(struct iphdr, saddr);
-+		__u8 *frag_off_addr = data + off + offsetof(struct iphdr, frag_off);
-+		__u8 *prot_addr = data + off + offsetof(struct iphdr, protocol);
- 		__u8 *src_dst_port = data + off + sizeof(struct iphdr);
- 		struct ipv4_l3_l4_tuple v4_tuple = {
- 			.src_addr = IPv4(*(src_dst_addr + 0),
-@@ -167,11 +171,25 @@ rss_l3_l4(struct __sk_buff *skb)
- 					*(src_dst_addr + 5),
- 					*(src_dst_addr + 6),
- 					*(src_dst_addr + 7)),
--			.sport = PORT(*(src_dst_port + 0),
--					*(src_dst_port + 1)),
--			.dport = PORT(*(src_dst_port + 2),
--					*(src_dst_port + 3)),
-+			.sport = 0,
-+			.dport = 0,
- 		};
-+		/** Fetch the L4-payer port numbers only in-case of TCP/UDP
-+		 ** and also if the packet is not fragmented. Since fragmented
-+		 ** chunks do not have L4 TCP/UDP header.
-+		 **/
-+		if (*prot_addr == IPPROTO_UDP || *prot_addr == IPPROTO_TCP) {
-+			frag_off = PORT(*(frag_off_addr + 0),
-+					*(frag_off_addr + 1));
-+			mf = frag_off & 0x2000;
-+			frag_off = frag_off & 0x1fff;
-+			if (mf == 0 && frag_off == 0) {
-+				v4_tuple.sport = PORT(*(src_dst_port + 0),
-+						*(src_dst_port + 1));
-+				v4_tuple.dport = PORT(*(src_dst_port + 2),
-+						*(src_dst_port + 3));
-+			}
-+		}
- 		__u8 input_len = sizeof(v4_tuple) / sizeof(__u32);
- 		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV4_L3))
- 			input_len--;
-@@ -184,6 +202,9 @@ rss_l3_l4(struct __sk_buff *skb)
- 					offsetof(struct ipv6hdr, saddr);
- 		__u8 *src_dst_port = data + off +
- 					sizeof(struct ipv6hdr);
-+		__u8 *next_hdr = data + off +
-+					offsetof(struct ipv6hdr, nexthdr);
-+
- 		struct ipv6_l3_l4_tuple v6_tuple;
- 		for (j = 0; j < 4; j++)
- 			*((uint32_t *)&v6_tuple.src_addr + j) =
-@@ -193,10 +214,18 @@ rss_l3_l4(struct __sk_buff *skb)
- 			*((uint32_t *)&v6_tuple.dst_addr + j) =
- 				__builtin_bswap32(*((uint32_t *)
- 						src_dst_addr + 4 + j));
--		v6_tuple.sport = PORT(*(src_dst_port + 0),
--			      *(src_dst_port + 1));
--		v6_tuple.dport = PORT(*(src_dst_port + 2),
--			      *(src_dst_port + 3));
-+
-+		/** Fetch the L4 header port-numbers only if next-header
-+		 * is TCP/UDP **/
-+		if (*next_hdr == IPPROTO_UDP || *next_hdr == IPPROTO_TCP) {
-+			v6_tuple.sport = PORT(*(src_dst_port + 0),
-+				      *(src_dst_port + 1));
-+			v6_tuple.dport = PORT(*(src_dst_port + 2),
-+				      *(src_dst_port + 3));
-+		} else {
-+			v6_tuple.sport = 0;
-+			v6_tuple.dport = 0;
-+		}
- 
- 		__u8 input_len = sizeof(v6_tuple) / sizeof(__u32);
- 		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV6_L3))
@@ -3295,0 +3213,85 @@
+diff --git a/drivers/net/tap/tap_bpf_program.c b/drivers/net/tap/tap_bpf_program.c
+index 20c310e5e7..d9bb65831a 100644
+--- a/drivers/net/tap/tap_bpf_program.c
++++ b/drivers/net/tap/tap_bpf_program.c
+@@ -131,6 +131,8 @@ rss_l3_l4(struct __sk_buff *skb)
+ 	__u8 *key = 0;
+ 	__u32 len;
+ 	__u32 queue = 0;
++	bool mf = 0;
++	__u16 frag_off = 0;
+ 
+ 	rsskey = map_lookup_elem(&map_keys, &key_idx);
+ 	if (!rsskey) {
+@@ -155,6 +157,8 @@ rss_l3_l4(struct __sk_buff *skb)
+ 			return TC_ACT_OK;
+ 
+ 		__u8 *src_dst_addr = data + off + offsetof(struct iphdr, saddr);
++		__u8 *frag_off_addr = data + off + offsetof(struct iphdr, frag_off);
++		__u8 *prot_addr = data + off + offsetof(struct iphdr, protocol);
+ 		__u8 *src_dst_port = data + off + sizeof(struct iphdr);
+ 		struct ipv4_l3_l4_tuple v4_tuple = {
+ 			.src_addr = IPv4(*(src_dst_addr + 0),
+@@ -165,11 +169,25 @@ rss_l3_l4(struct __sk_buff *skb)
+ 					*(src_dst_addr + 5),
+ 					*(src_dst_addr + 6),
+ 					*(src_dst_addr + 7)),
+-			.sport = PORT(*(src_dst_port + 0),
+-					*(src_dst_port + 1)),
+-			.dport = PORT(*(src_dst_port + 2),
+-					*(src_dst_port + 3)),
++			.sport = 0,
++			.dport = 0,
+ 		};
++		/** Fetch the L4-payer port numbers only in-case of TCP/UDP
++		 ** and also if the packet is not fragmented. Since fragmented
++		 ** chunks do not have L4 TCP/UDP header.
++		 **/
++		if (*prot_addr == IPPROTO_UDP || *prot_addr == IPPROTO_TCP) {
++			frag_off = PORT(*(frag_off_addr + 0),
++					*(frag_off_addr + 1));
++			mf = frag_off & 0x2000;
++			frag_off = frag_off & 0x1fff;
++			if (mf == 0 && frag_off == 0) {
++				v4_tuple.sport = PORT(*(src_dst_port + 0),
++						*(src_dst_port + 1));
++				v4_tuple.dport = PORT(*(src_dst_port + 2),
++						*(src_dst_port + 3));
++			}
++		}
+ 		__u8 input_len = sizeof(v4_tuple) / sizeof(__u32);
+ 		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV4_L3))
+ 			input_len--;
+@@ -182,6 +200,9 @@ rss_l3_l4(struct __sk_buff *skb)
+ 					offsetof(struct ipv6hdr, saddr);
+ 		__u8 *src_dst_port = data + off +
+ 					sizeof(struct ipv6hdr);
++		__u8 *next_hdr = data + off +
++					offsetof(struct ipv6hdr, nexthdr);
++
+ 		struct ipv6_l3_l4_tuple v6_tuple;
+ 		for (j = 0; j < 4; j++)
+ 			*((uint32_t *)&v6_tuple.src_addr + j) =
+@@ -191,10 +212,18 @@ rss_l3_l4(struct __sk_buff *skb)
+ 			*((uint32_t *)&v6_tuple.dst_addr + j) =
+ 				__builtin_bswap32(*((uint32_t *)
+ 						src_dst_addr + 4 + j));
+-		v6_tuple.sport = PORT(*(src_dst_port + 0),
+-			      *(src_dst_port + 1));
+-		v6_tuple.dport = PORT(*(src_dst_port + 2),
+-			      *(src_dst_port + 3));
++
++		/** Fetch the L4 header port-numbers only if next-header
++		 * is TCP/UDP **/
++		if (*next_hdr == IPPROTO_UDP || *next_hdr == IPPROTO_TCP) {
++			v6_tuple.sport = PORT(*(src_dst_port + 0),
++				      *(src_dst_port + 1));
++			v6_tuple.dport = PORT(*(src_dst_port + 2),
++				      *(src_dst_port + 3));
++		} else {
++			v6_tuple.sport = 0;
++			v6_tuple.dport = 0;
++		}
+ 
+ 		__u8 input_len = sizeof(v6_tuple) / sizeof(__u32);
+ 		if (rsskey->hash_fields & (1 << HASH_FIELD_IPV6_L3))

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix decap action checking in sample flow' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (45 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/tap: fix RSS for fragmented packets' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix NIC flow capability query' " Xueming Li
                     ` (73 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Jiawei Wang; +Cc: Suanming Mou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=74b594dfd3c7aa431cea5f1db0527d32d4f3a9fe

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 74b594dfd3c7aa431cea5f1db0527d32d4f3a9fe Mon Sep 17 00:00:00 2001
From: Jiawei Wang <jiaweiw@nvidia.com>
Date: Wed, 11 Oct 2023 09:36:31 +0300
Subject: [PATCH] net/mlx5: fix decap action checking in sample flow
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c40023aece2ec9a7899fafecf474d7337212776e ]

This patch uses the temp variable to check the current action type,
to avoid overlap the sample action following the decap.

Fixes: 7356aec64c48 ("net/mlx5: fix mirror flow split with L3 encapsulation")

Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 942dccf518..ea0a49827f 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -5891,6 +5891,7 @@ flow_check_match_action(const struct rte_flow_action actions[],
 {
 	const struct rte_flow_action_sample *sample;
 	const struct rte_flow_action_raw_decap *decap;
+	const struct rte_flow_action *action_cur = NULL;
 	int actions_n = 0;
 	uint32_t ratio = 0;
 	int sub_type = 0;
@@ -5951,12 +5952,12 @@ flow_check_match_action(const struct rte_flow_action actions[],
 			break;
 		case RTE_FLOW_ACTION_TYPE_RAW_DECAP:
 			decap = actions->conf;
-			while ((++actions)->type == RTE_FLOW_ACTION_TYPE_VOID)
+			action_cur = actions;
+			while ((++action_cur)->type == RTE_FLOW_ACTION_TYPE_VOID)
 				;
-			actions_n++;
-			if (actions->type == RTE_FLOW_ACTION_TYPE_RAW_ENCAP) {
+			if (action_cur->type == RTE_FLOW_ACTION_TYPE_RAW_ENCAP) {
 				const struct rte_flow_action_raw_encap *encap =
-								actions->conf;
+								action_cur->conf;
 				if (decap->size <=
 					MLX5_ENCAPSULATION_DECISION_SIZE &&
 				    encap->size >
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.658756900 +0800
+++ 0047-net-mlx5-fix-decap-action-checking-in-sample-flow.patch	2023-12-11 17:56:22.997652300 +0800
@@ -1 +1 @@
-From c40023aece2ec9a7899fafecf474d7337212776e Mon Sep 17 00:00:00 2001
+From 74b594dfd3c7aa431cea5f1db0527d32d4f3a9fe Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c40023aece2ec9a7899fafecf474d7337212776e ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 8ad85e6027..772f6afb66 100644
+index 942dccf518..ea0a49827f 100644
@@ -22 +24 @@
-@@ -6159,6 +6159,7 @@ flow_check_match_action(const struct rte_flow_action actions[],
+@@ -5891,6 +5891,7 @@ flow_check_match_action(const struct rte_flow_action actions[],
@@ -30 +32 @@
-@@ -6219,12 +6220,12 @@ flow_check_match_action(const struct rte_flow_action actions[],
+@@ -5951,12 +5952,12 @@ flow_check_match_action(const struct rte_flow_action actions[],

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix NIC flow capability query' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (46 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix decap action checking in sample flow' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix E-Switch mirror flow rule validation' " Xueming Li
                     ` (72 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Ori Kam; +Cc: Dariusz Sosnowski, Suanming Mou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=a908d0cb5bccbb73972f33ecab8c9db63916f157

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a908d0cb5bccbb73972f33ecab8c9db63916f157 Mon Sep 17 00:00:00 2001
From: Ori Kam <orika@nvidia.com>
Date: Sun, 29 Oct 2023 20:22:58 +0200
Subject: [PATCH] net/mlx5: fix NIC flow capability query
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit d3ed65675362b2fb0a644f642e2e8eb40830bac1 ]

Add query for nic flow table support bit.

Fixes: 5f44fb1958e5 ("common/mlx5: query capability of registers")

Signed-off-by: Ori Kam <orika@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
 drivers/common/mlx5/mlx5_devx_cmds.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c
index 5ae2627caa..9fdca2fecc 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.c
+++ b/drivers/common/mlx5/mlx5_devx_cmds.c
@@ -1003,6 +1003,7 @@ mlx5_devx_cmd_query_hca_attr(void *ctx,
 			      MLX5_GENERAL_OBJ_TYPES_CAP_CONN_TRACK_OFFLOAD);
 	attr->rq_delay_drop = MLX5_GET(cmd_hca_cap, hcattr, rq_delay_drop);
 	attr->nic_flow_table = MLX5_GET(cmd_hca_cap, hcattr, nic_flow_table);
+	attr->nic_flow_table = MLX5_GET(cmd_hca_cap, hcattr, nic_flow_table);
 	attr->max_flow_counter_15_0 = MLX5_GET(cmd_hca_cap, hcattr,
 			max_flow_counter_15_0);
 	attr->max_flow_counter_31_16 = MLX5_GET(cmd_hca_cap, hcattr,
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.703587800 +0800
+++ 0048-net-mlx5-fix-NIC-flow-capability-query.patch	2023-12-11 17:56:22.997652300 +0800
@@ -1 +1 @@
-From d3ed65675362b2fb0a644f642e2e8eb40830bac1 Mon Sep 17 00:00:00 2001
+From a908d0cb5bccbb73972f33ecab8c9db63916f157 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d3ed65675362b2fb0a644f642e2e8eb40830bac1 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index ff2d6d10b7..3afb2e9f80 100644
+index 5ae2627caa..9fdca2fecc 100644
@@ -22,4 +24,4 @@
-@@ -1082,6 +1082,7 @@ mlx5_devx_cmd_query_hca_attr(void *ctx,
- 	attr->striding_rq = MLX5_GET(cmd_hca_cap, hcattr, striding_rq);
- 	attr->ext_stride_num_range =
- 		MLX5_GET(cmd_hca_cap, hcattr, ext_stride_num_range);
+@@ -1003,6 +1003,7 @@ mlx5_devx_cmd_query_hca_attr(void *ctx,
+ 			      MLX5_GENERAL_OBJ_TYPES_CAP_CONN_TRACK_OFFLOAD);
+ 	attr->rq_delay_drop = MLX5_GET(cmd_hca_cap, hcattr, rq_delay_drop);
+ 	attr->nic_flow_table = MLX5_GET(cmd_hca_cap, hcattr, nic_flow_table);

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix E-Switch mirror flow rule validation' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (47 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix NIC flow capability query' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix flow thread safety flag for HWS' " Xueming Li
                     ` (71 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Jiawei Wang; +Cc: Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=b57dd69e61625ccbc4eb5a99caa286b39b663c14

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b57dd69e61625ccbc4eb5a99caa286b39b663c14 Mon Sep 17 00:00:00 2001
From: Jiawei Wang <jiaweiw@nvidia.com>
Date: Wed, 11 Oct 2023 09:43:19 +0300
Subject: [PATCH] net/mlx5: fix E-Switch mirror flow rule validation
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a8697f50f50f35b2078c78b2d9ea84f78a0f325e ]

The port action and jump to flow table action are not supported
in the mirror flows (RTE_FLOW_ACTION_TYPE_SAMPLE with sample ratio=1)
in E-Switch domain (transfer attribute set) without presented encap
action.

The encap action is supported for uplink port only. So, if flow with
mirroring contains  encap action application should provide encap
and uplink port actions in the mirror action list and PMD validates
this condition (to make sure we cover the hardware limitation).

This patch adds the validation for E-Switch mirror flow rule checking
and rejects as invalid.

Fixes: 6a951567c159 ("net/mlx5: support E-Switch mirroring and jump in one flow")

Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 doc/guides/nics/mlx5.rst        |  8 ++-
 drivers/net/mlx5/mlx5_flow_dv.c | 93 +++++++++++++++++++++++++--------
 2 files changed, 77 insertions(+), 24 deletions(-)

diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 937fa5c6e0..239e297d2a 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -455,8 +455,12 @@ Limitations
     encapsulation actions.
   - For NIC Rx flow, supports ``MARK``, ``COUNT``, ``QUEUE``, ``RSS`` in the
     sample actions list.
-  - For E-Switch mirroring flow, supports ``RAW ENCAP``, ``Port ID``,
-    ``VXLAN ENCAP``, ``NVGRE ENCAP`` in the sample actions list.
+  - For E-Switch mirroring flow, supports ``RAW_ENCAP``, ``PORT_ID``,
+    ``VXLAN_ENCAP``, ``NVGRE_ENCAP`` in the sample actions list.
+  - For E-Switch mirroring flow with sample ratio = 1, the ``ENCAP`` action
+    supports uplink port only.
+  - For E-Switch mirroring flow with sample ratio = 1, the ``PORT`` and ``JUMP`` actions
+    are not supported without presented ``ENCAP`` action in the sample actions list.
   - For ConnectX-5 trusted device, the application metadata with SET_TAG index 0
     is not supported before ``RTE_FLOW_ACTION_TYPE_SAMPLE`` action.
 
diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 22058ed980..8ccef8e460 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -5759,6 +5759,7 @@ flow_dv_modify_clone_free_cb(void *tool_ctx, struct mlx5_list_entry *entry)
  */
 static int
 flow_dv_validate_action_sample(uint64_t *action_flags,
+			       uint64_t *sub_action_flags,
 			       const struct rte_flow_action *action,
 			       struct rte_eth_dev *dev,
 			       const struct rte_flow_attr *attr,
@@ -5767,14 +5768,15 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 			       const struct rte_flow_action_rss **sample_rss,
 			       const struct rte_flow_action_count **count,
 			       int *fdb_mirror,
+			       uint16_t *sample_port_id,
 			       bool root,
 			       struct rte_flow_error *error)
 {
 	struct mlx5_priv *priv = dev->data->dev_private;
 	struct mlx5_sh_config *dev_conf = &priv->sh->config;
 	const struct rte_flow_action_sample *sample = action->conf;
+	const struct rte_flow_action_port_id *port = NULL;
 	const struct rte_flow_action *act;
-	uint64_t sub_action_flags = 0;
 	uint16_t queue_index = 0xFFFF;
 	int actions_n = 0;
 	int ret;
@@ -5821,20 +5823,20 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 		switch (act->type) {
 		case RTE_FLOW_ACTION_TYPE_QUEUE:
 			ret = mlx5_flow_validate_action_queue(act,
-							      sub_action_flags,
+							      *sub_action_flags,
 							      dev,
 							      attr, error);
 			if (ret < 0)
 				return ret;
 			queue_index = ((const struct rte_flow_action_queue *)
 							(act->conf))->index;
-			sub_action_flags |= MLX5_FLOW_ACTION_QUEUE;
+			*sub_action_flags |= MLX5_FLOW_ACTION_QUEUE;
 			++actions_n;
 			break;
 		case RTE_FLOW_ACTION_TYPE_RSS:
 			*sample_rss = act->conf;
 			ret = mlx5_flow_validate_action_rss(act,
-							    sub_action_flags,
+							    *sub_action_flags,
 							    dev, attr,
 							    item_flags,
 							    error);
@@ -5850,48 +5852,57 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 					"or level in the same flow");
 			if (*sample_rss != NULL && (*sample_rss)->queue_num)
 				queue_index = (*sample_rss)->queue[0];
-			sub_action_flags |= MLX5_FLOW_ACTION_RSS;
+			*sub_action_flags |= MLX5_FLOW_ACTION_RSS;
 			++actions_n;
 			break;
 		case RTE_FLOW_ACTION_TYPE_MARK:
 			ret = flow_dv_validate_action_mark(dev, act,
-							   sub_action_flags,
+							   *sub_action_flags,
 							   attr, error);
 			if (ret < 0)
 				return ret;
 			if (dev_conf->dv_xmeta_en != MLX5_XMETA_MODE_LEGACY)
-				sub_action_flags |= MLX5_FLOW_ACTION_MARK |
+				*sub_action_flags |= MLX5_FLOW_ACTION_MARK |
 						MLX5_FLOW_ACTION_MARK_EXT;
 			else
-				sub_action_flags |= MLX5_FLOW_ACTION_MARK;
+				*sub_action_flags |= MLX5_FLOW_ACTION_MARK;
 			++actions_n;
 			break;
 		case RTE_FLOW_ACTION_TYPE_COUNT:
 			ret = flow_dv_validate_action_count
-				(dev, false, *action_flags | sub_action_flags,
+				(dev, false, *action_flags | *sub_action_flags,
 				 root, error);
 			if (ret < 0)
 				return ret;
 			*count = act->conf;
-			sub_action_flags |= MLX5_FLOW_ACTION_COUNT;
+			*sub_action_flags |= MLX5_FLOW_ACTION_COUNT;
 			*action_flags |= MLX5_FLOW_ACTION_COUNT;
 			++actions_n;
 			break;
 		case RTE_FLOW_ACTION_TYPE_PORT_ID:
 		case RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT:
 			ret = flow_dv_validate_action_port_id(dev,
-							      sub_action_flags,
+							      *sub_action_flags,
 							      act,
 							      attr,
 							      error);
 			if (ret)
 				return ret;
-			sub_action_flags |= MLX5_FLOW_ACTION_PORT_ID;
+			if (act->type == RTE_FLOW_ACTION_TYPE_PORT_ID) {
+				port = (const struct rte_flow_action_port_id *)
+					act->conf;
+				*sample_port_id = port->original ?
+						  dev->data->port_id : port->id;
+			} else {
+				*sample_port_id = ((const struct rte_flow_action_ethdev *)
+						  act->conf)->port_id;
+			}
+			*sub_action_flags |= MLX5_FLOW_ACTION_PORT_ID;
 			++actions_n;
 			break;
 		case RTE_FLOW_ACTION_TYPE_RAW_ENCAP:
 			ret = flow_dv_validate_action_raw_encap_decap
-				(dev, NULL, act->conf, attr, &sub_action_flags,
+				(dev, NULL, act->conf, attr, sub_action_flags,
 				 &actions_n, action, item_flags, error);
 			if (ret < 0)
 				return ret;
@@ -5900,12 +5911,12 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 		case RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP:
 		case RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP:
 			ret = flow_dv_validate_action_l2_encap(dev,
-							       sub_action_flags,
+							       *sub_action_flags,
 							       act, attr,
 							       error);
 			if (ret < 0)
 				return ret;
-			sub_action_flags |= MLX5_FLOW_ACTION_ENCAP;
+			*sub_action_flags |= MLX5_FLOW_ACTION_ENCAP;
 			++actions_n;
 			break;
 		default:
@@ -5917,7 +5928,7 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 		}
 	}
 	if (attr->ingress) {
-		if (!(sub_action_flags & (MLX5_FLOW_ACTION_QUEUE |
+		if (!(*sub_action_flags & (MLX5_FLOW_ACTION_QUEUE |
 					  MLX5_FLOW_ACTION_RSS)))
 			return rte_flow_error_set(error, EINVAL,
 						  RTE_FLOW_ERROR_TYPE_ACTION,
@@ -5939,17 +5950,17 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 						  "E-Switch doesn't support "
 						  "any optional action "
 						  "for sampling");
-		if (sub_action_flags & MLX5_FLOW_ACTION_QUEUE)
+		if (*sub_action_flags & MLX5_FLOW_ACTION_QUEUE)
 			return rte_flow_error_set(error, ENOTSUP,
 						  RTE_FLOW_ERROR_TYPE_ACTION,
 						  NULL,
 						  "unsupported action QUEUE");
-		if (sub_action_flags & MLX5_FLOW_ACTION_RSS)
+		if (*sub_action_flags & MLX5_FLOW_ACTION_RSS)
 			return rte_flow_error_set(error, ENOTSUP,
 						  RTE_FLOW_ERROR_TYPE_ACTION,
 						  NULL,
 						  "unsupported action QUEUE");
-		if (!(sub_action_flags & MLX5_FLOW_ACTION_PORT_ID))
+		if (!(*sub_action_flags & MLX5_FLOW_ACTION_PORT_ID))
 			return rte_flow_error_set(error, EINVAL,
 						  RTE_FLOW_ERROR_TYPE_ACTION,
 						  NULL,
@@ -5958,16 +5969,16 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
 		*fdb_mirror = 1;
 	}
 	/* Continue validation for Xcap actions.*/
-	if ((sub_action_flags & MLX5_FLOW_XCAP_ACTIONS) &&
+	if ((*sub_action_flags & MLX5_FLOW_XCAP_ACTIONS) &&
 	    (queue_index == 0xFFFF || !mlx5_rxq_is_hairpin(dev, queue_index))) {
-		if ((sub_action_flags & MLX5_FLOW_XCAP_ACTIONS) ==
+		if ((*sub_action_flags & MLX5_FLOW_XCAP_ACTIONS) ==
 		     MLX5_FLOW_XCAP_ACTIONS)
 			return rte_flow_error_set(error, ENOTSUP,
 						  RTE_FLOW_ERROR_TYPE_ACTION,
 						  NULL, "encap and decap "
 						  "combination aren't "
 						  "supported");
-		if (attr->ingress && (sub_action_flags & MLX5_FLOW_ACTION_ENCAP))
+		if (attr->ingress && (*sub_action_flags & MLX5_FLOW_ACTION_ENCAP))
 			return rte_flow_error_set(error, ENOTSUP,
 						  RTE_FLOW_ERROR_TYPE_ACTION,
 						  NULL, "encap is not supported"
@@ -7063,9 +7074,14 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 	uint32_t tag_id = 0, tag_bitmap = 0;
 	const struct rte_flow_action_age *non_shared_age = NULL;
 	const struct rte_flow_action_count *count = NULL;
+	const struct rte_flow_action_port_id *port = NULL;
 	const struct mlx5_rte_flow_item_tag *mlx5_tag;
 	struct mlx5_priv *act_priv = NULL;
 	int aso_after_sample = 0;
+	struct mlx5_priv *port_priv = NULL;
+	uint64_t sub_action_flags = 0;
+	uint16_t sample_port_id = 0;
+	uint16_t port_id = 0;
 
 	if (items == NULL)
 		return -1;
@@ -7503,6 +7519,14 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 							      error);
 			if (ret)
 				return ret;
+			if (type == RTE_FLOW_ACTION_TYPE_PORT_ID) {
+				port = (const struct rte_flow_action_port_id *)
+					actions->conf;
+				port_id = port->original ? dev->data->port_id : port->id;
+			} else {
+				port_id = ((const struct rte_flow_action_ethdev *)
+					actions->conf)->port_id;
+			}
 			action_flags |= MLX5_FLOW_ACTION_PORT_ID;
 			++actions_n;
 			break;
@@ -8002,11 +8026,13 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 			break;
 		case RTE_FLOW_ACTION_TYPE_SAMPLE:
 			ret = flow_dv_validate_action_sample(&action_flags,
+							     &sub_action_flags,
 							     actions, dev,
 							     attr, item_flags,
 							     rss, &sample_rss,
 							     &sample_count,
 							     &fdb_mirror,
+							     &sample_port_id,
 							     is_root,
 							     error);
 			if (ret < 0)
@@ -8318,6 +8344,29 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 			return rte_flow_error_set(error, ENOTSUP,
 						  RTE_FLOW_ERROR_TYPE_ACTION, NULL,
 						  "sample before ASO action is not supported");
+		if (sub_action_flags & MLX5_FLOW_ACTION_PORT_ID) {
+			port_priv = mlx5_port_to_eswitch_info(sample_port_id, false);
+			if (flow_source_vport_representor(priv, port_priv)) {
+				if (sub_action_flags & MLX5_FLOW_ACTION_ENCAP)
+					return rte_flow_error_set(error, ENOTSUP,
+								RTE_FLOW_ERROR_TYPE_ACTION, NULL,
+								"mirror to rep port with encap is not supported");
+			} else {
+				if ((sub_action_flags & ~MLX5_FLOW_ACTION_ENCAP) &&
+				    (action_flags & MLX5_FLOW_ACTION_JUMP))
+					return rte_flow_error_set(error, ENOTSUP,
+								RTE_FLOW_ERROR_TYPE_ACTION, NULL,
+								"mirror to wire port without encap is not supported");
+			}
+		}
+		if ((action_flags & MLX5_FLOW_ACTION_PORT_ID) &&
+		    (action_flags & MLX5_FLOW_ACTION_ENCAP)) {
+			port_priv = mlx5_port_to_eswitch_info(port_id, false);
+			if (flow_source_vport_representor(priv, port_priv))
+				return rte_flow_error_set(error, ENOTSUP,
+							RTE_FLOW_ERROR_TYPE_ACTION, NULL,
+							"mirror to rep port with encap is not supported");
+		}
 	}
 	/*
 	 * Validation the NIC Egress flow on representor, except implicit
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.731947300 +0800
+++ 0049-net-mlx5-fix-E-Switch-mirror-flow-rule-validation.patch	2023-12-11 17:56:23.017652300 +0800
@@ -1 +1 @@
-From a8697f50f50f35b2078c78b2d9ea84f78a0f325e Mon Sep 17 00:00:00 2001
+From b57dd69e61625ccbc4eb5a99caa286b39b663c14 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a8697f50f50f35b2078c78b2d9ea84f78a0f325e ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org
@@ -30 +32 @@
-index 5d64ad8810..4b3680ab32 100644
+index 937fa5c6e0..239e297d2a 100644
@@ -33 +35 @@
-@@ -543,8 +543,12 @@ Limitations
+@@ -455,8 +455,12 @@ Limitations
@@ -49 +51 @@
-index bdc8d0076a..80ad7cd206 100644
+index 22058ed980..8ccef8e460 100644
@@ -52 +54 @@
-@@ -6035,6 +6035,7 @@ flow_dv_modify_clone_free_cb(void *tool_ctx, struct mlx5_list_entry *entry)
+@@ -5759,6 +5759,7 @@ flow_dv_modify_clone_free_cb(void *tool_ctx, struct mlx5_list_entry *entry)
@@ -60 +62 @@
-@@ -6043,14 +6044,15 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5767,14 +5768,15 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -77 +79 @@
-@@ -6097,20 +6099,20 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5821,20 +5823,20 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -101 +103 @@
-@@ -6126,48 +6128,57 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5850,48 +5852,57 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -168 +170 @@
-@@ -6176,12 +6187,12 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5900,12 +5911,12 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -183 +185 @@
-@@ -6193,7 +6204,7 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5917,7 +5928,7 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -192 +194 @@
-@@ -6215,17 +6226,17 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5939,17 +5950,17 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -213 +215 @@
-@@ -6234,16 +6245,16 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
+@@ -5958,16 +5969,16 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
@@ -233 +235 @@
-@@ -7398,9 +7409,14 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7063,9 +7074,14 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -248 +250 @@
-@@ -7870,6 +7886,14 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -7503,6 +7519,14 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -263 +265 @@
-@@ -8369,11 +8393,13 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -8002,11 +8026,13 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
@@ -277 +279 @@
-@@ -8686,6 +8712,29 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -8318,6 +8344,29 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix flow thread safety flag for HWS' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (48 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix E-Switch mirror flow rule validation' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5/hws: fix integrity bits level' " Xueming Li
                     ` (70 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Suanming Mou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=815a8ce0676466e10341db5c7d3950a05c7f0673

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 815a8ce0676466e10341db5c7d3950a05c7f0673 Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Mon, 23 Oct 2023 13:23:02 +0300
Subject: [PATCH] net/mlx5: fix flow thread safety flag for HWS
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit df26aa6e1ffc16d38424634b6fd83093eaa7abdf ]

When mlx5 port was configured with HW Steering flow engine
(devarg dv_flow_en set to 2), PMD did not set
RTE_ETH_DEV_FLOW_OPS_THREAD_SAFE in device flags.
This caused certain flow API calls, such as rte_flow_query(),
to obtain a port-wide lock, which is not needed.

This patch adds missing code for setting this flag.

Fixes: d84c3cf7662c ("net/mlx5: introduce hardware steering enable routine")

Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
 drivers/net/mlx5/linux/mlx5_os.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c
index 6fdade7dab..438b832a40 100644
--- a/drivers/net/mlx5/linux/mlx5_os.c
+++ b/drivers/net/mlx5/linux/mlx5_os.c
@@ -1629,6 +1629,7 @@ err_secondary:
 					 "matching is disabled",
 				eth_dev->data->port_id);
 		}
+		eth_dev->data->dev_flags |= RTE_ETH_DEV_FLOW_OPS_THREAD_SAFE;
 		return eth_dev;
 #else
 		DRV_LOG(ERR, "DV support is missing for HWS.");
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.775823000 +0800
+++ 0050-net-mlx5-fix-flow-thread-safety-flag-for-HWS.patch	2023-12-11 17:56:23.017652300 +0800
@@ -1 +1 @@
-From df26aa6e1ffc16d38424634b6fd83093eaa7abdf Mon Sep 17 00:00:00 2001
+From 815a8ce0676466e10341db5c7d3950a05c7f0673 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit df26aa6e1ffc16d38424634b6fd83093eaa7abdf ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 2e501bf4ec..2f08f2354e 100644
+index 6fdade7dab..438b832a40 100644
@@ -27 +29 @@
-@@ -1614,6 +1614,7 @@ err_secondary:
+@@ -1629,6 +1629,7 @@ err_secondary:

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5/hws: fix integrity bits level' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (49 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix flow thread safety flag for HWS' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix flow workspace double free in Windows' " Xueming Li
                     ` (69 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Alexander Kozyrev; +Cc: Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=f0bc00623067e28ccd1d895a706f8f4ee7263b1e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f0bc00623067e28ccd1d895a706f8f4ee7263b1e Mon Sep 17 00:00:00 2001
From: Alexander Kozyrev <akozyrev@nvidia.com>
Date: Wed, 25 Oct 2023 23:41:01 +0300
Subject: [PATCH] net/mlx5/hws: fix integrity bits level
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 4c4e04d4e08811564c8dcc9b692343543840ca85 ]

The level field in the integrity item is not taken into account
in the current implementation of hardware steering.
Use this value instead of trying to find out the encapsulation
level according to the protocol items involved.

Fixes: c55c2bf35333 ("net/mlx5/hws: add definer layer")

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 drivers/net/mlx5/hws/mlx5dr_definer.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c
index 24bab9518b..6fc5d70f67 100644
--- a/drivers/net/mlx5/hws/mlx5dr_definer.c
+++ b/drivers/net/mlx5/hws/mlx5dr_definer.c
@@ -1328,7 +1328,6 @@ mlx5dr_definer_conv_item_integrity(struct mlx5dr_definer_conv_data *cd,
 {
 	const struct rte_flow_item_integrity *m = item->mask;
 	struct mlx5dr_definer_fc *fc;
-	bool inner = cd->tunnel;
 
 	if (!m)
 		return 0;
@@ -1339,7 +1338,7 @@ mlx5dr_definer_conv_item_integrity(struct mlx5dr_definer_conv_data *cd,
 	}
 
 	if (m->l3_ok || m->ipv4_csum_ok || m->l4_ok || m->l4_csum_ok) {
-		fc = &cd->fc[DR_CALC_FNAME(INTEGRITY, inner)];
+		fc = &cd->fc[DR_CALC_FNAME(INTEGRITY, m->level)];
 		fc->item_idx = item_idx;
 		fc->tag_set = &mlx5dr_definer_integrity_set;
 		DR_CALC_SET_HDR(fc, oks1, oks1_bits);
@@ -1569,8 +1568,7 @@ mlx5dr_definer_conv_items_to_hl(struct mlx5dr_context *ctx,
 			break;
 		case RTE_FLOW_ITEM_TYPE_INTEGRITY:
 			ret = mlx5dr_definer_conv_item_integrity(&cd, items, i);
-			item_flags |= cd.tunnel ? MLX5_FLOW_ITEM_INNER_INTEGRITY :
-						  MLX5_FLOW_ITEM_OUTER_INTEGRITY;
+			item_flags |= MLX5_FLOW_ITEM_INTEGRITY;
 			break;
 		case RTE_FLOW_ITEM_TYPE_CONNTRACK:
 			ret = mlx5dr_definer_conv_item_conntrack(&cd, items, i);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.802705900 +0800
+++ 0051-net-mlx5-hws-fix-integrity-bits-level.patch	2023-12-11 17:56:23.027652300 +0800
@@ -1 +1 @@
-From 4c4e04d4e08811564c8dcc9b692343543840ca85 Mon Sep 17 00:00:00 2001
+From f0bc00623067e28ccd1d895a706f8f4ee7263b1e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4c4e04d4e08811564c8dcc9b692343543840ca85 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 7cd563dccd..7dffbfb9b9 100644
+index 24bab9518b..6fc5d70f67 100644
@@ -24 +26 @@
-@@ -1909,7 +1909,6 @@ mlx5dr_definer_conv_item_integrity(struct mlx5dr_definer_conv_data *cd,
+@@ -1328,7 +1328,6 @@ mlx5dr_definer_conv_item_integrity(struct mlx5dr_definer_conv_data *cd,
@@ -32 +34 @@
-@@ -1920,7 +1919,7 @@ mlx5dr_definer_conv_item_integrity(struct mlx5dr_definer_conv_data *cd,
+@@ -1339,7 +1338,7 @@ mlx5dr_definer_conv_item_integrity(struct mlx5dr_definer_conv_data *cd,
@@ -41 +43 @@
-@@ -2477,8 +2476,7 @@ mlx5dr_definer_conv_items_to_hl(struct mlx5dr_context *ctx,
+@@ -1569,8 +1568,7 @@ mlx5dr_definer_conv_items_to_hl(struct mlx5dr_context *ctx,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix flow workspace double free in Windows' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (50 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5/hws: fix integrity bits level' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'common/mlx5: fix controller index parsing' " Xueming Li
                     ` (68 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Bing Zhao; +Cc: Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=72ab4bf42fac40554a582226ffbb56b02746147f

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 72ab4bf42fac40554a582226ffbb56b02746147f Mon Sep 17 00:00:00 2001
From: Bing Zhao <bingz@nvidia.com>
Date: Thu, 26 Oct 2023 12:14:47 +0300
Subject: [PATCH] net/mlx5: fix flow workspace double free in Windows
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 2ece3b7186b9d22209ac1845f794b91185575a23 ]

The thread specific variable workspace indicated by "key_workspace"
should be freed explicitly when closing a device. For example, in
Linux, when exiting an application, the thread will not exit
explicitly and the thread resources will not be deconstructed.

The commit to solve this introduced a global list to manage the
workspace resources as a garbage collector. It will also be executed
in Windows, but the workspaces have already been freed in the
function mlx5_flow_os_release_workspace().

With this commit, the garbage collector will only be executed in
Linux. The workspace resources management in Windows will remain
the same with some stub function when needed.

Fixes: dc7c5e0aa905 ("net/mlx5: fix flow workspace destruction")

Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/net/mlx5/linux/mlx5_flow_os.c   | 25 +++++++++++++++++++++++++
 drivers/net/mlx5/linux/mlx5_flow_os.h   |  8 ++++++++
 drivers/net/mlx5/mlx5.c                 |  1 -
 drivers/net/mlx5/mlx5_flow.c            | 25 +------------------------
 drivers/net/mlx5/mlx5_flow.h            |  1 -
 drivers/net/mlx5/windows/mlx5_flow_os.c |  6 ++++++
 drivers/net/mlx5/windows/mlx5_flow_os.h |  8 ++++++++
 7 files changed, 48 insertions(+), 26 deletions(-)

diff --git a/drivers/net/mlx5/linux/mlx5_flow_os.c b/drivers/net/mlx5/linux/mlx5_flow_os.c
index b139bb75b9..2767b11708 100644
--- a/drivers/net/mlx5/linux/mlx5_flow_os.c
+++ b/drivers/net/mlx5/linux/mlx5_flow_os.c
@@ -8,6 +8,10 @@
 
 /* Key of thread specific flow workspace data. */
 static rte_thread_key key_workspace;
+/* Flow workspace global list head for garbage collector. */
+static struct mlx5_flow_workspace *gc_head;
+/* Spinlock for operating flow workspace list. */
+static rte_spinlock_t mlx5_flow_workspace_lock = RTE_SPINLOCK_INITIALIZER;
 
 int
 mlx5_flow_os_validate_item_esp(const struct rte_flow_item *item,
@@ -48,6 +52,26 @@ mlx5_flow_os_validate_item_esp(const struct rte_flow_item *item,
 	return 0;
 }
 
+void
+mlx5_flow_os_workspace_gc_add(struct mlx5_flow_workspace *ws)
+{
+	rte_spinlock_lock(&mlx5_flow_workspace_lock);
+	ws->gc = gc_head;
+	gc_head = ws;
+	rte_spinlock_unlock(&mlx5_flow_workspace_lock);
+}
+
+static void
+mlx5_flow_os_workspace_gc_release(void)
+{
+	while (gc_head) {
+		struct mlx5_flow_workspace *wks = gc_head;
+
+		gc_head = wks->gc;
+		flow_release_workspace(wks);
+	}
+}
+
 int
 mlx5_flow_os_init_workspace_once(void)
 {
@@ -75,4 +99,5 @@ void
 mlx5_flow_os_release_workspace(void)
 {
 	rte_thread_key_delete(key_workspace);
+	mlx5_flow_os_workspace_gc_release();
 }
diff --git a/drivers/net/mlx5/linux/mlx5_flow_os.h b/drivers/net/mlx5/linux/mlx5_flow_os.h
index ed71289322..3f7a94c9ee 100644
--- a/drivers/net/mlx5/linux/mlx5_flow_os.h
+++ b/drivers/net/mlx5/linux/mlx5_flow_os.h
@@ -526,4 +526,12 @@ mlx5_flow_os_validate_item_esp(const struct rte_flow_item *item,
 			    uint8_t target_protocol,
 			    struct rte_flow_error *error);
 
+/**
+ * Add per thread workspace to the global list for garbage collection.
+ *
+ * @param[in] ws
+ *   Pointer to the flow workspace.
+ */
+void mlx5_flow_os_workspace_gc_add(struct mlx5_flow_workspace *ws);
+
 #endif /* RTE_PMD_MLX5_FLOW_OS_H_ */
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index f787ae91fe..1dfd10e7cb 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -1743,7 +1743,6 @@ mlx5_free_shared_dev_ctx(struct mlx5_dev_ctx_shared *sh)
 	if (LIST_EMPTY(&mlx5_dev_ctx_list)) {
 		mlx5_os_net_cleanup();
 		mlx5_flow_os_release_workspace();
-		mlx5_flow_workspace_gc_release();
 	}
 	pthread_mutex_unlock(&mlx5_dev_ctx_list_mutex);
 	if (sh->flex_parsers_dv) {
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index ea0a49827f..01b463adec 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -7544,29 +7544,6 @@ flow_release_workspace(void *data)
 	}
 }
 
-static struct mlx5_flow_workspace *gc_head;
-static rte_spinlock_t mlx5_flow_workspace_lock = RTE_SPINLOCK_INITIALIZER;
-
-static void
-mlx5_flow_workspace_gc_add(struct mlx5_flow_workspace *ws)
-{
-	rte_spinlock_lock(&mlx5_flow_workspace_lock);
-	ws->gc = gc_head;
-	gc_head = ws;
-	rte_spinlock_unlock(&mlx5_flow_workspace_lock);
-}
-
-void
-mlx5_flow_workspace_gc_release(void)
-{
-	while (gc_head) {
-		struct mlx5_flow_workspace *wks = gc_head;
-
-		gc_head = wks->gc;
-		flow_release_workspace(wks);
-	}
-}
-
 /**
  * Get thread specific current flow workspace.
  *
@@ -7623,7 +7600,7 @@ mlx5_flow_push_thread_workspace(void)
 		data = flow_alloc_thread_workspace();
 		if (!data)
 			return NULL;
-		mlx5_flow_workspace_gc_add(data);
+		mlx5_flow_os_workspace_gc_add(data);
 	} else if (!curr->inuse) {
 		data = curr;
 	} else if (curr->next) {
diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h
index 9724b88996..52edc4c961 100644
--- a/drivers/net/mlx5/mlx5_flow.h
+++ b/drivers/net/mlx5/mlx5_flow.h
@@ -1926,7 +1926,6 @@ struct mlx5_flow_driver_ops {
 struct mlx5_flow_workspace *mlx5_flow_push_thread_workspace(void);
 void mlx5_flow_pop_thread_workspace(void);
 struct mlx5_flow_workspace *mlx5_flow_get_thread_workspace(void);
-void mlx5_flow_workspace_gc_release(void);
 
 __extension__
 struct flow_grp_info {
diff --git a/drivers/net/mlx5/windows/mlx5_flow_os.c b/drivers/net/mlx5/windows/mlx5_flow_os.c
index 5013e9f012..f907b21ecc 100644
--- a/drivers/net/mlx5/windows/mlx5_flow_os.c
+++ b/drivers/net/mlx5/windows/mlx5_flow_os.c
@@ -417,6 +417,12 @@ mlx5_flow_os_set_specific_workspace(struct mlx5_flow_workspace *data)
 	return err;
 }
 
+void
+mlx5_flow_os_workspace_gc_add(struct mlx5_flow_workspace *ws)
+{
+	RTE_SET_USED(ws);
+}
+
 int
 mlx5_flow_os_validate_item_esp(const struct rte_flow_item *item,
 			    uint64_t item_flags,
diff --git a/drivers/net/mlx5/windows/mlx5_flow_os.h b/drivers/net/mlx5/windows/mlx5_flow_os.h
index 1c1c17fc41..856d8ba948 100644
--- a/drivers/net/mlx5/windows/mlx5_flow_os.h
+++ b/drivers/net/mlx5/windows/mlx5_flow_os.h
@@ -473,4 +473,12 @@ mlx5_flow_os_validate_item_esp(const struct rte_flow_item *item,
 			    uint8_t target_protocol,
 			    struct rte_flow_error *error);
 
+/**
+ * Add per thread workspace to the global list for garbage collection.
+ *
+ * @param[in] ws
+ *   Pointer to the flow workspace.
+ */
+void mlx5_flow_os_workspace_gc_add(struct mlx5_flow_workspace *ws);
+
 #endif /* RTE_PMD_MLX5_FLOW_OS_H_ */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.828112800 +0800
+++ 0052-net-mlx5-fix-flow-workspace-double-free-in-Windows.patch	2023-12-11 17:56:23.037652300 +0800
@@ -1 +1 @@
-From 2ece3b7186b9d22209ac1845f794b91185575a23 Mon Sep 17 00:00:00 2001
+From 72ab4bf42fac40554a582226ffbb56b02746147f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 2ece3b7186b9d22209ac1845f794b91185575a23 ]
@@ -21 +23,0 @@
-Cc: stable@dpdk.org
@@ -101 +103 @@
-index 472e830eb0..66b0d1a005 100644
+index f787ae91fe..1dfd10e7cb 100644
@@ -104 +106 @@
-@@ -1926,7 +1926,6 @@ mlx5_free_shared_dev_ctx(struct mlx5_dev_ctx_shared *sh)
+@@ -1743,7 +1743,6 @@ mlx5_free_shared_dev_ctx(struct mlx5_dev_ctx_shared *sh)
@@ -113 +115 @@
-index 2d718bbe33..eb6037326f 100644
+index ea0a49827f..01b463adec 100644
@@ -116 +118 @@
-@@ -8184,29 +8184,6 @@ flow_release_workspace(void *data)
+@@ -7544,29 +7544,6 @@ flow_release_workspace(void *data)
@@ -146 +148 @@
-@@ -8263,7 +8240,7 @@ mlx5_flow_push_thread_workspace(void)
+@@ -7623,7 +7600,7 @@ mlx5_flow_push_thread_workspace(void)
@@ -156 +158 @@
-index a58866b814..f98bc74c9c 100644
+index 9724b88996..52edc4c961 100644
@@ -159 +161 @@
-@@ -2162,7 +2162,6 @@ struct mlx5_flow_driver_ops {
+@@ -1926,7 +1926,6 @@ struct mlx5_flow_driver_ops {

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/mlx5: fix controller index parsing' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (51 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix flow workspace double free in Windows' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/ice: fix L1 check interval' " Xueming Li
                     ` (67 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=f2ab72ed3dd2f47849a570e64f84dde5121c228a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f2ab72ed3dd2f47849a570e64f84dde5121c228a Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Tue, 31 Oct 2023 16:27:27 +0200
Subject: [PATCH] common/mlx5: fix controller index parsing
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3cd5e500b5cb1b72ee182be4043018f22a5f8a3b ]

When probing the Linux kernel network interfaces attached to E-Switch,
mlx5 PMD decides the representor type and represented entity
using phys_port_name exposed by the mlx5 kernel driver in sysfs.
mlx5 PMD first checks this name for multihost controller index.
In multihost scenarios, phys_port_name is prefixed with "c[0-9]+" string.
Included integer is the controller index.

Assuming that phys_port_name contains a string representing a physical
port, i.e. "p[0-9]+" string, the parsing logic is incorrect.
Both "p[0-9]+" and "c[0-9]+" match the formatting string used to parse
phys_port_name, but controller index is still filled out.

This patch fixes this behavior by storing the parsed index
in a temporary variable and setting controller index
if and only if phys_port_name matches multihost controller syntax.

Fixes: 59df97f1a832 ("common/mlx5: support sub-function representor parsing")

Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/common/mlx5/linux/mlx5_common_os.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/common/mlx5/linux/mlx5_common_os.c b/drivers/common/mlx5/linux/mlx5_common_os.c
index 7260c1a19f..41345e1597 100644
--- a/drivers/common/mlx5/linux/mlx5_common_os.c
+++ b/drivers/common/mlx5/linux/mlx5_common_os.c
@@ -96,10 +96,11 @@ mlx5_translate_port_name(const char *port_name_in,
 	char ctrl = 0, pf_c1, pf_c2, vf_c1, vf_c2, eol;
 	char *end;
 	int sc_items;
+	int32_t ctrl_num = -1;
 
-	sc_items = sscanf(port_name_in, "%c%d",
-			  &ctrl, &port_info_out->ctrl_num);
+	sc_items = sscanf(port_name_in, "%c%d", &ctrl, &ctrl_num);
 	if (sc_items == 2 && ctrl == 'c') {
+		port_info_out->ctrl_num = ctrl_num;
 		port_name_in++; /* 'c' */
 		port_name_in += snprintf(NULL, 0, "%d",
 					  port_info_out->ctrl_num);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.864978400 +0800
+++ 0053-common-mlx5-fix-controller-index-parsing.patch	2023-12-11 17:56:23.037652300 +0800
@@ -1 +1 @@
-From 3cd5e500b5cb1b72ee182be4043018f22a5f8a3b Mon Sep 17 00:00:00 2001
+From f2ab72ed3dd2f47849a570e64f84dde5121c228a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3cd5e500b5cb1b72ee182be4043018f22a5f8a3b ]
@@ -23 +25,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ice: fix L1 check interval' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (52 preceding siblings ...)
  2023-12-11 10:11   ` patch 'common/mlx5: fix controller index parsing' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/iavf: fix Tx offload mask' " Xueming Li
                     ` (66 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Timothy Miskell; +Cc: Jonathan Tsai, Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=ae7a0f62331661cbe4d7390542bdc3e3ef98eb3a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ae7a0f62331661cbe4d7390542bdc3e3ef98eb3a Mon Sep 17 00:00:00 2001
From: Timothy Miskell <timothy.miskell@intel.com>
Date: Thu, 19 Oct 2023 17:26:10 +0000
Subject: [PATCH] net/ice: fix L1 check interval
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit ff628a22c51f9cc5f69c715005a42456a2aec4f6 ]

For edge cases where the transceiver is physically inserted first and
immediately afterwards the DPDK PF is started the LSC event may occur
outside the current setting for the maximum check interval window. This
change lengthens the check interval to account for this along with other
reported cases where the link event may be longer than 1 second.

Fixes: cf911d90e366 ("net/ice: support link update")

Signed-off-by: Timothy Miskell <timothy.miskell@intel.com>
Tested-by: Jonathan Tsai <jonathan1.tsai@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 .mailmap                     | 2 ++
 drivers/net/ice/ice_ethdev.c | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/.mailmap b/.mailmap
index 7631227cd3..48267a54f2 100644
--- a/.mailmap
+++ b/.mailmap
@@ -653,6 +653,7 @@ John Romein <romein@astron.nl>
 John W. Linville <linville@tuxdriver.com>
 Jonas Pfefferle <jpf@zurich.ibm.com> <pepperjo@japf.ch>
 Jonathan Erb <jonathan.erb@threatblockr.com> <jonathan.erb@banduracyber.com>
+Jonathan Tsai <jonathan1.tsai@intel.com>
 Jon DeVree <nuxi@vault24.org>
 Jon Loeliger <jdl@netgate.com>
 Joongi Kim <joongi@an.kaist.ac.kr>
@@ -1363,6 +1364,7 @@ Tianli Lai <laitianli@tom.com>
 Tianyu Li <tianyu.li@arm.com>
 Timmons C. Player <timmons.player@spirent.com>
 Timothy McDaniel <timothy.mcdaniel@intel.com>
+Timothy Miskell <timothy.miskell@intel.com>
 Timothy Redaelli <tredaelli@redhat.com>
 Tim Shearer <tim.shearer@overturenetworks.com>
 Ting Xu <ting.xu@intel.com>
diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index b0c8e843f7..332af8eeb5 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -3956,8 +3956,8 @@ ice_atomic_write_link_status(struct rte_eth_dev *dev,
 static int
 ice_link_update(struct rte_eth_dev *dev, int wait_to_complete)
 {
-#define CHECK_INTERVAL 100  /* 100ms */
-#define MAX_REPEAT_TIME 10  /* 1s (10 * 100ms) in total */
+#define CHECK_INTERVAL 50  /* 50ms */
+#define MAX_REPEAT_TIME 40  /* 2s (40 * 50ms) in total */
 	struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct ice_link_status link_status;
 	struct rte_eth_link link, old;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.887473600 +0800
+++ 0054-net-ice-fix-L1-check-interval.patch	2023-12-11 17:56:23.047652300 +0800
@@ -1 +1 @@
-From ff628a22c51f9cc5f69c715005a42456a2aec4f6 Mon Sep 17 00:00:00 2001
+From ae7a0f62331661cbe4d7390542bdc3e3ef98eb3a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ff628a22c51f9cc5f69c715005a42456a2aec4f6 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index c0ab6d090b..d91775daf1 100644
+index 7631227cd3..48267a54f2 100644
@@ -27 +29 @@
-@@ -676,6 +676,7 @@ John Romein <romein@astron.nl>
+@@ -653,6 +653,7 @@ John Romein <romein@astron.nl>
@@ -35 +37 @@
-@@ -1417,6 +1418,7 @@ Tianli Lai <laitianli@tom.com>
+@@ -1363,6 +1364,7 @@ Tianli Lai <laitianli@tom.com>
@@ -44 +46 @@
-index 305077e74e..6ef06b9926 100644
+index b0c8e843f7..332af8eeb5 100644
@@ -47 +49 @@
-@@ -3992,8 +3992,8 @@ ice_atomic_write_link_status(struct rte_eth_dev *dev,
+@@ -3956,8 +3956,8 @@ ice_atomic_write_link_status(struct rte_eth_dev *dev,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/iavf: fix Tx offload mask' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (53 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/ice: fix L1 check interval' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/iavf: fix indent in Tx path' " Xueming Li
                     ` (65 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Radu Nicolau; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=c1c417228a78ddbfcb63616381ae839743508aed

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c1c417228a78ddbfcb63616381ae839743508aed Mon Sep 17 00:00:00 2001
From: Radu Nicolau <radu.nicolau@intel.com>
Date: Tue, 24 Oct 2023 10:13:28 +0100
Subject: [PATCH] net/iavf: fix Tx offload mask
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3295697286accac24e1014fa3c0320a0c597bc1e ]

IAVF_TX_OFFLOAD_MASK definition contained
RTE_ETH_TX_OFFLOAD_SECURITY instead of
RTE_MBUF_F_TX_SEC_OFFLOAD.

Fixes: 6bc987ecb860 ("net/iavf: support IPsec inline crypto")

Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/iavf/iavf_rxtx.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/iavf/iavf_rxtx.h b/drivers/net/iavf/iavf_rxtx.h
index 354326c235..180f7ec108 100644
--- a/drivers/net/iavf/iavf_rxtx.h
+++ b/drivers/net/iavf/iavf_rxtx.h
@@ -79,7 +79,7 @@
 		RTE_MBUF_F_TX_TUNNEL_MASK |	\
 		RTE_MBUF_F_TX_OUTER_IP_CKSUM |  \
 		RTE_MBUF_F_TX_OUTER_UDP_CKSUM | \
-		RTE_ETH_TX_OFFLOAD_SECURITY)
+		RTE_MBUF_F_TX_SEC_OFFLOAD)
 
 #define IAVF_TX_OFFLOAD_NOTSUP_MASK \
 		(RTE_MBUF_F_TX_OFFLOAD_MASK ^ IAVF_TX_OFFLOAD_MASK)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.916141500 +0800
+++ 0055-net-iavf-fix-Tx-offload-mask.patch	2023-12-11 17:56:23.047652300 +0800
@@ -1 +1 @@
-From 3295697286accac24e1014fa3c0320a0c597bc1e Mon Sep 17 00:00:00 2001
+From c1c417228a78ddbfcb63616381ae839743508aed Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3295697286accac24e1014fa3c0320a0c597bc1e ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index d3324e0e6e..f432f9d956 100644
+index 354326c235..180f7ec108 100644
@@ -23 +25 @@
-@@ -98,7 +98,7 @@
+@@ -79,7 +79,7 @@

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/iavf: fix indent in Tx path' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (54 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/iavf: fix Tx offload mask' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/iavf: fix Tx offload flags check' " Xueming Li
                     ` (64 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: David Marchand; +Cc: Radu Nicolau, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=84c1679b72ba4c5d3f21700e098385b711a083b9

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 84c1679b72ba4c5d3f21700e098385b711a083b9 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 26 Oct 2023 10:06:16 +0200
Subject: [PATCH] net/iavf: fix indent in Tx path
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit dbdbb1310ff2a39e215d28d326ba2261d174eee9 ]

Fix confusing indentations.

Fixes: 1e728b01120c ("net/iavf: rework Tx path")
Fixes: 6bc987ecb860 ("net/iavf: support IPsec inline crypto")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Radu Nicolau <radu.nicolau@intel.com>
---
 drivers/net/iavf/iavf_rxtx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index b6bc904228..35776e3cf8 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2829,7 +2829,7 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 			txe->last_id = desc_idx_last;
 			desc_idx = txe->next_id;
 			txe = txn;
-			}
+		}
 
 		if (nb_desc_ipsec) {
 			volatile struct iavf_tx_ipsec_desc *ipsec_desc =
@@ -2842,7 +2842,7 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 			if (txe->mbuf) {
 				rte_pktmbuf_free_seg(txe->mbuf);
 				txe->mbuf = NULL;
-		}
+			}
 
 			iavf_fill_ipsec_desc(ipsec_desc, ipsec_md, &ipseclen);
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.945328900 +0800
+++ 0056-net-iavf-fix-indent-in-Tx-path.patch	2023-12-11 17:56:23.047652300 +0800
@@ -1 +1 @@
-From dbdbb1310ff2a39e215d28d326ba2261d174eee9 Mon Sep 17 00:00:00 2001
+From 84c1679b72ba4c5d3f21700e098385b711a083b9 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit dbdbb1310ff2a39e215d28d326ba2261d174eee9 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 72263870a4..9890a31734 100644
+index b6bc904228..35776e3cf8 100644
@@ -22 +24 @@
-@@ -2898,7 +2898,7 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -2829,7 +2829,7 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
@@ -31 +33 @@
-@@ -2911,7 +2911,7 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
+@@ -2842,7 +2842,7 @@ iavf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/iavf: fix Tx offload flags check' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (55 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/iavf: fix indent in Tx path' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/ice: fix DCF port statistics' " Xueming Li
                     ` (63 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Radu Nicolau; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=c7270eb8cd3bc671d973c58e67bd7004dc6d4964

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c7270eb8cd3bc671d973c58e67bd7004dc6d4964 Mon Sep 17 00:00:00 2001
From: Radu Nicolau <radu.nicolau@intel.com>
Date: Wed, 25 Oct 2023 10:12:58 +0100
Subject: [PATCH] net/iavf: fix Tx offload flags check
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 55f6cfe9ba8cebddd786f0f6bf5b9baad97fdfad ]

Relax the check in the previous fix to allow packets
with security offload flag set.

Fixes: 3c715591ece0 ("net/iavf: fix checksum offloading")

Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/iavf/iavf_rxtx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 35776e3cf8..63e7de41c3 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2597,7 +2597,8 @@ iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,
 		l2tag1 |= m->vlan_tci;
 	}
 
-	if ((m->ol_flags & IAVF_TX_CKSUM_OFFLOAD_MASK) == 0)
+	if ((m->ol_flags &
+	    (IAVF_TX_CKSUM_OFFLOAD_MASK | RTE_MBUF_F_TX_SEC_OFFLOAD)) == 0)
 		goto skip_cksum;
 
 	/* Set MACLEN */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:24.977616400 +0800
+++ 0057-net-iavf-fix-Tx-offload-flags-check.patch	2023-12-11 17:56:23.047652300 +0800
@@ -1 +1 @@
-From 55f6cfe9ba8cebddd786f0f6bf5b9baad97fdfad Mon Sep 17 00:00:00 2001
+From c7270eb8cd3bc671d973c58e67bd7004dc6d4964 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 55f6cfe9ba8cebddd786f0f6bf5b9baad97fdfad ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index 9890a31734..610912f635 100644
+index 35776e3cf8..63e7de41c3 100644
@@ -22 +24 @@
-@@ -2666,7 +2666,8 @@ iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,
+@@ -2597,7 +2597,8 @@ iavf_build_data_desc_cmd_offset_fields(volatile uint64_t *qw1,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ice: fix DCF port statistics' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (56 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/iavf: fix Tx offload flags check' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'doc: update kernel module entry in QAT guide' " Xueming Li
                     ` (62 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Zhichao Zeng; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=d7b738d6dc1223c31715eabebf3166de959dd339

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d7b738d6dc1223c31715eabebf3166de959dd339 Mon Sep 17 00:00:00 2001
From: Zhichao Zeng <zhichaox.zeng@intel.com>
Date: Thu, 2 Nov 2023 09:50:47 +0800
Subject: [PATCH] net/ice: fix DCF port statistics
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 70aef239d0de6b2048aecb1220da1d78edb75168 ]

Call 'ice_dcf_stats_reset' during the initialization of the DCF port in
order to clear any statistics that may exist from the last use of the DCF
and to avoid statistics errors.

Fixes: 7564d5509611 ("net/ice: add DCF hardware initialization")

Signed-off-by: Zhichao Zeng <zhichaox.zeng@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_dcf_ethdev.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ice/ice_dcf_ethdev.c b/drivers/net/ice/ice_dcf_ethdev.c
index a7d90f46dc..978133854c 100644
--- a/drivers/net/ice/ice_dcf_ethdev.c
+++ b/drivers/net/ice/ice_dcf_ethdev.c
@@ -1916,6 +1916,8 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
 		return -1;
 	}
 
+	ice_dcf_stats_reset(eth_dev);
+
 	dcf_config_promisc(adapter, false, false);
 	return 0;
 }
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.013741600 +0800
+++ 0058-net-ice-fix-DCF-port-statistics.patch	2023-12-11 17:56:23.047652300 +0800
@@ -1 +1 @@
-From 70aef239d0de6b2048aecb1220da1d78edb75168 Mon Sep 17 00:00:00 2001
+From d7b738d6dc1223c31715eabebf3166de959dd339 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 70aef239d0de6b2048aecb1220da1d78edb75168 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 065ec728c2..29699c2c32 100644
+index a7d90f46dc..978133854c 100644
@@ -23 +25 @@
-@@ -1937,6 +1937,8 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
+@@ -1916,6 +1916,8 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'doc: update kernel module entry in QAT guide' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (57 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/ice: fix DCF port statistics' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'crypto/nitrox: fix panic with high number of segments' " Xueming Li
                     ` (61 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Brian Dooley; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=f089d80b0842fff27fea09e87a4fedcc21bd4bcc

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f089d80b0842fff27fea09e87a4fedcc21bd4bcc Mon Sep 17 00:00:00 2001
From: Brian Dooley <brian.dooley@intel.com>
Date: Fri, 13 Oct 2023 13:06:56 +0000
Subject: [PATCH] doc: update kernel module entry in QAT guide
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 188ace04843e87671491d43aa2958c4a59fc4f58 ]

The Kernel Module entry for 2.0 devices was incorrect in the doc table.
Updated table with Kernel Module qat_4xxx.

Fixes: f4eac3a09c51 ("common/qat: enable GEN4 b devices")

Signed-off-by: Brian Dooley <brian.dooley@intel.com>
---
 doc/guides/cryptodevs/qat.rst | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/guides/cryptodevs/qat.rst b/doc/guides/cryptodevs/qat.rst
index d1e64475c4..b1b893a251 100644
--- a/doc/guides/cryptodevs/qat.rst
+++ b/doc/guides/cryptodevs/qat.rst
@@ -399,9 +399,9 @@ to see the full table)
    +-----+-----+-----+-----+----------+---------------+---------------+------------+--------+------+--------+--------+
    | Yes | No  | No  | 4   | 4xxx     | IDZ/ N/A      | qat_4xxx      | 4xxx       | 4940   | 4    | 4941   | 16     |
    +-----+-----+-----+-----+----------+---------------+---------------+------------+--------+------+--------+--------+
-   | Yes | Yes | Yes | 4   | 401xxx   | linux/5.19+   | qat_401xxx    | 4xxx       | 4942   | 2    | 4943   | 16     |
+   | Yes | Yes | Yes | 4   | 401xxx   | linux/5.19+   | qat_4xxx      | 4xxx       | 4942   | 2    | 4943   | 16     |
    +-----+-----+-----+-----+----------+---------------+---------------+------------+--------+------+--------+--------+
-   | Yes | No  | No  | 4   | 401xxx   | IDZ/ N/A      | qat_401xxx    | 4xxx       | 4942   | 2    | 4943   | 16     |
+   | Yes | No  | No  | 4   | 401xxx   | IDZ/ N/A      | qat_4xxx      | 4xxx       | 4942   | 2    | 4943   | 16     |
    +-----+-----+-----+-----+----------+---------------+---------------+------------+--------+------+--------+--------+
 
 * Note: Symmetric mixed crypto algorithms feature on Gen 2 works only with IDZ driver version 4.9.0+
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.040721700 +0800
+++ 0059-doc-update-kernel-module-entry-in-QAT-guide.patch	2023-12-11 17:56:23.057652300 +0800
@@ -1 +1 @@
-From 188ace04843e87671491d43aa2958c4a59fc4f58 Mon Sep 17 00:00:00 2001
+From f089d80b0842fff27fea09e87a4fedcc21bd4bcc Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 188ace04843e87671491d43aa2958c4a59fc4f58 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -18 +20 @@
-index 730113da33..3419888e8b 100644
+index d1e64475c4..b1b893a251 100644
@@ -21 +23 @@
-@@ -453,9 +453,9 @@ to see the full table)
+@@ -399,9 +399,9 @@ to see the full table)
@@ -31,2 +33,2 @@
-    | Yes | Yes | Yes | 4   | 402xx    | linux/6.4+    | qat_4xxx      | 4xxx       | 4944   | 2    | 4945   | 16     |
-    +-----+-----+-----+-----+----------+---------------+---------------+------------+--------+------+--------+--------+
+ 
+ * Note: Symmetric mixed crypto algorithms feature on Gen 2 works only with IDZ driver version 4.9.0+

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'crypto/nitrox: fix panic with high number of segments' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (58 preceding siblings ...)
  2023-12-11 10:11   ` patch 'doc: update kernel module entry in QAT guide' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/iavf: fix Tx preparation' " Xueming Li
                     ` (60 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Nagadheeraj Rottela; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=c70a8fa66e97fb5c9f843228c8cb3928b637878c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c70a8fa66e97fb5c9f843228c8cb3928b637878c Mon Sep 17 00:00:00 2001
From: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
Date: Thu, 17 Aug 2023 17:15:56 +0530
Subject: [PATCH] crypto/nitrox: fix panic with high number of segments
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 4a469e1216384d19a6dc3950686f479e30e319a9 ]

When the number of segments in source or destination mbuf is higher than
max supported then the application was panicked during the creation of
sglist when RTE_VERIFY was called. Validate the number of mbuf segments
and return an error instead of panicking.

Fixes: 678f3eca1dfd ("crypto/nitrox: support cipher-only operations")
Fixes: 9282bdee5cdf ("crypto/nitrox: add cipher auth chain processing")

Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com>
---
 drivers/crypto/nitrox/nitrox_sym_reqmgr.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/drivers/crypto/nitrox/nitrox_sym_reqmgr.c b/drivers/crypto/nitrox/nitrox_sym_reqmgr.c
index 9edb0cc00f..d7e8ff7db4 100644
--- a/drivers/crypto/nitrox/nitrox_sym_reqmgr.c
+++ b/drivers/crypto/nitrox/nitrox_sym_reqmgr.c
@@ -10,8 +10,11 @@
 #include "nitrox_sym_reqmgr.h"
 #include "nitrox_logs.h"
 
-#define MAX_SGBUF_CNT 16
-#define MAX_SGCOMP_CNT 5
+#define MAX_SUPPORTED_MBUF_SEGS 16
+/* IV + AAD + ORH + CC + DIGEST */
+#define ADDITIONAL_SGBUF_CNT 5
+#define MAX_SGBUF_CNT (MAX_SUPPORTED_MBUF_SEGS + ADDITIONAL_SGBUF_CNT)
+#define MAX_SGCOMP_CNT (RTE_ALIGN_MUL_CEIL(MAX_SGBUF_CNT, 4) / 4)
 /* SLC_STORE_INFO */
 #define MIN_UDD_LEN 16
 /* PKT_IN_HDR + SLC_STORE_INFO */
@@ -303,7 +306,7 @@ create_sglist_from_mbuf(struct nitrox_sgtable *sgtbl, struct rte_mbuf *mbuf,
 		datalen -= mlen;
 	}
 
-	RTE_VERIFY(cnt <= MAX_SGBUF_CNT);
+	RTE_ASSERT(cnt <= MAX_SGBUF_CNT);
 	sgtbl->map_bufs_cnt = cnt;
 	return 0;
 }
@@ -375,7 +378,7 @@ create_cipher_outbuf(struct nitrox_softreq *sr)
 	sr->out.sglist[cnt].virt = &sr->resp.completion;
 	cnt++;
 
-	RTE_VERIFY(cnt <= MAX_SGBUF_CNT);
+	RTE_ASSERT(cnt <= MAX_SGBUF_CNT);
 	sr->out.map_bufs_cnt = cnt;
 
 	create_sgcomp(&sr->out);
@@ -600,7 +603,7 @@ create_aead_outbuf(struct nitrox_softreq *sr, struct nitrox_sglist *digest)
 						     resp.completion);
 	sr->out.sglist[cnt].virt = &sr->resp.completion;
 	cnt++;
-	RTE_VERIFY(cnt <= MAX_SGBUF_CNT);
+	RTE_ASSERT(cnt <= MAX_SGBUF_CNT);
 	sr->out.map_bufs_cnt = cnt;
 
 	create_sgcomp(&sr->out);
@@ -774,6 +777,14 @@ nitrox_process_se_req(uint16_t qno, struct rte_crypto_op *op,
 {
 	int err;
 
+	if (unlikely(op->sym->m_src->nb_segs > MAX_SUPPORTED_MBUF_SEGS ||
+		     (op->sym->m_dst &&
+		      op->sym->m_dst->nb_segs > MAX_SUPPORTED_MBUF_SEGS))) {
+		NITROX_LOG(ERR, "Mbuf segments not supported. "
+			   "Max supported %d\n", MAX_SUPPORTED_MBUF_SEGS);
+		return -ENOTSUP;
+	}
+
 	softreq_init(sr, sr->iova);
 	sr->ctx = ctx;
 	sr->op = op;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.068345200 +0800
+++ 0060-crypto-nitrox-fix-panic-with-high-number-of-segments.patch	2023-12-11 17:56:23.057652300 +0800
@@ -1 +1 @@
-From 4a469e1216384d19a6dc3950686f479e30e319a9 Mon Sep 17 00:00:00 2001
+From c70a8fa66e97fb5c9f843228c8cb3928b637878c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4a469e1216384d19a6dc3950686f479e30e319a9 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/iavf: fix Tx preparation' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (59 preceding siblings ...)
  2023-12-11 10:11   ` patch 'crypto/nitrox: fix panic with high number of segments' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/ice: " Xueming Li
                     ` (59 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Qiming Yang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8dc1b42e316533093bf23e2dd1249f442a8ca2fc

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 8dc1b42e316533093bf23e2dd1249f442a8ca2fc Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Thu, 2 Nov 2023 08:05:04 -0400
Subject: [PATCH] net/iavf: fix Tx preparation
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 0f536bae86b30e82ba95c279f1d6f9095d7f5b6e ]

1. check nb_segs > Tx ring size for TSO case.
2. report nb_mtu_seg_max and nb_seg_max in dev_info.

Fixes: a2b29a7733ef ("net/avf: enable basic Rx Tx")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 2 ++
 drivers/net/iavf/iavf_rxtx.c   | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index fce56d33cc..62d72a0155 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -1183,6 +1183,8 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		.nb_max = IAVF_MAX_RING_DESC,
 		.nb_min = IAVF_MIN_RING_DESC,
 		.nb_align = IAVF_ALIGN_RING_DESC,
+		.nb_mtu_seg_max = IAVF_TX_MAX_MTU_SEG,
+		.nb_seg_max = IAVF_MAX_RING_DESC,
 	};
 
 	dev_info->err_handle_mode = RTE_ETH_ERROR_HANDLE_MODE_PASSIVE;
diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index 63e7de41c3..6a0cf31a4c 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2993,7 +2993,8 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 				return i;
 			}
 		} else if ((m->tso_segsz < IAVF_MIN_TSO_MSS) ||
-			   (m->tso_segsz > IAVF_MAX_TSO_MSS)) {
+			   (m->tso_segsz > IAVF_MAX_TSO_MSS) ||
+			   (m->nb_segs > txq->nb_tx_desc)) {
 			/* MSS outside the range are considered malicious */
 			rte_errno = EINVAL;
 			return i;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.097441900 +0800
+++ 0061-net-iavf-fix-Tx-preparation.patch	2023-12-11 17:56:23.057652300 +0800
@@ -1 +1 @@
-From 0f536bae86b30e82ba95c279f1d6f9095d7f5b6e Mon Sep 17 00:00:00 2001
+From 8dc1b42e316533093bf23e2dd1249f442a8ca2fc Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 0f536bae86b30e82ba95c279f1d6f9095d7f5b6e ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 98cc5c8ea8..0c6ab4ac5a 100644
+index fce56d33cc..62d72a0155 100644
@@ -23 +25 @@
-@@ -1207,6 +1207,8 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+@@ -1183,6 +1183,8 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@ -33 +35 @@
-index 610912f635..45f638c1d2 100644
+index 63e7de41c3..6a0cf31a4c 100644
@@ -36 +38 @@
-@@ -3656,7 +3656,8 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -2993,7 +2993,8 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ice: fix Tx preparation' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (60 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/iavf: fix Tx preparation' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'config/arm: fix aarch32 build with GCC 13' " Xueming Li
                     ` (58 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Qi Zhang; +Cc: Qiming Yang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e787872a59750a6577c0dfb89ff424b01b2594c1

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e787872a59750a6577c0dfb89ff424b01b2594c1 Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Thu, 2 Nov 2023 10:22:07 -0400
Subject: [PATCH] net/ice: fix Tx preparation
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 2f13ba5333b06589ba0e0e307dadcfaa95daf3dc ]

1. Check nb_segs > 8 for NO TSO case
2. Check nb_segs > Tx ring size for TSO case
3. report nb_mtu_seg_max and nb_seg_max in dev_info.

Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
---
 drivers/net/ice/ice_ethdev.c |  2 ++
 drivers/net/ice/ice_rxtx.c   | 18 ++++++++++++++++--
 drivers/net/ice/ice_rxtx.h   |  2 ++
 3 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 332af8eeb5..8ce7d0ebaa 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -3886,6 +3886,8 @@ ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		.nb_max = ICE_MAX_RING_DESC,
 		.nb_min = ICE_MIN_RING_DESC,
 		.nb_align = ICE_ALIGN_RING_DESC,
+		.nb_mtu_seg_max = ICE_TX_MTU_SEG_MAX,
+		.nb_seg_max = ICE_MAX_RING_DESC,
 	};
 
 	dev_info->speed_capa = RTE_ETH_LINK_SPEED_10M |
diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 31434f0ee5..9a653cbc4a 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -3670,7 +3670,7 @@ ice_check_empty_mbuf(struct rte_mbuf *tx_pkt)
 }
 
 uint16_t
-ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+ice_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 	      uint16_t nb_pkts)
 {
 	int i, ret;
@@ -3681,9 +3681,23 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
 		m = tx_pkts[i];
 		ol_flags = m->ol_flags;
 
-		if (ol_flags & RTE_MBUF_F_TX_TCP_SEG &&
+		if (!(ol_flags & RTE_MBUF_F_TX_TCP_SEG) &&
+		    /**
+		     * No TSO case: nb->segs, pkt_len to not exceed
+		     * the limites.
+		     */
+		    (m->nb_segs > ICE_TX_MTU_SEG_MAX ||
+		     m->pkt_len > ICE_FRAME_SIZE_MAX)) {
+			rte_errno = EINVAL;
+			return i;
+		} else if (ol_flags & RTE_MBUF_F_TX_TCP_SEG &&
+		    /** TSO case: tso_segsz, nb_segs, pkt_len not exceed
+		     * the limits.
+		     */
 		    (m->tso_segsz < ICE_MIN_TSO_MSS ||
 		     m->tso_segsz > ICE_MAX_TSO_MSS ||
+		     m->nb_segs >
+			((struct ice_tx_queue *)tx_queue)->nb_tx_desc ||
 		     m->pkt_len > ICE_MAX_TSO_FRAME_SIZE)) {
 			/**
 			 * MSS outside the range are considered malicious
diff --git a/drivers/net/ice/ice_rxtx.h b/drivers/net/ice/ice_rxtx.h
index 268289716e..bd2c4abec9 100644
--- a/drivers/net/ice/ice_rxtx.h
+++ b/drivers/net/ice/ice_rxtx.h
@@ -56,6 +56,8 @@ extern int ice_timestamp_dynfield_offset;
 
 #define ICE_HEADER_SPLIT_ENA   BIT(0)
 
+#define ICE_TX_MTU_SEG_MAX	8
+
 typedef void (*ice_rx_release_mbufs_t)(struct ice_rx_queue *rxq);
 typedef void (*ice_tx_release_mbufs_t)(struct ice_tx_queue *txq);
 typedef void (*ice_rxd_to_pkt_fields_t)(struct ice_rx_queue *rxq,
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.125330900 +0800
+++ 0062-net-ice-fix-Tx-preparation.patch	2023-12-11 17:56:23.067652300 +0800
@@ -1 +1 @@
-From 2f13ba5333b06589ba0e0e307dadcfaa95daf3dc Mon Sep 17 00:00:00 2001
+From e787872a59750a6577c0dfb89ff424b01b2594c1 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 2f13ba5333b06589ba0e0e307dadcfaa95daf3dc ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 6ef06b9926..3ccba4db80 100644
+index 332af8eeb5..8ce7d0ebaa 100644
@@ -25 +27 @@
-@@ -3918,6 +3918,8 @@ ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+@@ -3886,6 +3886,8 @@ ice_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
@@ -35 +37 @@
-index ee9cb7b955..73e47ae92d 100644
+index 31434f0ee5..9a653cbc4a 100644
@@ -38 +40 @@
-@@ -3679,7 +3679,7 @@ ice_check_empty_mbuf(struct rte_mbuf *tx_pkt)
+@@ -3670,7 +3670,7 @@ ice_check_empty_mbuf(struct rte_mbuf *tx_pkt)
@@ -47 +49 @@
-@@ -3690,9 +3690,23 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -3681,9 +3681,23 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'config/arm: fix aarch32 build with GCC 13' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (61 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/ice: " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'build: add libarchive to optional external dependencies' " Xueming Li
                     ` (57 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Juraj Linkeš; +Cc: Ruifeng Wang, Paul Szczepanek, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=cb225e1ae9d8f204d0e6b7d9a463540fe97cbab3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From cb225e1ae9d8f204d0e6b7d9a463540fe97cbab3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juraj=20Linke=C5=A1?= <juraj.linkes@pantheon.tech>
Date: Wed, 25 Oct 2023 14:57:14 +0200
Subject: [PATCH] config/arm: fix aarch32 build with GCC 13
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 7bfb0d4eaf51d329464e6c041315cf2025b97784 ]

The aarch32 with gcc13 fails with:

Compiler for C supports arguments -march=armv8-a: NO

../config/arm/meson.build:714:12: ERROR: Problem encountered: No
suitable armv8 march version found.

This is because we test -march=armv8-a alone (without the -mpfu option),
which is no longer supported in gcc13 aarch32 builds.

The most recent recommendation from the compiler team is to build with
-march=armv8-a+simd -mfpu=auto, which should work for compilers old and
new. The suggestion is to first check -march=armv8-a+simd and only then
check -mfpu=auto.

To address this, add a way to force the architecture (the value of
the -march option).

Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
Acked-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com>
---
 config/arm/meson.build | 40 +++++++++++++++++++++++-----------------
 1 file changed, 23 insertions(+), 17 deletions(-)

diff --git a/config/arm/meson.build b/config/arm/meson.build
index 6442ec9596..5028c74613 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -43,7 +43,9 @@ implementer_generic = {
         },
         'generic_aarch32': {
             'march': 'armv8-a',
-            'compiler_options': ['-mfpu=neon'],
+            'force_march': true,
+            'march_features': ['simd'],
+            'compiler_options': ['-mfpu=auto'],
             'flags': [
                 ['RTE_ARCH_ARM_NEON_MEMCPY', false],
                 ['RTE_ARCH_STRICT_ALIGN', true],
@@ -613,21 +615,25 @@ if update_flags
     # probe supported archs and their features
     candidate_march = ''
     if part_number_config.has_key('march')
-        supported_marchs = ['armv8.6-a', 'armv8.5-a', 'armv8.4-a', 'armv8.3-a',
-                            'armv8.2-a', 'armv8.1-a', 'armv8-a']
-        check_compiler_support = false
-        foreach supported_march: supported_marchs
-            if supported_march == part_number_config['march']
-                # start checking from this version downwards
-                check_compiler_support = true
-            endif
-            if (check_compiler_support and
-                cc.has_argument('-march=' + supported_march))
-                candidate_march = supported_march
-                # highest supported march version found
-                break
-            endif
-        endforeach
+        if part_number_config.get('force_march', false)
+            candidate_march = part_number_config['march']
+        else
+            supported_marchs = ['armv8.6-a', 'armv8.5-a', 'armv8.4-a', 'armv8.3-a',
+                                'armv8.2-a', 'armv8.1-a', 'armv8-a']
+            check_compiler_support = false
+            foreach supported_march: supported_marchs
+                if supported_march == part_number_config['march']
+                    # start checking from this version downwards
+                    check_compiler_support = true
+                endif
+                if (check_compiler_support and
+                    cc.has_argument('-march=' + supported_march))
+                    candidate_march = supported_march
+                    # highest supported march version found
+                    break
+                endif
+            endforeach
+        endif
         if candidate_march == ''
             error('No suitable armv8 march version found.')
         endif
@@ -659,7 +665,7 @@ if update_flags
     # apply supported compiler options
     if part_number_config.has_key('compiler_options')
         foreach flag: part_number_config['compiler_options']
-            if cc.has_argument(flag)
+            if cc.has_multi_arguments(machine_args + [flag])
                 machine_args += flag
             else
                 warning('Configuration compiler option ' +
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.155140200 +0800
+++ 0063-config-arm-fix-aarch32-build-with-GCC-13.patch	2023-12-11 17:56:23.067652300 +0800
@@ -1 +1 @@
-From 7bfb0d4eaf51d329464e6c041315cf2025b97784 Mon Sep 17 00:00:00 2001
+From cb225e1ae9d8f204d0e6b7d9a463540fe97cbab3 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7bfb0d4eaf51d329464e6c041315cf2025b97784 ]
@@ -27,2 +29,0 @@
-Cc: stable@dpdk.org
-
@@ -37 +38 @@
-index efd0bf32bc..36f21d2259 100644
+index 6442ec9596..5028c74613 100644
@@ -51 +52 @@
-@@ -696,21 +698,25 @@ if update_flags
+@@ -613,21 +615,25 @@ if update_flags
@@ -92 +93 @@
-@@ -742,7 +748,7 @@ if update_flags
+@@ -659,7 +665,7 @@ if update_flags

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'build: add libarchive to optional external dependencies' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (62 preceding siblings ...)
  2023-12-11 10:11   ` patch 'config/arm: fix aarch32 build with GCC 13' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'bus/pci: add PASID control' " Xueming Li
                     ` (56 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Srikanth Yalavarthi; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=dec4b39b200a8c4b835f018c6061e81597e9401c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From dec4b39b200a8c4b835f018c6061e81597e9401c Mon Sep 17 00:00:00 2001
From: Srikanth Yalavarthi <syalavarthi@marvell.com>
Date: Sun, 5 Nov 2023 20:12:43 -0800
Subject: [PATCH] build: add libarchive to optional external dependencies
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 22f7184e8b5f1b546ac26dd0bde8c3c6038a7e03 ]

In order to avoid linking with Libs.private, libarchive
is not added to ext_deps during the meson setup stage.

Since libarchive is not added to ext_deps, cross-compilation
or native compilation with libarchive installed in non-standard
location fails with errors related to "cannot find -larchive"
or "archive.h: No such file or directory". In order to fix the
build failures, user is required to define the 'c_args' and
'c_link_args' with '-I<includedir>' and '-L<libdir>'.

This patch adds libarchive to ext_deps and further would not
require setting c_args and c_link_args externally.

Fixes: 40edb9c0d36b ("eal: handle compressed firmware")

Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 config/meson.build  | 5 -----
 lib/eal/meson.build | 3 +++
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/config/meson.build b/config/meson.build
index 7cd375e991..6c59b28468 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -209,11 +209,6 @@ dpdk_conf.set('RTE_BACKTRACE', cc.has_header('execinfo.h') or is_windows)
 libarchive = dependency('libarchive', required: false, method: 'pkg-config')
 if libarchive.found()
     dpdk_conf.set('RTE_HAS_LIBARCHIVE', 1)
-    # Push libarchive link dependency at the project level to support
-    # statically linking dpdk apps. Details at:
-    # https://inbox.dpdk.org/dev/20210605004024.660267a1@sovereign/
-    add_project_link_arguments('-larchive', language: 'c')
-    dpdk_extra_ldflags += '-larchive'
 endif
 
 # check for libbsd
diff --git a/lib/eal/meson.build b/lib/eal/meson.build
index 056beb9461..04bd3fe351 100644
--- a/lib/eal/meson.build
+++ b/lib/eal/meson.build
@@ -29,6 +29,9 @@ endif
 if dpdk_conf.has('RTE_USE_LIBBSD')
     ext_deps += libbsd
 endif
+if dpdk_conf.has('RTE_HAS_LIBARCHIVE')
+    ext_deps += libarchive
+endif
 if cc.has_function('getentropy', prefix : '#include <unistd.h>')
     cflags += '-DRTE_LIBEAL_USE_GETENTROPY'
 endif
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.181989500 +0800
+++ 0064-build-add-libarchive-to-optional-external-dependenci.patch	2023-12-11 17:56:23.067652300 +0800
@@ -1 +1 @@
-From 22f7184e8b5f1b546ac26dd0bde8c3c6038a7e03 Mon Sep 17 00:00:00 2001
+From dec4b39b200a8c4b835f018c6061e81597e9401c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 22f7184e8b5f1b546ac26dd0bde8c3c6038a7e03 ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org
@@ -30 +32 @@
-index 39ed4ba7d3..d732154731 100644
+index 7cd375e991..6c59b28468 100644
@@ -33 +35 @@
-@@ -251,11 +251,6 @@ dpdk_conf.set('RTE_BACKTRACE', cc.has_header('execinfo.h') or is_windows)
+@@ -209,11 +209,6 @@ dpdk_conf.set('RTE_BACKTRACE', cc.has_header('execinfo.h') or is_windows)
@@ -46 +48 @@
-index 9942104386..e1d6c4cf17 100644
+index 056beb9461..04bd3fe351 100644
@@ -49 +51 @@
-@@ -21,6 +21,9 @@ endif
+@@ -29,6 +29,9 @@ endif

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'bus/pci: add PASID control' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (63 preceding siblings ...)
  2023-12-11 10:11   ` patch 'build: add libarchive to optional external dependencies' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'event/dlb2: disable PASID' " Xueming Li
                     ` (55 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Abdullah Sevincer; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=5586a7be436c18b55d006ad4c21cca5ef403eb91

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 5586a7be436c18b55d006ad4c21cca5ef403eb91 Mon Sep 17 00:00:00 2001
From: Abdullah Sevincer <abdullah.sevincer@intel.com>
Date: Mon, 6 Nov 2023 11:05:20 -0600
Subject: [PATCH] bus/pci: add PASID control
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 60ea19609aecbd644d7ad7cb86ae06dd76291cf9 ]

Add an internal API to control PASID for a given PCIe device.

For kernels when PASID enabled by default it breaks DLB functionality,
hence disabling PASID is required for DLB to function properly.

PASID capability is not exposed to users hence offset can not be
retrieved by rte_pci_find_ext_capability() API.
Therefore, API implemented in this commit accepts an offset
for PASID with an enable flag which is used to enable/disable PASID.

Signed-off-by: Abdullah Sevincer <abdullah.sevincer@intel.com>
---
 drivers/bus/pci/pci_common.c  | 10 ++++++++++
 drivers/bus/pci/rte_bus_pci.h | 14 ++++++++++++++
 drivers/bus/pci/version.map   |  1 +
 lib/pci/rte_pci.h             |  4 ++++
 4 files changed, 29 insertions(+)

diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c
index e83d77090b..756e308fdf 100644
--- a/drivers/bus/pci/pci_common.c
+++ b/drivers/bus/pci/pci_common.c
@@ -884,6 +884,16 @@ rte_pci_set_bus_master(struct rte_pci_device *dev, bool enable)
 	return 0;
 }
 
+int
+rte_pci_pasid_set_state(const struct rte_pci_device *dev,
+		off_t offset, bool enable)
+{
+	uint16_t pasid = enable;
+	return rte_pci_write_config(dev, &pasid, sizeof(pasid), offset) < 0
+		? -1
+		: 0;
+}
+
 struct rte_pci_bus rte_pci_bus = {
 	.bus = {
 		.scan = rte_pci_scan,
diff --git a/drivers/bus/pci/rte_bus_pci.h b/drivers/bus/pci/rte_bus_pci.h
index b193114fe5..76cbf49ab8 100644
--- a/drivers/bus/pci/rte_bus_pci.h
+++ b/drivers/bus/pci/rte_bus_pci.h
@@ -101,6 +101,20 @@ off_t rte_pci_find_ext_capability(struct rte_pci_device *dev, uint32_t cap);
 __rte_experimental
 int rte_pci_set_bus_master(struct rte_pci_device *dev, bool enable);
 
+/**
+ * Enable/Disable PASID (Process Address Space ID).
+ *
+ * @param dev
+ *   A pointer to a rte_pci_device structure.
+ * @param offset
+ *   Offset of the PASID external capability.
+ * @param enable
+ *   Flag to enable or disable PASID.
+ */
+__rte_internal
+int rte_pci_pasid_set_state(const struct rte_pci_device *dev,
+		off_t offset, bool enable);
+
 /**
  * Read PCI config space.
  *
diff --git a/drivers/bus/pci/version.map b/drivers/bus/pci/version.map
index 161ab86d3b..f262af3316 100644
--- a/drivers/bus/pci/version.map
+++ b/drivers/bus/pci/version.map
@@ -27,6 +27,7 @@ INTERNAL {
 	global:
 
 	rte_pci_get_sysfs_path;
+	rte_pci_pasid_set_state;
 	rte_pci_register;
 	rte_pci_unregister;
 };
diff --git a/lib/pci/rte_pci.h b/lib/pci/rte_pci.h
index aab761b918..9876c3fb9d 100644
--- a/lib/pci/rte_pci.h
+++ b/lib/pci/rte_pci.h
@@ -45,6 +45,7 @@ extern "C" {
 #define RTE_PCI_EXT_CAP_ID_ERR		0x01	/* Advanced Error Reporting */
 #define RTE_PCI_EXT_CAP_ID_DSN		0x03	/* Device Serial Number */
 #define RTE_PCI_EXT_CAP_ID_SRIOV	0x10	/* SR-IOV*/
+#define RTE_PCI_EXT_CAP_ID_PASID	0x1B    /* Process Address Space ID */
 
 /* Single Root I/O Virtualization */
 #define RTE_PCI_SRIOV_CAP		0x04	/* SR-IOV Capabilities */
@@ -58,6 +59,9 @@ extern "C" {
 #define RTE_PCI_SRIOV_VF_DID		0x1a	/* VF Device ID */
 #define RTE_PCI_SRIOV_SUP_PGSIZE	0x1c	/* Supported Page Sizes */
 
+
+/* Process Address Space ID (RTE_PCI_EXT_CAP_ID_PASID) */
+#define RTE_PCI_PASID_CTRL		0x06    /* PASID control register */
 /** Formatting string for PCI device identifier: Ex: 0000:00:01.0 */
 #define PCI_PRI_FMT "%.4" PRIx32 ":%.2" PRIx8 ":%.2" PRIx8 ".%" PRIx8
 #define PCI_PRI_STR_SIZE sizeof("XXXXXXXX:XX:XX.X")
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.219632200 +0800
+++ 0065-bus-pci-add-PASID-control.patch	2023-12-11 17:56:23.067652300 +0800
@@ -1 +1 @@
-From 60ea19609aecbd644d7ad7cb86ae06dd76291cf9 Mon Sep 17 00:00:00 2001
+From 5586a7be436c18b55d006ad4c21cca5ef403eb91 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 60ea19609aecbd644d7ad7cb86ae06dd76291cf9 ]
@@ -16,2 +18,0 @@
-Cc: stable@dpdk.org
-
@@ -27 +28 @@
-index 921d957bf6..ba5e280d33 100644
+index e83d77090b..756e308fdf 100644
@@ -30 +31 @@
-@@ -938,6 +938,16 @@ rte_pci_set_bus_master(const struct rte_pci_device *dev, bool enable)
+@@ -884,6 +884,16 @@ rte_pci_set_bus_master(struct rte_pci_device *dev, bool enable)
@@ -48 +49 @@
-index 21e234abf0..f07bf9b588 100644
+index b193114fe5..76cbf49ab8 100644
@@ -51 +52 @@
-@@ -155,6 +155,20 @@ off_t rte_pci_find_ext_capability(const struct rte_pci_device *dev, uint32_t cap
+@@ -101,6 +101,20 @@ off_t rte_pci_find_ext_capability(struct rte_pci_device *dev, uint32_t cap);
@@ -53 +54 @@
- int rte_pci_set_bus_master(const struct rte_pci_device *dev, bool enable);
+ int rte_pci_set_bus_master(struct rte_pci_device *dev, bool enable);
@@ -73 +74 @@
-index 74c5b075d5..9e4d8f5e54 100644
+index 161ab86d3b..f262af3316 100644
@@ -76 +77 @@
-@@ -36,6 +36,7 @@ INTERNAL {
+@@ -27,6 +27,7 @@ INTERNAL {
@@ -85 +86 @@
-index 69e932d910..0d2d8d8fed 100644
+index aab761b918..9876c3fb9d 100644
@@ -88,4 +89,4 @@
-@@ -101,6 +101,7 @@ extern "C" {
- #define RTE_PCI_EXT_CAP_ID_ACS		0x0d	/* Access Control Services */
- #define RTE_PCI_EXT_CAP_ID_SRIOV	0x10	/* SR-IOV */
- #define RTE_PCI_EXT_CAP_ID_PRI		0x13	/* Page Request Interface */
+@@ -45,6 +45,7 @@ extern "C" {
+ #define RTE_PCI_EXT_CAP_ID_ERR		0x01	/* Advanced Error Reporting */
+ #define RTE_PCI_EXT_CAP_ID_DSN		0x03	/* Device Serial Number */
+ #define RTE_PCI_EXT_CAP_ID_SRIOV	0x10	/* SR-IOV*/
@@ -94,5 +95,5 @@
- /* Advanced Error Reporting (RTE_PCI_EXT_CAP_ID_ERR) */
- #define RTE_PCI_ERR_UNCOR_STATUS	0x04	/* Uncorrectable Error Status */
-@@ -133,6 +134,9 @@ extern "C" {
- #define RTE_PCI_PRI_CTRL_ENABLE		0x0001	/* Enable */
- #define RTE_PCI_PRI_ALLOC_REQ		0x0c	/* PRI max reqs allowed */
+ /* Single Root I/O Virtualization */
+ #define RTE_PCI_SRIOV_CAP		0x04	/* SR-IOV Capabilities */
+@@ -58,6 +59,9 @@ extern "C" {
+ #define RTE_PCI_SRIOV_VF_DID		0x1a	/* VF Device ID */
+ #define RTE_PCI_SRIOV_SUP_PGSIZE	0x1c	/* Supported Page Sizes */
@@ -99,0 +101 @@
++
@@ -102 +103,0 @@
-+

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'event/dlb2: disable PASID' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (64 preceding siblings ...)
  2023-12-11 10:11   ` patch 'bus/pci: add PASID control' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'app/dumpcap: fix mbuf pool ring type' " Xueming Li
                     ` (54 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Abdullah Sevincer; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=ac8ca59223717f984c689422f3319c16521eaefd

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ac8ca59223717f984c689422f3319c16521eaefd Mon Sep 17 00:00:00 2001
From: Abdullah Sevincer <abdullah.sevincer@intel.com>
Date: Mon, 6 Nov 2023 11:05:21 -0600
Subject: [PATCH] event/dlb2: disable PASID
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 5a6878335b8179337ec2d9931debf1f46525e8fc ]

In vfio-pci driver when PASID is enabled by default DLB hardware puts
DLB in SIOV mode. This breaks DLB PF-PMD mode. For DLB PF-PMD mode to
function properly PASID needs to be disabled.

In this commit this issue is addressed and PASID is disabled by writing
a zero to PASID control register.

Fixes: 5433956d5185 ("event/dlb2: add eventdev probe")

Signed-off-by: Abdullah Sevincer <abdullah.sevincer@intel.com>
---
 drivers/event/dlb2/pf/dlb2_main.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/event/dlb2/pf/dlb2_main.c b/drivers/event/dlb2/pf/dlb2_main.c
index 717aa4fc08..64a59f7616 100644
--- a/drivers/event/dlb2/pf/dlb2_main.c
+++ b/drivers/event/dlb2/pf/dlb2_main.c
@@ -26,6 +26,7 @@
 #define PF_ID_ZERO 0	/* PF ONLY! */
 #define NO_OWNER_VF 0	/* PF ONLY! */
 #define NOT_VF_REQ false /* PF ONLY! */
+#define DLB2_PCI_PASID_CAP_OFFSET        0x148   /* PASID capability offset */
 
 #define DLB2_PCI_CAP_POINTER 0x34
 #define DLB2_PCI_CAP_NEXT(hdr) (((hdr) >> 8) & 0xFC)
@@ -582,6 +583,16 @@ dlb2_pf_reset(struct dlb2_dev *dlb2_dev)
 		}
 	}
 
+	/* Disable PASID if it is enabled by default, which
+	 * breaks the DLB if enabled.
+	 */
+	off = DLB2_PCI_PASID_CAP_OFFSET + RTE_PCI_PASID_CTRL;
+	if (rte_pci_pasid_set_state(pdev, off, false)) {
+		DLB2_LOG_ERR("[%s()] failed to write the pcie config space at offset %d\n",
+				__func__, (int)off);
+		return -1;
+	}
+
 	return 0;
 }
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.257206700 +0800
+++ 0066-event-dlb2-disable-PASID.patch	2023-12-11 17:56:23.067652300 +0800
@@ -1 +1 @@
-From 5a6878335b8179337ec2d9931debf1f46525e8fc Mon Sep 17 00:00:00 2001
+From ac8ca59223717f984c689422f3319c16521eaefd Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5a6878335b8179337ec2d9931debf1f46525e8fc ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index aa03e4c311..61a7b39eef 100644
+index 717aa4fc08..64a59f7616 100644
@@ -31,3 +33,3 @@
- static int
- dlb2_pf_init_driver_state(struct dlb2_dev *dlb2_dev)
-@@ -514,6 +515,16 @@ dlb2_pf_reset(struct dlb2_dev *dlb2_dev)
+ #define DLB2_PCI_CAP_POINTER 0x34
+ #define DLB2_PCI_CAP_NEXT(hdr) (((hdr) >> 8) & 0xFC)
+@@ -582,6 +583,16 @@ dlb2_pf_reset(struct dlb2_dev *dlb2_dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/dumpcap: fix mbuf pool ring type' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (65 preceding siblings ...)
  2023-12-11 10:11   ` patch 'event/dlb2: disable PASID' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'event/dlb2: fix name check in self-test' " Xueming Li
                     ` (53 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Morten Brørup, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=2cd4ce85188101b87f0f7a22389e5744eb3ca443

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 2cd4ce85188101b87f0f7a22389e5744eb3ca443 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Wed, 8 Nov 2023 09:47:38 -0800
Subject: [PATCH] app/dumpcap: fix mbuf pool ring type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 27a26d65f8039ec38a49932c4bb73801b4fd62b8 ]

The internal buffer pool used for copies of mbufs captured
needs to be thread safe.  If capturing on multiple interfaces
or multiple queues, the same pool will be used (consumers).
And if the capture ring gets full, the queues will need
to put back the capture buffer which leads to multiple producers.

Bugzilla ID: 1271
Fixes: cbb44143be74 ("app/dumpcap: add new packet capture application")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
---
 app/dumpcap/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/dumpcap/main.c b/app/dumpcap/main.c
index 4751ca26b8..fbe47c476a 100644
--- a/app/dumpcap/main.c
+++ b/app/dumpcap/main.c
@@ -592,7 +592,7 @@ static struct rte_mempool *create_mempool(void)
 	mp = rte_pktmbuf_pool_create_by_ops(pool_name, num_mbufs,
 					    MBUF_POOL_CACHE_SIZE, 0,
 					    rte_pcapng_mbuf_size(snaplen),
-					    rte_socket_id(), "ring_mp_sc");
+					    rte_socket_id(), "ring_mp_mc");
 	if (mp == NULL)
 		rte_exit(EXIT_FAILURE,
 			 "Mempool (%s) creation failed: %s\n", pool_name,
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.286357500 +0800
+++ 0067-app-dumpcap-fix-mbuf-pool-ring-type.patch	2023-12-11 17:56:23.067652300 +0800
@@ -1 +1 @@
-From 27a26d65f8039ec38a49932c4bb73801b4fd62b8 Mon Sep 17 00:00:00 2001
+From 2cd4ce85188101b87f0f7a22389e5744eb3ca443 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 27a26d65f8039ec38a49932c4bb73801b4fd62b8 ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index 64294bbfb3..4f581bd341 100644
+index 4751ca26b8..fbe47c476a 100644
@@ -29 +31 @@
-@@ -694,7 +694,7 @@ static struct rte_mempool *create_mempool(void)
+@@ -592,7 +592,7 @@ static struct rte_mempool *create_mempool(void)
@@ -32 +34 @@
- 					    data_size,
+ 					    rte_pcapng_mbuf_size(snaplen),

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'event/dlb2: fix name check in self-test' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (66 preceding siblings ...)
  2023-12-11 10:11   ` patch 'app/dumpcap: fix mbuf pool ring type' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'baseband/acc: fix TB mode on VRB1' " Xueming Li
                     ` (52 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Abdullah Sevincer, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=2e2cc882eb50aa8f2e50b2f78e2b9ded63f76a56

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 2e2cc882eb50aa8f2e50b2f78e2b9ded63f76a56 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Tue, 7 Nov 2023 16:37:13 +0000
Subject: [PATCH] event/dlb2: fix name check in self-test
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3dd079fae9f0b210ed0fd9a192fb0586822ad9a5 ]

When running the dlb2 selftests the driver name check was incorrect,
causing all checks to be skipped for a dlb2 device. We use the
"event_dlb2" only as a prefix check, as driver may have suffixes, e.g.
appear as "event_dlb2_pf".

Fixes: 6f1b82886e8a ("event/dlb2: add self-tests")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Abdullah Sevincer <abdullah.sevincer@intel.com>
---
 drivers/event/dlb2/dlb2_selftest.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/event/dlb2/dlb2_selftest.c b/drivers/event/dlb2/dlb2_selftest.c
index 1863ffe049..62aa11d981 100644
--- a/drivers/event/dlb2/dlb2_selftest.c
+++ b/drivers/event/dlb2/dlb2_selftest.c
@@ -1475,7 +1475,7 @@ test_fail:
 int
 test_dlb2_eventdev(void)
 {
-	const char *dlb2_eventdev_name = "dlb2_event";
+	const char *dlb2_eventdev_name = "event_dlb2";
 	uint8_t num_evdevs = rte_event_dev_count();
 	int i, ret = 0;
 	int found = 0, skipped = 0, passed = 0, failed = 0;
@@ -1489,7 +1489,7 @@ test_dlb2_eventdev(void)
 
 		/* skip non-dlb2 event devices */
 		if (strncmp(info.driver_name, dlb2_eventdev_name,
-			    sizeof(*info.driver_name)) != 0) {
+				strlen(dlb2_eventdev_name)) != 0) {
 			skipped++;
 			continue;
 		}
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.315174900 +0800
+++ 0068-event-dlb2-fix-name-check-in-self-test.patch	2023-12-11 17:56:23.067652300 +0800
@@ -1 +1 @@
-From 3dd079fae9f0b210ed0fd9a192fb0586822ad9a5 Mon Sep 17 00:00:00 2001
+From 2e2cc882eb50aa8f2e50b2f78e2b9ded63f76a56 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3dd079fae9f0b210ed0fd9a192fb0586822ad9a5 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'baseband/acc: fix TB mode on VRB1' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (67 preceding siblings ...)
  2023-12-11 10:11   ` patch 'event/dlb2: fix name check in self-test' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'test/bbdev: fix Python script subprocess' " Xueming Li
                     ` (51 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Nicolas Chautru; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e42af2946a5ee4105ca7253b7376b4e7ef12d8f3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e42af2946a5ee4105ca7253b7376b4e7ef12d8f3 Mon Sep 17 00:00:00 2001
From: Nicolas Chautru <nicolas.chautru@intel.com>
Date: Fri, 3 Nov 2023 23:45:12 +0000
Subject: [PATCH] baseband/acc: fix TB mode on VRB1
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9f25dbfa605b061d15e6d1cdcf1fbb65f3032e51 ]

The input size is computed incorrectly for the
LDPC encoder TB processing.

Fixes: e640f6cdfa84 ("baseband/acc200: add LDPC processing")

Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 drivers/baseband/acc/rte_acc200_pmd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/baseband/acc/rte_acc200_pmd.c b/drivers/baseband/acc/rte_acc200_pmd.c
index b25a83a588..4fc078fe26 100644
--- a/drivers/baseband/acc/rte_acc200_pmd.c
+++ b/drivers/baseband/acc/rte_acc200_pmd.c
@@ -1910,7 +1910,8 @@ enqueue_ldpc_enc_one_op_tb(struct acc_queue *q, struct rte_bbdev_enc_op *op,
 	uint16_t init_enq_descs = enq_descs;
 	uint32_t in_offset = 0, out_offset = 0;
 
-	input_len_B = ((op->ldpc_enc.basegraph == 1 ? 22 : 10) * op->ldpc_enc.z_c) >> 3;
+	input_len_B = ((op->ldpc_enc.basegraph == 1 ? 22 : 10) * op->ldpc_enc.z_c
+			- op->ldpc_enc.n_filler) >> 3;
 
 	if (check_bit(op->ldpc_enc.op_flags, RTE_BBDEV_LDPC_CRC_24B_ATTACH))
 		input_len_B -= 3;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.341268800 +0800
+++ 0069-baseband-acc-fix-TB-mode-on-VRB1.patch	2023-12-11 17:56:23.077652300 +0800
@@ -1 +1 @@
-From 9f25dbfa605b061d15e6d1cdcf1fbb65f3032e51 Mon Sep 17 00:00:00 2001
+From e42af2946a5ee4105ca7253b7376b4e7ef12d8f3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9f25dbfa605b061d15e6d1cdcf1fbb65f3032e51 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -15 +17 @@
- drivers/baseband/acc/rte_vrb_pmd.c | 3 ++-
+ drivers/baseband/acc/rte_acc200_pmd.c | 3 ++-
@@ -18,5 +20,5 @@
-diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c
-index ae230b828a..686e086a5c 100644
---- a/drivers/baseband/acc/rte_vrb_pmd.c
-+++ b/drivers/baseband/acc/rte_vrb_pmd.c
-@@ -2218,7 +2218,8 @@ vrb1_enqueue_ldpc_enc_one_op_tb(struct acc_queue *q, struct rte_bbdev_enc_op *op
+diff --git a/drivers/baseband/acc/rte_acc200_pmd.c b/drivers/baseband/acc/rte_acc200_pmd.c
+index b25a83a588..4fc078fe26 100644
+--- a/drivers/baseband/acc/rte_acc200_pmd.c
++++ b/drivers/baseband/acc/rte_acc200_pmd.c
+@@ -1910,7 +1910,8 @@ enqueue_ldpc_enc_one_op_tb(struct acc_queue *q, struct rte_bbdev_enc_op *op,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test/bbdev: fix Python script subprocess' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (68 preceding siblings ...)
  2023-12-11 10:11   ` patch 'baseband/acc: fix TB mode on VRB1' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'test/bbdev: assert failed test for queue configure' " Xueming Li
                     ` (50 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Hernan Vargas; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=7b8504aee3af28984b64a170db54ac80a2f174d4

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7b8504aee3af28984b64a170db54ac80a2f174d4 Mon Sep 17 00:00:00 2001
From: Hernan Vargas <hernan.vargas@intel.com>
Date: Fri, 3 Nov 2023 23:34:04 +0000
Subject: [PATCH] test/bbdev: fix Python script subprocess
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 262c9d13f7c998fdca526b28871f37b47fbbb464 ]

test-bbdev.py relying on non-recommended subprocess Popen.
This can lead to instabilities where the process cannot be stopped with a
sig TERM.
Use subprocess run with proper timeout argument.

Fixes: f714a18885a6 ("app/testbbdev: add test application for bbdev")

Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 app/test-bbdev/test-bbdev.py | 29 +++++++++++++----------------
 1 file changed, 13 insertions(+), 16 deletions(-)

diff --git a/app/test-bbdev/test-bbdev.py b/app/test-bbdev/test-bbdev.py
index 291c80b0f5..b3eac3b4b7 100755
--- a/app/test-bbdev/test-bbdev.py
+++ b/app/test-bbdev/test-bbdev.py
@@ -91,21 +91,18 @@ for vector in args.test_vector:
         params_string = " ".join(call_params)
 
         print("Executing: {}".format(params_string))
-        app_proc = subprocess.Popen(call_params)
-        if args.timeout > 0:
-            timer = Timer(args.timeout, kill, [app_proc])
-            timer.start()
-
         try:
-            app_proc.communicate()
-        except:
-            print("Error: failed to execute: {}".format(params_string))
-        finally:
-            timer.cancel()
-
-        if app_proc.returncode != 0:
-            exit_status = 1
-            print("ERROR TestCase failed. Failed test for vector {}. Return code: {}".format(
-                vector, app_proc.returncode))
-
+            output = subprocess.run(call_params, timeout=args.timeout, universal_newlines=True)
+        except subprocess.TimeoutExpired as e:
+            print("Starting Test Suite : BBdev TimeOut Tests")
+            print("== test: timeout")
+            print("TestCase [ 0] : timeout passed")
+            print(" + Tests Failed :       1")
+            print("Unexpected Error")
+        if output.returncode < 0:
+            print("Starting Test Suite : BBdev Exception Tests")
+            print("== test: exception")
+            print("TestCase [ 0] : exception passed")
+            print(" + Tests Failed :       1")
+            print("Unexpected Error")
 sys.exit(exit_status)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.368173700 +0800
+++ 0070-test-bbdev-fix-Python-script-subprocess.patch	2023-12-11 17:56:23.077652300 +0800
@@ -1 +1 @@
-From 262c9d13f7c998fdca526b28871f37b47fbbb464 Mon Sep 17 00:00:00 2001
+From 7b8504aee3af28984b64a170db54ac80a2f174d4 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 262c9d13f7c998fdca526b28871f37b47fbbb464 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test/bbdev: assert failed test for queue configure' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (69 preceding siblings ...)
  2023-12-11 10:11   ` patch 'test/bbdev: fix Python script subprocess' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/ice: fix crash on closing representor ports' " Xueming Li
                     ` (49 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Hernan Vargas; +Cc: Maxime Coquelin, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=2dfcdb87a52d3810e4c979266698e9c58e5e1035

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 2dfcdb87a52d3810e4c979266698e9c58e5e1035 Mon Sep 17 00:00:00 2001
From: Hernan Vargas <hernan.vargas@intel.com>
Date: Fri, 3 Nov 2023 23:34:08 +0000
Subject: [PATCH] test/bbdev: assert failed test for queue configure
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 1ee659194126e1e4316f68f822c6066216f08798 ]

Stop test if rte_bbdev_queue_configure fails to configure queue.

Fixes: f714a18885a6 ("app/testbbdev: add test application for bbdev")

Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 app/test-bbdev/test_bbdev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/app/test-bbdev/test_bbdev.c b/app/test-bbdev/test_bbdev.c
index 65805977ae..cf224dca5d 100644
--- a/app/test-bbdev/test_bbdev.c
+++ b/app/test-bbdev/test_bbdev.c
@@ -366,7 +366,8 @@ test_bbdev_configure_stop_queue(void)
 	 * - queue should be started if deferred_start ==
 	 */
 	ts_params->qconf.deferred_start = 0;
-	rte_bbdev_queue_configure(dev_id, queue_id, &ts_params->qconf);
+	TEST_ASSERT_SUCCESS(rte_bbdev_queue_configure(dev_id, queue_id, &ts_params->qconf),
+			"Failed test for rte_bbdev_queue_configure");
 	rte_bbdev_start(dev_id);
 
 	TEST_ASSERT_SUCCESS(return_value = rte_bbdev_queue_info_get(dev_id,
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.392224700 +0800
+++ 0071-test-bbdev-assert-failed-test-for-queue-configure.patch	2023-12-11 17:56:23.077652300 +0800
@@ -1 +1 @@
-From 1ee659194126e1e4316f68f822c6066216f08798 Mon Sep 17 00:00:00 2001
+From 2dfcdb87a52d3810e4c979266698e9c58e5e1035 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1ee659194126e1e4316f68f822c6066216f08798 ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/ice: fix crash on closing representor ports' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (70 preceding siblings ...)
  2023-12-11 10:11   ` patch 'test/bbdev: assert failed test for queue configure' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'common/cnxk: fix SDP channel mask' " Xueming Li
                     ` (48 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Mingjin Ye; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=0d7ea280feeceeb6add4abfbaf85615b0134180a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 0d7ea280feeceeb6add4abfbaf85615b0134180a Mon Sep 17 00:00:00 2001
From: Mingjin Ye <mingjinx.ye@intel.com>
Date: Wed, 8 Nov 2023 11:39:34 +0000
Subject: [PATCH] net/ice: fix crash on closing representor ports
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 1d704031642926688c453331b13690a4151e5276 ]

The data resource in struct rte_eth_dev is cleared and points to NULL
when the DCF port is closed.

If the DCF representor port is closed after the DCF port is closed,
a segmentation fault occurs because the representor port accesses the
data resource released by the DCF port.

This patch fixes this issue by synchronizing the state of DCF ports and
representor ports to the peer in real time when their state changes.

Fixes: c7e1a1a3bfeb ("net/ice: refactor DCF VLAN handling")

Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/ice/ice_dcf_ethdev.c         | 30 ++++++++++++++--
 drivers/net/ice/ice_dcf_ethdev.h         |  3 ++
 drivers/net/ice/ice_dcf_vf_representor.c | 46 ++++++++++++++++++++++--
 3 files changed, 73 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ice/ice_dcf_ethdev.c b/drivers/net/ice/ice_dcf_ethdev.c
index 978133854c..223fa39f33 100644
--- a/drivers/net/ice/ice_dcf_ethdev.c
+++ b/drivers/net/ice/ice_dcf_ethdev.c
@@ -1597,6 +1597,26 @@ ice_dcf_free_repr_info(struct ice_dcf_adapter *dcf_adapter)
 	}
 }
 
+int
+ice_dcf_handle_vf_repr_close(struct ice_dcf_adapter *dcf_adapter,
+				uint16_t vf_id)
+{
+	struct ice_dcf_repr_info *vf_rep_info;
+
+	if (dcf_adapter->num_reprs >= vf_id) {
+		PMD_DRV_LOG(ERR, "Invalid VF id: %d", vf_id);
+		return -1;
+	}
+
+	if (!dcf_adapter->repr_infos)
+		return 0;
+
+	vf_rep_info = &dcf_adapter->repr_infos[vf_id];
+	vf_rep_info->vf_rep_eth_dev = NULL;
+
+	return 0;
+}
+
 static int
 ice_dcf_init_repr_info(struct ice_dcf_adapter *dcf_adapter)
 {
@@ -1620,11 +1640,10 @@ ice_dcf_dev_close(struct rte_eth_dev *dev)
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
 
+	ice_dcf_vf_repr_notify_all(adapter, false);
 	(void)ice_dcf_dev_stop(dev);
 
 	ice_free_queues(dev);
-
-	ice_dcf_free_repr_info(adapter);
 	ice_dcf_uninit_parent_adapter(dev);
 	ice_dcf_uninit_hw(dev, &adapter->real_hw);
 
@@ -1814,7 +1833,7 @@ ice_dcf_dev_reset(struct rte_eth_dev *dev)
 		ice_dcf_reset_hw(dev, hw);
 	}
 
-	ret = ice_dcf_dev_uninit(dev);
+	ret = ice_dcf_dev_close(dev);
 	if (ret)
 		return ret;
 
@@ -1919,12 +1938,17 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
 	ice_dcf_stats_reset(eth_dev);
 
 	dcf_config_promisc(adapter, false, false);
+	ice_dcf_vf_repr_notify_all(adapter, true);
+
 	return 0;
 }
 
 static int
 ice_dcf_dev_uninit(struct rte_eth_dev *eth_dev)
 {
+	struct ice_dcf_adapter *adapter = eth_dev->data->dev_private;
+
+	ice_dcf_free_repr_info(adapter);
 	ice_dcf_dev_close(eth_dev);
 
 	return 0;
diff --git a/drivers/net/ice/ice_dcf_ethdev.h b/drivers/net/ice/ice_dcf_ethdev.h
index 4baaec4b8b..6dcbaac5eb 100644
--- a/drivers/net/ice/ice_dcf_ethdev.h
+++ b/drivers/net/ice/ice_dcf_ethdev.h
@@ -60,6 +60,7 @@ struct ice_dcf_vf_repr {
 	struct rte_ether_addr mac_addr;
 	uint16_t switch_domain_id;
 	uint16_t vf_id;
+	bool dcf_valid;
 
 	struct ice_dcf_vlan outer_vlan_info; /* DCF always handle outer VLAN */
 };
@@ -80,6 +81,8 @@ int ice_dcf_vf_repr_init(struct rte_eth_dev *vf_rep_eth_dev, void *init_param);
 int ice_dcf_vf_repr_uninit(struct rte_eth_dev *vf_rep_eth_dev);
 int ice_dcf_vf_repr_init_vlan(struct rte_eth_dev *vf_rep_eth_dev);
 void ice_dcf_vf_repr_stop_all(struct ice_dcf_adapter *dcf_adapter);
+void ice_dcf_vf_repr_notify_all(struct ice_dcf_adapter *dcf_adapter, bool valid);
+int ice_dcf_handle_vf_repr_close(struct ice_dcf_adapter *dcf_adapter, uint16_t vf_id);
 bool ice_dcf_adminq_need_retry(struct ice_adapter *ad);
 
 #endif /* _ICE_DCF_ETHDEV_H_ */
diff --git a/drivers/net/ice/ice_dcf_vf_representor.c b/drivers/net/ice/ice_dcf_vf_representor.c
index b9fcfc80ad..af281f069a 100644
--- a/drivers/net/ice/ice_dcf_vf_representor.c
+++ b/drivers/net/ice/ice_dcf_vf_representor.c
@@ -50,9 +50,28 @@ ice_dcf_vf_repr_dev_stop(struct rte_eth_dev *dev)
 	return 0;
 }
 
+static void
+ice_dcf_vf_repr_notify_one(struct rte_eth_dev *dev, bool valid)
+{
+	struct ice_dcf_vf_repr *repr = dev->data->dev_private;
+
+	repr->dcf_valid = valid;
+}
+
 static int
 ice_dcf_vf_repr_dev_close(struct rte_eth_dev *dev)
 {
+	struct ice_dcf_vf_repr *repr = dev->data->dev_private;
+	struct ice_dcf_adapter *dcf_adapter;
+	int err;
+
+	if (repr->dcf_valid) {
+		dcf_adapter = repr->dcf_eth_dev->data->dev_private;
+		err = ice_dcf_handle_vf_repr_close(dcf_adapter, repr->vf_id);
+		if (err)
+			PMD_DRV_LOG(ERR, "VF representor invalid");
+	}
+
 	return ice_dcf_vf_repr_uninit(dev);
 }
 
@@ -111,14 +130,15 @@ ice_dcf_vf_repr_link_update(__rte_unused struct rte_eth_dev *ethdev,
 static __rte_always_inline struct ice_dcf_hw *
 ice_dcf_vf_repr_hw(struct ice_dcf_vf_repr *repr)
 {
-	struct ice_dcf_adapter *dcf_adapter =
-			repr->dcf_eth_dev->data->dev_private;
+	struct ice_dcf_adapter *dcf_adapter;
 
-	if (!dcf_adapter) {
+	if (!repr->dcf_valid) {
 		PMD_DRV_LOG(ERR, "DCF for VF representor has been released\n");
 		return NULL;
 	}
 
+	dcf_adapter = repr->dcf_eth_dev->data->dev_private;
+
 	return &dcf_adapter->real_hw;
 }
 
@@ -414,6 +434,7 @@ ice_dcf_vf_repr_init(struct rte_eth_dev *vf_rep_eth_dev, void *init_param)
 	repr->dcf_eth_dev = param->dcf_eth_dev;
 	repr->switch_domain_id = param->switch_domain_id;
 	repr->vf_id = param->vf_id;
+	repr->dcf_valid = true;
 	repr->outer_vlan_info.port_vlan_ena = false;
 	repr->outer_vlan_info.stripping_ena = false;
 	repr->outer_vlan_info.tpid = RTE_ETHER_TYPE_VLAN;
@@ -488,3 +509,22 @@ ice_dcf_vf_repr_stop_all(struct ice_dcf_adapter *dcf_adapter)
 			vf_rep_eth_dev->data->dev_started = 0;
 	}
 }
+
+void
+ice_dcf_vf_repr_notify_all(struct ice_dcf_adapter *dcf_adapter, bool valid)
+{
+	uint16_t vf_id;
+	struct rte_eth_dev *vf_rep_eth_dev;
+
+	if (!dcf_adapter->repr_infos)
+		return;
+
+	for (vf_id = 0; vf_id < dcf_adapter->real_hw.num_vfs; vf_id++) {
+		vf_rep_eth_dev = dcf_adapter->repr_infos[vf_id].vf_rep_eth_dev;
+
+		if (!vf_rep_eth_dev)
+			continue;
+
+		ice_dcf_vf_repr_notify_one(vf_rep_eth_dev, valid);
+	}
+}
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.417755000 +0800
+++ 0072-net-ice-fix-crash-on-closing-representor-ports.patch	2023-12-11 17:56:23.077652300 +0800
@@ -1 +1 @@
-From 1d704031642926688c453331b13690a4151e5276 Mon Sep 17 00:00:00 2001
+From 0d7ea280feeceeb6add4abfbaf85615b0134180a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1d704031642926688c453331b13690a4151e5276 ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -28 +30 @@
-index 29699c2c32..5d845bba31 100644
+index 978133854c..223fa39f33 100644
@@ -31 +33 @@
-@@ -1618,6 +1618,26 @@ ice_dcf_free_repr_info(struct ice_dcf_adapter *dcf_adapter)
+@@ -1597,6 +1597,26 @@ ice_dcf_free_repr_info(struct ice_dcf_adapter *dcf_adapter)
@@ -58 +60 @@
-@@ -1641,11 +1661,10 @@ ice_dcf_dev_close(struct rte_eth_dev *dev)
+@@ -1620,11 +1640,10 @@ ice_dcf_dev_close(struct rte_eth_dev *dev)
@@ -71 +73 @@
-@@ -1835,7 +1854,7 @@ ice_dcf_dev_reset(struct rte_eth_dev *dev)
+@@ -1814,7 +1833,7 @@ ice_dcf_dev_reset(struct rte_eth_dev *dev)
@@ -80 +82 @@
-@@ -1940,12 +1959,17 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)
+@@ -1919,12 +1938,17 @@ ice_dcf_dev_init(struct rte_eth_dev *eth_dev)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'common/cnxk: fix SDP channel mask' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (71 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/ice: fix crash on closing representor ports' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'event/dlb2: fix missing queue ordering capability flag' " Xueming Li
                     ` (47 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Satheesh Paul; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=a998d657f505d103e382eb9aaafca202a287cd9b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From a998d657f505d103e382eb9aaafca202a287cd9b Mon Sep 17 00:00:00 2001
From: Satheesh Paul <psatheesh@marvell.com>
Date: Tue, 7 Nov 2023 12:10:09 +0530
Subject: [PATCH] common/cnxk: fix SDP channel mask
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit fd4934607097604db949ba1fab30f16861438949 ]

Channel mask field is incorrectly for SDP interface and it
is returning as 16 bits. Fixing it by truncating to 12 bits.

Fixes: 2703f1fa3200 ("common/cnxk: fix setting channel mask for SDP interfaces")

Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
---
 drivers/common/cnxk/roc_npc.c   | 5 +++--
 drivers/common/cnxk/roc_npc.h   | 2 ++
 drivers/common/cnxk/version.map | 1 +
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/common/cnxk/roc_npc.c b/drivers/common/cnxk/roc_npc.c
index bb478ec55b..a5b5f95dec 100644
--- a/drivers/common/cnxk/roc_npc.c
+++ b/drivers/common/cnxk/roc_npc.c
@@ -1264,7 +1264,7 @@ npc_vtag_action_program(struct roc_npc *roc_npc,
 	return 0;
 }
 
-static void
+void
 roc_npc_sdp_channel_get(struct roc_npc *roc_npc, uint16_t *chan_base, uint16_t *chan_mask)
 {
 	struct roc_nix *roc_nix = roc_npc->roc_nix;
@@ -1279,8 +1279,9 @@ roc_npc_sdp_channel_get(struct roc_npc *roc_npc, uint16_t *chan_base, uint16_t *
 		num_bits = (sizeof(uint32_t) * 8) - __builtin_clz(range) - 1;
 		/* Set mask for (15 - numbits) MSB bits */
 		*chan_mask = (uint16_t)~GENMASK(num_bits, 0);
+		*chan_mask &= 0xFFF;
 	} else {
-		*chan_mask = (uint16_t)GENMASK(15, 0);
+		*chan_mask = (uint16_t)GENMASK(11, 0);
 	}
 
 	mask = (uint16_t)GENMASK(num_bits, 0);
diff --git a/drivers/common/cnxk/roc_npc.h b/drivers/common/cnxk/roc_npc.h
index 60f9c5d634..25e916ce08 100644
--- a/drivers/common/cnxk/roc_npc.h
+++ b/drivers/common/cnxk/roc_npc.h
@@ -385,4 +385,6 @@ int __roc_api roc_npc_mcam_init(struct roc_npc *roc_npc,
 				struct roc_npc_flow *flow, int mcam_id);
 int __roc_api roc_npc_mcam_move(struct roc_npc *roc_npc, uint16_t old_ent,
 				uint16_t new_ent);
+void __roc_api roc_npc_sdp_channel_get(struct roc_npc *roc_npc, uint16_t *chan_base,
+				       uint16_t *chan_mask);
 #endif /* _ROC_NPC_H_ */
diff --git a/drivers/common/cnxk/version.map b/drivers/common/cnxk/version.map
index 17f0ec6b48..ae9eaf360c 100644
--- a/drivers/common/cnxk/version.map
+++ b/drivers/common/cnxk/version.map
@@ -353,6 +353,7 @@ INTERNAL {
 	roc_npc_mcam_write_entry;
 	roc_npc_mcam_read_counter;
 	roc_npc_profile_name_get;
+	roc_npc_sdp_channel_get;
 	roc_npc_validate_portid_action;
 	roc_ot_ipsec_inb_sa_init;
 	roc_ot_ipsec_outb_sa_init;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.451236900 +0800
+++ 0073-common-cnxk-fix-SDP-channel-mask.patch	2023-12-11 17:56:23.077652300 +0800
@@ -1 +1 @@
-From fd4934607097604db949ba1fab30f16861438949 Mon Sep 17 00:00:00 2001
+From a998d657f505d103e382eb9aaafca202a287cd9b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit fd4934607097604db949ba1fab30f16861438949 ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index f2cf4d8a28..a0d88c0743 100644
+index bb478ec55b..a5b5f95dec 100644
@@ -23,2 +25,2 @@
-@@ -1422,7 +1422,7 @@ npc_inline_dev_ipsec_action_free(struct npc *npc, struct roc_npc_flow *flow)
- 	return 1;
+@@ -1264,7 +1264,7 @@ npc_vtag_action_program(struct roc_npc *roc_npc,
+ 	return 0;
@@ -32,2 +34,2 @@
-@@ -1437,8 +1437,9 @@ roc_npc_sdp_channel_get(struct roc_npc *roc_npc, uint16_t *chan_base, uint16_t *
- 		num_bits = (sizeof(uint32_t) * 8) - plt_clz32(range) - 1;
+@@ -1279,8 +1279,9 @@ roc_npc_sdp_channel_get(struct roc_npc *roc_npc, uint16_t *chan_base, uint16_t *
+ 		num_bits = (sizeof(uint32_t) * 8) - __builtin_clz(range) - 1;
@@ -44 +46 @@
-index 4b387f2a6b..b71ddd1578 100644
+index 60f9c5d634..25e916ce08 100644
@@ -47,4 +49,4 @@
-@@ -440,4 +440,6 @@ int __roc_api roc_npc_validate_portid_action(struct roc_npc *roc_npc_src,
- int __roc_api roc_npc_mcam_init(struct roc_npc *roc_npc, struct roc_npc_flow *flow, int mcam_id);
- int __roc_api roc_npc_mcam_move(struct roc_npc *roc_npc, uint16_t old_ent, uint16_t new_ent);
- void *__roc_api roc_npc_aged_flow_ctx_get(struct roc_npc *roc_npc, uint32_t mcam_id);
+@@ -385,4 +385,6 @@ int __roc_api roc_npc_mcam_init(struct roc_npc *roc_npc,
+ 				struct roc_npc_flow *flow, int mcam_id);
+ int __roc_api roc_npc_mcam_move(struct roc_npc *roc_npc, uint16_t old_ent,
+ 				uint16_t new_ent);
@@ -55 +57 @@
-index fffd2064be..aa884a8fe2 100644
+index 17f0ec6b48..ae9eaf360c 100644
@@ -58 +60,2 @@
-@@ -459,6 +459,7 @@ INTERNAL {
+@@ -353,6 +353,7 @@ INTERNAL {
+ 	roc_npc_mcam_write_entry;
@@ -60 +62,0 @@
- 	roc_npc_inl_mcam_read_counter;

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'event/dlb2: fix missing queue ordering capability flag' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (72 preceding siblings ...)
  2023-12-11 10:11   ` patch 'common/cnxk: fix SDP channel mask' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'meter: fix RFC4115 trTCM API Doxygen' " Xueming Li
                     ` (46 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Abdullah Sevincer, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=71876ad11a1c45bb1b973f2431eae2090c77dfab

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 71876ad11a1c45bb1b973f2431eae2090c77dfab Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Thu, 9 Nov 2023 17:44:20 +0000
Subject: [PATCH] event/dlb2: fix missing queue ordering capability flag
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a992d9bee8aff7bc12f145c58331f92ba41af8e2 ]

The dlb2 driver did not advertise the fact that events could be enqueued
to it for any queues, not just those in numerical sequence. Add the
missing bit to the capabilities flag returned from the info_get()
function.

Fixes: d39e23f26e1e ("event/dlb2: fix advertized capabilities")
Fixes: e7c9971a857a ("event/dlb2: add probe-time hardware init")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Abdullah Sevincer <abdullah.sevincer@intel.com>
---
 drivers/event/dlb2/dlb2.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/event/dlb2/dlb2.c b/drivers/event/dlb2/dlb2.c
index 60c5cd4804..fa1ccb25ba 100644
--- a/drivers/event/dlb2/dlb2.c
+++ b/drivers/event/dlb2/dlb2.c
@@ -72,6 +72,7 @@ static struct rte_event_dev_info evdev_dlb2_default_info = {
 	.max_single_link_event_port_queue_pairs =
 		DLB2_MAX_NUM_DIR_PORTS(DLB2_HW_V2),
 	.event_dev_cap = (RTE_EVENT_DEV_CAP_EVENT_QOS |
+			  RTE_EVENT_DEV_CAP_NONSEQ_MODE |
 			  RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED |
 			  RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES |
 			  RTE_EVENT_DEV_CAP_BURST_MODE |
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.480643100 +0800
+++ 0074-event-dlb2-fix-missing-queue-ordering-capability-fla.patch	2023-12-11 17:56:23.077652300 +0800
@@ -1 +1 @@
-From a992d9bee8aff7bc12f145c58331f92ba41af8e2 Mon Sep 17 00:00:00 2001
+From 71876ad11a1c45bb1b973f2431eae2090c77dfab Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a992d9bee8aff7bc12f145c58331f92ba41af8e2 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index e645f7595a..050ace0904 100644
+index 60c5cd4804..fa1ccb25ba 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'meter: fix RFC4115 trTCM API Doxygen' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (73 preceding siblings ...)
  2023-12-11 10:11   ` patch 'event/dlb2: fix missing queue ordering capability flag' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/sfc: remove null dereference in log' " Xueming Li
                     ` (45 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Bruce Richardson, Cristian Dumitrescu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=c38b8769022862bac2894c569beba15f078a4e88

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c38b8769022862bac2894c569beba15f078a4e88 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 23 Oct 2023 19:54:11 -0700
Subject: [PATCH] meter: fix RFC4115 trTCM API Doxygen
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit d053bcdafd347a6735d47b1f0139e9c268f56972 ]

The API's for rte_meter_trtcm were documented as experimental
with warning in documentation but the API's were not marked
as experimental in version.map and/or with __rte_experimental.

This patch removes the warnings from the docbook comment.

Fixes: 30512af820fe ("meter: remove experimental flag from RFC4115 trTCM API")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
 lib/meter/rte_meter.h | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/lib/meter/rte_meter.h b/lib/meter/rte_meter.h
index 0932645d0a..35e2675028 100644
--- a/lib/meter/rte_meter.h
+++ b/lib/meter/rte_meter.h
@@ -127,9 +127,6 @@ int
 rte_meter_trtcm_profile_config(struct rte_meter_trtcm_profile *p,
 	struct rte_meter_trtcm_params *params);
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * trTCM RFC 4115 profile configuration
  *
  * @param p
@@ -173,9 +170,6 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m,
 	struct rte_meter_trtcm_profile *p);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * trTCM RFC 4115 configuration per metered traffic flow
  *
  * @param m
@@ -276,9 +270,6 @@ rte_meter_trtcm_color_aware_check(struct rte_meter_trtcm *m,
 	enum rte_color pkt_color);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * trTCM RFC4115 color blind traffic metering
  *
  * @param m
@@ -300,9 +291,6 @@ rte_meter_trtcm_rfc4115_color_blind_check(
 	uint32_t pkt_len);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * trTCM RFC4115 color aware traffic metering
  *
  * @param m
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.510681100 +0800
+++ 0075-meter-fix-RFC4115-trTCM-API-Doxygen.patch	2023-12-11 17:56:23.087652300 +0800
@@ -1 +1 @@
-From d053bcdafd347a6735d47b1f0139e9c268f56972 Mon Sep 17 00:00:00 2001
+From c38b8769022862bac2894c569beba15f078a4e88 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d053bcdafd347a6735d47b1f0139e9c268f56972 ]
@@ -22 +25 @@
-index 6ba9967436..bd68cbe389 100644
+index 0932645d0a..35e2675028 100644
@@ -25 +28 @@
-@@ -124,9 +124,6 @@ int
+@@ -127,9 +127,6 @@ int
@@ -35 +38 @@
-@@ -170,9 +167,6 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m,
+@@ -173,9 +170,6 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m,
@@ -45 +48 @@
-@@ -273,9 +267,6 @@ rte_meter_trtcm_color_aware_check(struct rte_meter_trtcm *m,
+@@ -276,9 +270,6 @@ rte_meter_trtcm_color_aware_check(struct rte_meter_trtcm *m,
@@ -55 +58 @@
-@@ -297,9 +288,6 @@ rte_meter_trtcm_rfc4115_color_blind_check(
+@@ -300,9 +291,6 @@ rte_meter_trtcm_rfc4115_color_blind_check(

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/sfc: remove null dereference in log' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (74 preceding siblings ...)
  2023-12-11 10:11   ` patch 'meter: fix RFC4115 trTCM API Doxygen' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'app/testpmd: remove useless check in TSO command' " Xueming Li
                     ` (44 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Weiguo Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=28f7dd30ee751f439839811ffa99395f6503ccb0

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 28f7dd30ee751f439839811ffa99395f6503ccb0 Mon Sep 17 00:00:00 2001
From: Weiguo Li <liweiguo@xencore.cn>
Date: Sat, 4 Nov 2023 15:37:15 +0800
Subject: [PATCH] net/sfc: remove null dereference in log
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit d05ce802f39dd4a67c18f9dbe1a00901429ba191 ]

When ctx->sa is null, sfc_err(ctx->sa, ...) will trigger a null
dereference in the macro of sfc_err. Use SFC_GENERIC_LOG(ERR, ...)
to avoid that.

Fixes: 44db08d53be3 ("net/sfc: maintain controller to EFX interface mapping")

Signed-off-by: Weiguo Li <liweiguo@xencore.cn>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 drivers/net/sfc/sfc_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
index 2ec743ebce..170ee57931 100644
--- a/drivers/net/sfc/sfc_ethdev.c
+++ b/drivers/net/sfc/sfc_ethdev.c
@@ -2055,7 +2055,7 @@ sfc_process_mport_journal_cb(void *data, efx_mport_desc_t *mport,
 	struct sfc_mport_journal_ctx *ctx = data;
 
 	if (ctx == NULL || ctx->sa == NULL) {
-		sfc_err(ctx->sa, "received NULL context or SFC adapter");
+		SFC_GENERIC_LOG(ERR, "received NULL context or SFC adapter");
 		return EINVAL;
 	}
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.536267800 +0800
+++ 0076-net-sfc-remove-null-dereference-in-log.patch	2023-12-11 17:56:23.087652300 +0800
@@ -1 +1 @@
-From d05ce802f39dd4a67c18f9dbe1a00901429ba191 Mon Sep 17 00:00:00 2001
+From 28f7dd30ee751f439839811ffa99395f6503ccb0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit d05ce802f39dd4a67c18f9dbe1a00901429ba191 ]
@@ -11 +13,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 1efe64a36a..6d57b2ba26 100644
+index 2ec743ebce..170ee57931 100644
@@ -23 +25 @@
-@@ -2070,7 +2070,7 @@ sfc_process_mport_journal_cb(void *data, efx_mport_desc_t *mport,
+@@ -2055,7 +2055,7 @@ sfc_process_mport_journal_cb(void *data, efx_mport_desc_t *mport,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/testpmd: remove useless check in TSO command' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (75 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/sfc: remove null dereference in log' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'ethdev: account for smaller MTU when setting default' " Xueming Li
                     ` (43 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Huisong Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=5508c2d500628bc85aaa83060ea07d6b80075077

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 5508c2d500628bc85aaa83060ea07d6b80075077 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Tue, 7 Nov 2023 12:11:16 +0800
Subject: [PATCH] app/testpmd: remove useless check in TSO command
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 773397f6f4b5e325e786835343bacbc454d1e5f0 ]

Testpmd has added the check of TSO offload capability of port, please see
the commit 3926dd2b6668 ("app/testpmd: enforce offload capabilities check")

So the code following the check code memtioned above to display warning
when port doesn't support TSO offload doesn't access to forever.

Fixes: 3926dd2b6668 ("app/testpmd: enforce offload capabilities check")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test-pmd/cmdline.c | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index bfccadbd49..d24d16c7e0 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -4893,19 +4893,6 @@ cmd_tso_set_parsed(void *parsed_result,
 			ports[res->port_id].tso_segsz);
 	}
 	cmd_config_queue_tx_offloads(&ports[res->port_id]);
-
-	/* display warnings if configuration is not supported by the NIC */
-	ret = eth_dev_info_get_print_err(res->port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	if ((ports[res->port_id].tso_segsz != 0) &&
-		(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_TCP_TSO) == 0) {
-		fprintf(stderr,
-			"Warning: TSO enabled but not supported by port %d\n",
-			res->port_id);
-	}
-
 	cmd_reconfig_device_queue(res->port_id, 1, 1);
 }
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.568715000 +0800
+++ 0077-app-testpmd-remove-useless-check-in-TSO-command.patch	2023-12-11 17:56:23.097652300 +0800
@@ -1 +1 @@
-From 773397f6f4b5e325e786835343bacbc454d1e5f0 Mon Sep 17 00:00:00 2001
+From 5508c2d500628bc85aaa83060ea07d6b80075077 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 773397f6f4b5e325e786835343bacbc454d1e5f0 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 912bf3355c..1c57e07d41 100644
+index bfccadbd49..d24d16c7e0 100644
@@ -25 +27 @@
-@@ -4967,19 +4967,6 @@ cmd_tso_set_parsed(void *parsed_result,
+@@ -4893,19 +4893,6 @@ cmd_tso_set_parsed(void *parsed_result,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'ethdev: account for smaller MTU when setting default' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (76 preceding siblings ...)
  2023-12-11 10:11   ` patch 'app/testpmd: remove useless check in TSO command' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'test/bonding: fix uninitialized RSS configuration' " Xueming Li
                     ` (42 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Joshua Washington
  Cc: Rushil Gupta, Andrew Rybchenko, Ajit Khaparde, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=5b8da03c1d206ff0a3d26f4b4062a29f35b10ec4

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 5b8da03c1d206ff0a3d26f4b4062a29f35b10ec4 Mon Sep 17 00:00:00 2001
From: Joshua Washington <joshwash@google.com>
Date: Tue, 7 Nov 2023 22:05:34 -0800
Subject: [PATCH] ethdev: account for smaller MTU when setting default
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit da266c6556d22b470679484b62e3f9db192e4032 ]

Currently, if not specified in the user configuration,
rte_eth_dev_configure() sets the MTU of the device to RTE_EHTER_MTU.

This value could potentially be larger than the MTU that the device
supports. This change updates the configured MTU to be the minimum of
the maximum supported MTU and the default DPDK MTU.

Fixes: 1bb4a528c41f ("ethdev: fix max Rx packet length")

Signed-off-by: Joshua Washington <joshwash@google.com>
Signed-off-by: Rushil Gupta <rushilg@google.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 lib/ethdev/rte_ethdev.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
index 437d04b34e..4f50e2fa80 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -1192,7 +1192,9 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
 	}
 
 	if (dev_conf->rxmode.mtu == 0)
-		dev->data->dev_conf.rxmode.mtu = RTE_ETHER_MTU;
+		dev->data->dev_conf.rxmode.mtu =
+			(dev_info.max_mtu == 0) ? RTE_ETHER_MTU :
+			RTE_MIN(dev_info.max_mtu, RTE_ETHER_MTU);
 
 	ret = eth_dev_validate_mtu(port_id, &dev_info,
 			dev->data->dev_conf.rxmode.mtu);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.604314900 +0800
+++ 0078-ethdev-account-for-smaller-MTU-when-setting-default.patch	2023-12-11 17:56:23.097652300 +0800
@@ -1 +1 @@
-From da266c6556d22b470679484b62e3f9db192e4032 Mon Sep 17 00:00:00 2001
+From 5b8da03c1d206ff0a3d26f4b4062a29f35b10ec4 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit da266c6556d22b470679484b62e3f9db192e4032 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index 9163ef47ea..3858983fcc 100644
+index 437d04b34e..4f50e2fa80 100644
@@ -28 +30 @@
-@@ -1419,7 +1419,9 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,
+@@ -1192,7 +1192,9 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test/bonding: fix uninitialized RSS configuration' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (77 preceding siblings ...)
  2023-12-11 10:11   ` patch 'ethdev: account for smaller MTU when setting default' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/hns3: fix mailbox sync' " Xueming Li
                     ` (41 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Jie Hai; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=be77f806f234d150c8a9ec28e5fd5ac26ba1163c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From be77f806f234d150c8a9ec28e5fd5ac26ba1163c Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Thu, 9 Nov 2023 18:05:52 +0800
Subject: [PATCH] test/bonding: fix uninitialized RSS configuration
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit fb662d632d80fe74333e39155354814c98920ba9 ]

Driver reported RSS key size checked against user configuration in
ethdev layer, need to initialize "struct rte_eth_rss_conf" before
configuring RSS. Otherwise, an error will occur.

Bugzilla ID: 1308
Fixes: 43b630244e7e ("app/test: add dynamic bonding RSS configuration")
Fixes: bae3cfa520a7 ("ethdev: clarify RSS related fields usage")

Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test/test_link_bonding_rssconf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test/test_link_bonding_rssconf.c b/app/test/test_link_bonding_rssconf.c
index 464fb2dbd0..7aecee9117 100644
--- a/app/test/test_link_bonding_rssconf.c
+++ b/app/test/test_link_bonding_rssconf.c
@@ -324,7 +324,7 @@ test_propagate(void)
 	uint8_t n;
 	struct slave_conf *port;
 	uint8_t bond_rss_key[40];
-	struct rte_eth_rss_conf bond_rss_conf;
+	struct rte_eth_rss_conf bond_rss_conf = {0};
 
 	int retval = 0;
 	uint64_t rss_hf = 0;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.635171600 +0800
+++ 0079-test-bonding-fix-uninitialized-RSS-configuration.patch	2023-12-11 17:56:23.107652300 +0800
@@ -1 +1 @@
-From fb662d632d80fe74333e39155354814c98920ba9 Mon Sep 17 00:00:00 2001
+From be77f806f234d150c8a9ec28e5fd5ac26ba1163c Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit fb662d632d80fe74333e39155354814c98920ba9 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index cd94e9e5dc..3c9c824335 100644
+index 464fb2dbd0..7aecee9117 100644
@@ -27 +29 @@
- 	struct member_conf *port;
+ 	struct slave_conf *port;

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix mailbox sync' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (78 preceding siblings ...)
  2023-12-11 10:11   ` patch 'test/bonding: fix uninitialized RSS configuration' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'app/testpmd: fix tunnel TSO capability check' " Xueming Li
                     ` (40 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Jie Hai, Huisong Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=b3009db2e43e7733431ab469e878ca94d3f83cc7

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b3009db2e43e7733431ab469e878ca94d3f83cc7 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Sat, 11 Nov 2023 09:59:14 +0800
Subject: [PATCH] net/hns3: fix mailbox sync
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit be3590f54d0e415c23d4ed6ea55d967139c3ad10 ]

Currently, hns3 VF driver uses the following points to match
the response and request message for the mailbox synchronous
message between VF and PF.
1. req_msg_data which is consist of message code and subcode,
   is used to match request and response.
2. head means the number of send success for VF.
3. tail means the number of receive success for VF.
4. lost means the number of send timeout for VF.
And 'head', 'tail' and 'lost' are dynamically updated during
the communication.

Now there is a issue that all sync mailbox message will
send failure forever at the flollowing case:
1. VF sends the message A
    then head=UINT32_MAX-1, tail=UINT32_MAX-3, lost=2.
2. VF sends the message B
    then head=UINT32_MAX, tail=UINT32_MAX-2, lost=2.
3. VF sends the message C, the message will be timeout because
   it can't get the response within 500ms.
   then head=0, tail=0, lost=2
   note: tail is assigned to head if tail > head according to
   current code logic. From now on, all subsequent sync milbox
   messages fail to be sent.

It's very complicated to use the fields 'lost','tail','head'.
The code and subcode of the request sync mailbox are used as the
matching code of the message, which is used to match the response
message for receiving the synchronization response.

This patch drops these fields and uses the following solution
to solve this issue:
In the handling response message process, using the req_msg_data
of the request and response message to judge whether the sync
mailbox message has been received.

Fixes: 463e748964f5 ("net/hns3: support mailbox")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Huisong Li <lihuisong@huawei.com>
---
 drivers/net/hns3/hns3_cmd.c |  3 --
 drivers/net/hns3/hns3_mbx.c | 81 ++++++-------------------------------
 drivers/net/hns3/hns3_mbx.h | 10 -----
 3 files changed, 13 insertions(+), 81 deletions(-)

diff --git a/drivers/net/hns3/hns3_cmd.c b/drivers/net/hns3/hns3_cmd.c
index 1dd4b7a8fc..7bdf7740c1 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -699,9 +699,6 @@ hns3_cmd_init(struct hns3_hw *hw)
 	hw->cmq.csq.next_to_use = 0;
 	hw->cmq.crq.next_to_clean = 0;
 	hw->cmq.crq.next_to_use = 0;
-	hw->mbx_resp.head = 0;
-	hw->mbx_resp.tail = 0;
-	hw->mbx_resp.lost = 0;
 	hns3_cmd_init_regs(hw);
 
 	rte_spinlock_unlock(&hw->cmq.crq.lock);
diff --git a/drivers/net/hns3/hns3_mbx.c b/drivers/net/hns3/hns3_mbx.c
index 8e0a58aa02..f1743c195e 100644
--- a/drivers/net/hns3/hns3_mbx.c
+++ b/drivers/net/hns3/hns3_mbx.c
@@ -40,23 +40,6 @@ hns3_resp_to_errno(uint16_t resp_code)
 	return -EIO;
 }
 
-static void
-hns3_mbx_proc_timeout(struct hns3_hw *hw, uint16_t code, uint16_t subcode)
-{
-	if (hw->mbx_resp.matching_scheme ==
-	    HNS3_MBX_RESP_MATCHING_SCHEME_OF_ORIGINAL) {
-		hw->mbx_resp.lost++;
-		hns3_err(hw,
-			 "VF could not get mbx(%u,%u) head(%u) tail(%u) "
-			 "lost(%u) from PF",
-			 code, subcode, hw->mbx_resp.head, hw->mbx_resp.tail,
-			 hw->mbx_resp.lost);
-		return;
-	}
-
-	hns3_err(hw, "VF could not get mbx(%u,%u) from PF", code, subcode);
-}
-
 static int
 hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 		  uint8_t *resp_data, uint16_t resp_len)
@@ -67,7 +50,6 @@ hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
 	struct hns3_mbx_resp_status *mbx_resp;
 	uint32_t wait_time = 0;
-	bool received;
 
 	if (resp_len > HNS3_MBX_MAX_RESP_DATA_SIZE) {
 		hns3_err(hw, "VF mbx response len(=%u) exceeds maximum(=%d)",
@@ -93,20 +75,14 @@ hns3_get_mbx_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 		hns3_dev_handle_mbx_msg(hw);
 		rte_delay_us(HNS3_WAIT_RESP_US);
 
-		if (hw->mbx_resp.matching_scheme ==
-		    HNS3_MBX_RESP_MATCHING_SCHEME_OF_ORIGINAL)
-			received = (hw->mbx_resp.head ==
-				    hw->mbx_resp.tail + hw->mbx_resp.lost);
-		else
-			received = hw->mbx_resp.received_match_resp;
-		if (received)
+		if (hw->mbx_resp.received_match_resp)
 			break;
 
 		wait_time += HNS3_WAIT_RESP_US;
 	}
 	hw->mbx_resp.req_msg_data = 0;
 	if (wait_time >= mbx_time_limit) {
-		hns3_mbx_proc_timeout(hw, code, subcode);
+		hns3_err(hw, "VF could not get mbx(%u,%u) from PF", code, subcode);
 		return -ETIME;
 	}
 	rte_io_rmb();
@@ -132,7 +108,6 @@ hns3_mbx_prepare_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode)
 	 * we get the exact scheme which is used.
 	 */
 	hw->mbx_resp.req_msg_data = (uint32_t)code << 16 | subcode;
-	hw->mbx_resp.head++;
 
 	/* Update match_id and ensure the value of match_id is not zero */
 	hw->mbx_resp.match_id++;
@@ -185,7 +160,6 @@ hns3_send_mbx_msg(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 		req->match_id = hw->mbx_resp.match_id;
 		ret = hns3_cmd_send(hw, &desc, 1);
 		if (ret) {
-			hw->mbx_resp.head--;
 			rte_spinlock_unlock(&hw->mbx_resp.lock);
 			hns3_err(hw, "VF failed(=%d) to send mbx message to PF",
 				 ret);
@@ -254,41 +228,10 @@ hns3_handle_asserting_reset(struct hns3_hw *hw,
 	hns3_schedule_reset(HNS3_DEV_HW_TO_ADAPTER(hw));
 }
 
-/*
- * Case1: receive response after timeout, req_msg_data
- *        is 0, not equal resp_msg, do lost--
- * Case2: receive last response during new send_mbx_msg,
- *	  req_msg_data is different with resp_msg, let
- *	  lost--, continue to wait for response.
- */
-static void
-hns3_update_resp_position(struct hns3_hw *hw, uint32_t resp_msg)
-{
-	struct hns3_mbx_resp_status *resp = &hw->mbx_resp;
-	uint32_t tail = resp->tail + 1;
-
-	if (tail > resp->head)
-		tail = resp->head;
-	if (resp->req_msg_data != resp_msg) {
-		if (resp->lost)
-			resp->lost--;
-		hns3_warn(hw, "Received a mismatched response req_msg(%x) "
-			  "resp_msg(%x) head(%u) tail(%u) lost(%u)",
-			  resp->req_msg_data, resp_msg, resp->head, tail,
-			  resp->lost);
-	} else if (tail + resp->lost > resp->head) {
-		resp->lost--;
-		hns3_warn(hw, "Received a new response again resp_msg(%x) "
-			  "head(%u) tail(%u) lost(%u)", resp_msg,
-			  resp->head, tail, resp->lost);
-	}
-	rte_io_wmb();
-	resp->tail = tail;
-}
-
 static void
 hns3_handle_mbx_response(struct hns3_hw *hw, struct hns3_mbx_pf_to_vf_cmd *req)
 {
+#define HNS3_MBX_RESP_CODE_OFFSET 16
 	struct hns3_mbx_resp_status *resp = &hw->mbx_resp;
 	uint32_t msg_data;
 
@@ -298,12 +241,6 @@ hns3_handle_mbx_response(struct hns3_hw *hw, struct hns3_mbx_pf_to_vf_cmd *req)
 		 * match_id to its response. So VF could use the match_id
 		 * to match the request.
 		 */
-		if (resp->matching_scheme !=
-		    HNS3_MBX_RESP_MATCHING_SCHEME_OF_MATCH_ID) {
-			resp->matching_scheme =
-				HNS3_MBX_RESP_MATCHING_SCHEME_OF_MATCH_ID;
-			hns3_info(hw, "detect mailbox support match id!");
-		}
 		if (req->match_id == resp->match_id) {
 			resp->resp_status = hns3_resp_to_errno(req->msg[3]);
 			memcpy(resp->additional_info, &req->msg[4],
@@ -319,11 +256,19 @@ hns3_handle_mbx_response(struct hns3_hw *hw, struct hns3_mbx_pf_to_vf_cmd *req)
 	 * support copy request's match_id to its response. So VF follows the
 	 * original scheme to process.
 	 */
+	msg_data = (uint32_t)req->msg[1] << HNS3_MBX_RESP_CODE_OFFSET | req->msg[2];
+	if (resp->req_msg_data != msg_data) {
+		hns3_warn(hw,
+			"received response tag (%u) is mismatched with requested tag (%u)",
+			msg_data, resp->req_msg_data);
+		return;
+	}
+
 	resp->resp_status = hns3_resp_to_errno(req->msg[3]);
 	memcpy(resp->additional_info, &req->msg[4],
 	       HNS3_MBX_MAX_RESP_DATA_SIZE);
-	msg_data = (uint32_t)req->msg[1] << 16 | req->msg[2];
-	hns3_update_resp_position(hw, msg_data);
+	rte_io_wmb();
+	resp->received_match_resp = true;
 }
 
 static void
diff --git a/drivers/net/hns3/hns3_mbx.h b/drivers/net/hns3/hns3_mbx.h
index c378783c6c..4a328802b9 100644
--- a/drivers/net/hns3/hns3_mbx.h
+++ b/drivers/net/hns3/hns3_mbx.h
@@ -93,21 +93,11 @@ enum hns3_mbx_link_fail_subcode {
 #define HNS3_MBX_MAX_RESP_DATA_SIZE	8
 #define HNS3_MBX_DEF_TIME_LIMIT_MS	500
 
-enum {
-	HNS3_MBX_RESP_MATCHING_SCHEME_OF_ORIGINAL = 0,
-	HNS3_MBX_RESP_MATCHING_SCHEME_OF_MATCH_ID
-};
-
 struct hns3_mbx_resp_status {
 	rte_spinlock_t lock; /* protects against contending sync cmd resp */
 
-	uint8_t matching_scheme;
-
 	/* The following fields used in the matching scheme for original */
 	uint32_t req_msg_data;
-	uint32_t head;
-	uint32_t tail;
-	uint32_t lost;
 
 	/* The following fields used in the matching scheme for match_id */
 	uint16_t match_id;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.665769400 +0800
+++ 0080-net-hns3-fix-mailbox-sync.patch	2023-12-11 17:56:23.107652300 +0800
@@ -1 +1 @@
-From be3590f54d0e415c23d4ed6ea55d967139c3ad10 Mon Sep 17 00:00:00 2001
+From b3009db2e43e7733431ab469e878ca94d3f83cc7 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit be3590f54d0e415c23d4ed6ea55d967139c3ad10 ]
@@ -42 +44,0 @@
-Cc: stable@dpdk.org
@@ -54 +56 @@
-index a5c4c11dc8..2c1664485b 100644
+index 1dd4b7a8fc..7bdf7740c1 100644
@@ -57 +59 @@
-@@ -731,9 +731,6 @@ hns3_cmd_init(struct hns3_hw *hw)
+@@ -699,9 +699,6 @@ hns3_cmd_init(struct hns3_hw *hw)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/testpmd: fix tunnel TSO capability check' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (79 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/hns3: fix mailbox sync' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'app/testpmd: add explicit check for tunnel TSO' " Xueming Li
                     ` (39 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Huisong Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=6f1c35e7a802084271fedcfcf9590785d8c30723

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6f1c35e7a802084271fedcfcf9590785d8c30723 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Sat, 11 Nov 2023 12:59:41 +0800
Subject: [PATCH] app/testpmd: fix tunnel TSO capability check
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 6d4def820aa7d118f1ebdebf7af8ba6299ac20ee ]

Currently, testpmd set tunnel TSO offload even if fail to get dev_info.
In this case, the 'tx_offload_capa' in dev_info is a random value,

Fixes: 6f51deb903b2 ("app/testpmd: check status of getting ethdev info")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test-pmd/cmdline.c | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index d24d16c7e0..a45743dd86 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -4950,39 +4950,33 @@ struct cmd_tunnel_tso_set_result {
 	portid_t port_id;
 };
 
-static struct rte_eth_dev_info
-check_tunnel_tso_nic_support(portid_t port_id)
+static void
+check_tunnel_tso_nic_support(portid_t port_id, uint64_t tx_offload_capa)
 {
-	struct rte_eth_dev_info dev_info;
-
-	if (eth_dev_info_get_print_err(port_id, &dev_info) != 0)
-		return dev_info;
-
-	if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO))
+	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO))
 		fprintf(stderr,
 			"Warning: VXLAN TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
-	if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO))
+	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO))
 		fprintf(stderr,
 			"Warning: GRE TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
-	if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO))
+	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO))
 		fprintf(stderr,
 			"Warning: IPIP TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
-	if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO))
+	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO))
 		fprintf(stderr,
 			"Warning: GENEVE TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
-	if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IP_TNL_TSO))
+	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_IP_TNL_TSO))
 		fprintf(stderr,
 			"Warning: IP TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
-	if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO))
+	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO))
 		fprintf(stderr,
 			"Warning: UDP TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
-	return dev_info;
 }
 
 static void
@@ -4992,6 +4986,7 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 {
 	struct cmd_tunnel_tso_set_result *res = parsed_result;
 	struct rte_eth_dev_info dev_info;
+	int ret;
 
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
 		return;
@@ -5003,7 +4998,11 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 	if (!strcmp(res->mode, "set"))
 		ports[res->port_id].tunnel_tso_segsz = res->tso_segsz;
 
-	dev_info = check_tunnel_tso_nic_support(res->port_id);
+	ret = eth_dev_info_get_print_err(res->port_id, &dev_info);
+	if (ret != 0)
+		return;
+
+	check_tunnel_tso_nic_support(res->port_id, dev_info.tx_offload_capa);
 	if (ports[res->port_id].tunnel_tso_segsz == 0) {
 		ports[res->port_id].dev_conf.txmode.offloads &=
 			~(RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO |
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.691185000 +0800
+++ 0081-app-testpmd-fix-tunnel-TSO-capability-check.patch	2023-12-11 17:56:23.117652300 +0800
@@ -1 +1 @@
-From 6d4def820aa7d118f1ebdebf7af8ba6299ac20ee Mon Sep 17 00:00:00 2001
+From 6f1c35e7a802084271fedcfcf9590785d8c30723 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 6d4def820aa7d118f1ebdebf7af8ba6299ac20ee ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index d68418bc67..1fffb07db1 100644
+index d24d16c7e0..a45743dd86 100644
@@ -22 +24 @@
-@@ -5035,39 +5035,33 @@ struct cmd_tunnel_tso_set_result {
+@@ -4950,39 +4950,33 @@ struct cmd_tunnel_tso_set_result {
@@ -70 +72 @@
-@@ -5077,6 +5071,7 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -4992,6 +4986,7 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
@@ -78 +80 @@
-@@ -5088,7 +5083,11 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -5003,7 +4998,11 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/testpmd: add explicit check for tunnel TSO' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (80 preceding siblings ...)
  2023-12-11 10:11   ` patch 'app/testpmd: fix tunnel TSO capability check' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'app/testpmd: fix tunnel TSO configuration' " Xueming Li
                     ` (38 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Huisong Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=2959baf71f1e4c5146f7e9dd2317ef084de026de

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 2959baf71f1e4c5146f7e9dd2317ef084de026de Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Sat, 11 Nov 2023 12:59:42 +0800
Subject: [PATCH] app/testpmd: add explicit check for tunnel TSO
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 33156a6bc61560e74a126ade38a7af9c1fa02671 ]

If port don't support TSO of tunnel packets, tell user in advance and no
need to change other configuration of this port in case of fault spread.

In addition, if some tunnel offloads don't support, which is not an
error case, the log about this shouldn't be to stderr.

Fixes: 3926dd2b6668 ("app/testpmd: enforce offload capabilities check")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test-pmd/cmdline.c | 55 ++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 31 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index a45743dd86..03926e2dbc 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -4954,28 +4954,22 @@ static void
 check_tunnel_tso_nic_support(portid_t port_id, uint64_t tx_offload_capa)
 {
 	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO))
-		fprintf(stderr,
-			"Warning: VXLAN TUNNEL TSO not supported therefore not enabled for port %d\n",
+		printf("Warning: VXLAN TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
 	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO))
-		fprintf(stderr,
-			"Warning: GRE TUNNEL TSO not supported therefore not enabled for port %d\n",
+		printf("Warning: GRE TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
 	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO))
-		fprintf(stderr,
-			"Warning: IPIP TUNNEL TSO not supported therefore not enabled for port %d\n",
+		printf("Warning: IPIP TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
 	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO))
-		fprintf(stderr,
-			"Warning: GENEVE TUNNEL TSO not supported therefore not enabled for port %d\n",
+		printf("Warning: GENEVE TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
 	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_IP_TNL_TSO))
-		fprintf(stderr,
-			"Warning: IP TUNNEL TSO not supported therefore not enabled for port %d\n",
+		printf("Warning: IP TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
 	if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO))
-		fprintf(stderr,
-			"Warning: UDP TUNNEL TSO not supported therefore not enabled for port %d\n",
+		printf("Warning: UDP TUNNEL TSO not supported therefore not enabled for port %d\n",
 			port_id);
 }
 
@@ -4986,6 +4980,12 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 {
 	struct cmd_tunnel_tso_set_result *res = parsed_result;
 	struct rte_eth_dev_info dev_info;
+	uint64_t all_tunnel_tso = RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO |
+				RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO |
+				RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO |
+				RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO |
+				RTE_ETH_TX_OFFLOAD_IP_TNL_TSO |
+				RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO;
 	int ret;
 
 	if (port_id_is_invalid(res->port_id, ENABLED_WARN))
@@ -4998,30 +4998,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 	if (!strcmp(res->mode, "set"))
 		ports[res->port_id].tunnel_tso_segsz = res->tso_segsz;
 
-	ret = eth_dev_info_get_print_err(res->port_id, &dev_info);
-	if (ret != 0)
-		return;
-
-	check_tunnel_tso_nic_support(res->port_id, dev_info.tx_offload_capa);
 	if (ports[res->port_id].tunnel_tso_segsz == 0) {
-		ports[res->port_id].dev_conf.txmode.offloads &=
-			~(RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO |
-			  RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO |
-			  RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO |
-			  RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO |
-			  RTE_ETH_TX_OFFLOAD_IP_TNL_TSO |
-			  RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO);
+		ports[res->port_id].dev_conf.txmode.offloads &= ~all_tunnel_tso;
 		printf("TSO for tunneled packets is disabled\n");
 	} else {
-		uint64_t tso_offloads = (RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO |
-					 RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO |
-					 RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO |
-					 RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO |
-					 RTE_ETH_TX_OFFLOAD_IP_TNL_TSO |
-					 RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO);
+		ret = eth_dev_info_get_print_err(res->port_id, &dev_info);
+		if (ret != 0)
+			return;
+
+		if ((all_tunnel_tso & dev_info.tx_offload_capa) == 0) {
+			fprintf(stderr, "Error: port=%u don't support tunnel TSO offloads.\n",
+				res->port_id);
+			return;
+		}
+		check_tunnel_tso_nic_support(res->port_id, dev_info.tx_offload_capa);
 
 		ports[res->port_id].dev_conf.txmode.offloads |=
-			(tso_offloads & dev_info.tx_offload_capa);
+			(all_tunnel_tso & dev_info.tx_offload_capa);
 		printf("TSO segment size for tunneled packets is %d\n",
 			ports[res->port_id].tunnel_tso_segsz);
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.724223800 +0800
+++ 0082-app-testpmd-add-explicit-check-for-tunnel-TSO.patch	2023-12-11 17:56:23.127652300 +0800
@@ -1 +1 @@
-From 33156a6bc61560e74a126ade38a7af9c1fa02671 Mon Sep 17 00:00:00 2001
+From 2959baf71f1e4c5146f7e9dd2317ef084de026de Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 33156a6bc61560e74a126ade38a7af9c1fa02671 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 1fffb07db1..2e3365557a 100644
+index a45743dd86..03926e2dbc 100644
@@ -25 +27 @@
-@@ -5039,28 +5039,22 @@ static void
+@@ -4954,28 +4954,22 @@ static void
@@ -60 +62 @@
-@@ -5071,6 +5065,12 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -4986,6 +4980,12 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
@@ -73 +75 @@
-@@ -5083,30 +5083,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -4998,30 +4998,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/testpmd: fix tunnel TSO configuration' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (81 preceding siblings ...)
  2023-12-11 10:11   ` patch 'app/testpmd: add explicit check for tunnel TSO' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix unlock mismatch' " Xueming Li
                     ` (37 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Huisong Li; +Cc: Ferruh Yigit, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=5ff3454aace90a2441a256ed24e0c40def45bbaa

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 5ff3454aace90a2441a256ed24e0c40def45bbaa Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Sat, 11 Nov 2023 12:59:43 +0800
Subject: [PATCH] app/testpmd: fix tunnel TSO configuration
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e43dc93803c4623840472c6109ef05e26286ec2f ]

Currently, there are two conditions to set tunnel TSO, like "parse
tunnel" and "outer IP checksum".
If these conditions are not satisfied, testpmd should not change their
configuration, like tx_offloads on port and per queue, and no need to
request "reconfig device".

Fixes: 597f9fafe13b ("app/testpmd: convert to new Tx offloads API")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@amd.com>
---
 app/test-pmd/cmdline.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 03926e2dbc..3a451b9fa0 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -5011,12 +5011,6 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 				res->port_id);
 			return;
 		}
-		check_tunnel_tso_nic_support(res->port_id, dev_info.tx_offload_capa);
-
-		ports[res->port_id].dev_conf.txmode.offloads |=
-			(all_tunnel_tso & dev_info.tx_offload_capa);
-		printf("TSO segment size for tunneled packets is %d\n",
-			ports[res->port_id].tunnel_tso_segsz);
 
 		/* Below conditions are needed to make it work:
 		 * (1) tunnel TSO is supported by the NIC;
@@ -5029,14 +5023,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
 		 * is not necessary for IPv6 tunneled pkts because there's no
 		 * checksum in IP header anymore.
 		 */
-
-		if (!ports[res->port_id].parse_tunnel)
+		if (!ports[res->port_id].parse_tunnel) {
 			fprintf(stderr,
-				"Warning: csum parse_tunnel must be set so that tunneled packets are recognized\n");
+				"Error: csum parse_tunnel must be set so that tunneled packets are recognized\n");
+			return;
+		}
 		if (!(ports[res->port_id].dev_conf.txmode.offloads &
-		      RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM))
+		      RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM)) {
 			fprintf(stderr,
-				"Warning: csum set outer-ip must be set to hw if outer L3 is IPv4; not necessary for IPv6\n");
+				"Error: csum set outer-ip must be set to hw if outer L3 is IPv4; not necessary for IPv6\n");
+			return;
+		}
+
+		check_tunnel_tso_nic_support(res->port_id, dev_info.tx_offload_capa);
+		ports[res->port_id].dev_conf.txmode.offloads |=
+				(all_tunnel_tso & dev_info.tx_offload_capa);
+		printf("TSO segment size for tunneled packets is %d\n",
+			ports[res->port_id].tunnel_tso_segsz);
 	}
 
 	cmd_config_queue_tx_offloads(&ports[res->port_id]);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.764149800 +0800
+++ 0083-app-testpmd-fix-tunnel-TSO-configuration.patch	2023-12-11 17:56:23.137652300 +0800
@@ -1 +1 @@
-From e43dc93803c4623840472c6109ef05e26286ec2f Mon Sep 17 00:00:00 2001
+From 5ff3454aace90a2441a256ed24e0c40def45bbaa Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e43dc93803c4623840472c6109ef05e26286ec2f ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 2e3365557a..a231d112b0 100644
+index 03926e2dbc..3a451b9fa0 100644
@@ -25 +27 @@
-@@ -5096,12 +5096,6 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -5011,12 +5011,6 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
@@ -38 +40 @@
-@@ -5114,14 +5108,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,
+@@ -5029,14 +5023,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix unlock mismatch' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (82 preceding siblings ...)
  2023-12-11 10:11   ` patch 'app/testpmd: fix tunnel TSO configuration' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix validation of sample encap flow action' " Xueming Li
                     ` (36 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Weiguo Li; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=f00e3b40fd33b32fc796cd5b1fda4049d7bf21ce

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From f00e3b40fd33b32fc796cd5b1fda4049d7bf21ce Mon Sep 17 00:00:00 2001
From: Weiguo Li <liweiguo@xencore.cn>
Date: Sat, 4 Nov 2023 12:07:33 +0800
Subject: [PATCH] net/mlx5: fix unlock mismatch
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 29f99df4200eafcc528eea08b0fffb8efb1a595a ]

The 'need_lock' parameter controls whether the function acquires and
releases the spinlock, but the first unlock operation occurs regardless
of the 'need_lock' parameter.

To fix this issue, the spin unlock operation should be invoked within
an 'if (need_lock)' block, ensuring that the function only unlocks the
spinlock if it has previously been acquired.

Fixes: 48fbb0e93d06 ("net/mlx5: support flow meter mark indirect action with HWS")

Signed-off-by: Weiguo Li <liweiguo@xencore.cn>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_aso.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow_aso.c b/drivers/net/mlx5/mlx5_flow_aso.c
index 29bd7ce9e8..8441be3dea 100644
--- a/drivers/net/mlx5/mlx5_flow_aso.c
+++ b/drivers/net/mlx5/mlx5_flow_aso.c
@@ -932,7 +932,8 @@ mlx5_aso_mtr_completion_handle(struct mlx5_aso_sq *sq, bool need_lock)
 		rte_spinlock_lock(&sq->sqsl);
 	max = (uint16_t)(sq->head - sq->tail);
 	if (unlikely(!max)) {
-		rte_spinlock_unlock(&sq->sqsl);
+		if (need_lock)
+			rte_spinlock_unlock(&sq->sqsl);
 		return;
 	}
 	do {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.804788300 +0800
+++ 0084-net-mlx5-fix-unlock-mismatch.patch	2023-12-11 17:56:23.137652300 +0800
@@ -1 +1 @@
-From 29f99df4200eafcc528eea08b0fffb8efb1a595a Mon Sep 17 00:00:00 2001
+From f00e3b40fd33b32fc796cd5b1fda4049d7bf21ce Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 29f99df4200eafcc528eea08b0fffb8efb1a595a ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 3c08da0614..f311443472 100644
+index 29bd7ce9e8..8441be3dea 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix validation of sample encap flow action' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (83 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix unlock mismatch' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix counter query during port close' " Xueming Li
                     ` (35 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Jiawei Wang; +Cc: Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=49bd7912ee2bdf7325360c5209dd01b5a8b517f8

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 49bd7912ee2bdf7325360c5209dd01b5a8b517f8 Mon Sep 17 00:00:00 2001
From: Jiawei Wang <jiaweiw@nvidia.com>
Date: Tue, 7 Nov 2023 17:08:20 +0200
Subject: [PATCH] net/mlx5: fix validation of sample encap flow action
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit a2a709f0e7b88b785acaae87dd9724821438c969 ]

The flow sample/mirror action includes sub-actions for the
duplicated packet.
In SW steering case, dv_flow_en=1, there is a FW limitation
that forces configuring also encap action when port action
for the wire port is configured in the duplicated packet's
sub-actions.

The driver did a wrong validation for the above limitation
and forced other actions instead of encap for the wire port.
Force only encap action in case of wire port.

This patch fixes the wrongly checking for the sample encap action.

Fixes: a8697f50f50f ("net/mlx5: fix E-Switch mirror flow rule validation")

Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 8ccef8e460..aa3a258ae7 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -8352,7 +8352,7 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
 								RTE_FLOW_ERROR_TYPE_ACTION, NULL,
 								"mirror to rep port with encap is not supported");
 			} else {
-				if ((sub_action_flags & ~MLX5_FLOW_ACTION_ENCAP) &&
+				if (!(sub_action_flags & MLX5_FLOW_ACTION_ENCAP) &&
 				    (action_flags & MLX5_FLOW_ACTION_JUMP))
 					return rte_flow_error_set(error, ENOTSUP,
 								RTE_FLOW_ERROR_TYPE_ACTION, NULL,
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.829289000 +0800
+++ 0085-net-mlx5-fix-validation-of-sample-encap-flow-action.patch	2023-12-11 17:56:23.157652300 +0800
@@ -1 +1 @@
-From a2a709f0e7b88b785acaae87dd9724821438c969 Mon Sep 17 00:00:00 2001
+From 49bd7912ee2bdf7325360c5209dd01b5a8b517f8 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit a2a709f0e7b88b785acaae87dd9724821438c969 ]
@@ -20 +22,0 @@
-Cc: stable@dpdk.org
@@ -29 +31 @@
-index 154e509707..9753af2cb1 100644
+index 8ccef8e460..aa3a258ae7 100644
@@ -32 +34 @@
-@@ -8721,7 +8721,7 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
+@@ -8352,7 +8352,7 @@ flow_dv_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix counter query during port close' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (84 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix validation of sample encap flow action' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix missing flow rules for external SQ' " Xueming Li
                     ` (34 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Suanming Mou; +Cc: Matan Azrad, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=97b9c4dca36ba6465a195e2a860455476370012a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 97b9c4dca36ba6465a195e2a860455476370012a Mon Sep 17 00:00:00 2001
From: Suanming Mou <suanmingm@nvidia.com>
Date: Thu, 9 Nov 2023 16:07:51 +0800
Subject: [PATCH] net/mlx5: fix counter query during port close
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 6ac2104ac125b6e8037d6c13ba102b7afe27cf38 ]

Currently, the counter query service thread queries all the ports
which belongs to the same sh. In case one of the ports is closing
the query may still be proceeded.

This commit adds the pool list in shared context to manage the pool
for avoiding query the port during port close.

Fixes: 4d368e1da3a4 ("net/mlx5: support flow counter action for HWS")

Signed-off-by: Suanming Mou <suanmingm@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/net/mlx5/mlx5.c         |  3 +++
 drivers/net/mlx5/mlx5.h         |  2 ++
 drivers/net/mlx5/mlx5_hws_cnt.c | 36 ++++++++++++++++++++++-----------
 drivers/net/mlx5/mlx5_hws_cnt.h |  2 ++
 4 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index 1dfd10e7cb..90dbb6e3b0 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -1612,6 +1612,9 @@ mlx5_alloc_shared_dev_ctx(const struct mlx5_dev_spawn_data *spawn,
 	/* Add context to the global device list. */
 	LIST_INSERT_HEAD(&mlx5_dev_ctx_list, sh, next);
 	rte_spinlock_init(&sh->geneve_tlv_opt_sl);
+	/* Init counter pool list header and lock. */
+	LIST_INIT(&sh->hws_cpool_list);
+	rte_spinlock_init(&sh->cpool_lock);
 exit:
 	pthread_mutex_unlock(&mlx5_dev_ctx_list_mutex);
 	return sh;
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index 5f8361c52b..fa8931e8b5 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -1455,6 +1455,8 @@ struct mlx5_dev_ctx_shared {
 	uint32_t host_shaper_rate:8;
 	uint32_t lwm_triggered:1;
 	struct mlx5_hws_cnt_svc_mng *cnt_svc;
+	rte_spinlock_t cpool_lock;
+	LIST_HEAD(hws_cpool_list, mlx5_hws_cnt_pool) hws_cpool_list; /* Count pool list. */
 	struct mlx5_dev_shared_port port[]; /* per device port data array. */
 };
 
diff --git a/drivers/net/mlx5/mlx5_hws_cnt.c b/drivers/net/mlx5/mlx5_hws_cnt.c
index 8ccc6ab1f8..791fde4458 100644
--- a/drivers/net/mlx5/mlx5_hws_cnt.c
+++ b/drivers/net/mlx5/mlx5_hws_cnt.c
@@ -306,26 +306,25 @@ mlx5_hws_cnt_svc(void *opaque)
 		(struct mlx5_dev_ctx_shared *)opaque;
 	uint64_t interval =
 		(uint64_t)sh->cnt_svc->query_interval * (US_PER_S / MS_PER_S);
-	uint16_t port_id;
+	struct mlx5_hws_cnt_pool *hws_cpool;
 	uint64_t start_cycle, query_cycle = 0;
 	uint64_t query_us;
 	uint64_t sleep_us;
 
 	while (sh->cnt_svc->svc_running != 0) {
+		if (rte_spinlock_trylock(&sh->cpool_lock) == 0)
+			continue;
 		start_cycle = rte_rdtsc();
-		MLX5_ETH_FOREACH_DEV(port_id, sh->cdev->dev) {
-			struct mlx5_priv *opriv =
-				rte_eth_devices[port_id].data->dev_private;
-			if (opriv != NULL &&
-			    opriv->sh == sh &&
-			    opriv->hws_cpool != NULL) {
-				__mlx5_hws_cnt_svc(sh, opriv->hws_cpool);
-				if (opriv->hws_age_req)
-					mlx5_hws_aging_check(opriv,
-							     opriv->hws_cpool);
-			}
+		/* 200ms for 16M counters. */
+		LIST_FOREACH(hws_cpool, &sh->hws_cpool_list, next) {
+			struct mlx5_priv *opriv = hws_cpool->priv;
+
+			__mlx5_hws_cnt_svc(sh, hws_cpool);
+			if (opriv->hws_age_req)
+				mlx5_hws_aging_check(opriv, hws_cpool);
 		}
 		query_cycle = rte_rdtsc() - start_cycle;
+		rte_spinlock_unlock(&sh->cpool_lock);
 		query_us = query_cycle / (rte_get_timer_hz() / US_PER_S);
 		sleep_us = interval - query_us;
 		if (interval > query_us)
@@ -659,6 +658,10 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
 	if (ret != 0)
 		goto error;
 	priv->sh->cnt_svc->refcnt++;
+	cpool->priv = priv;
+	rte_spinlock_lock(&priv->sh->cpool_lock);
+	LIST_INSERT_HEAD(&priv->sh->hws_cpool_list, cpool, next);
+	rte_spinlock_unlock(&priv->sh->cpool_lock);
 	return cpool;
 error:
 	mlx5_hws_cnt_pool_destroy(priv->sh, cpool);
@@ -671,6 +674,13 @@ mlx5_hws_cnt_pool_destroy(struct mlx5_dev_ctx_shared *sh,
 {
 	if (cpool == NULL)
 		return;
+	/*
+	 * 16M counter consumes 200ms to finish the query.
+	 * Maybe blocked for at most 200ms here.
+	 */
+	rte_spinlock_lock(&sh->cpool_lock);
+	LIST_REMOVE(cpool, next);
+	rte_spinlock_unlock(&sh->cpool_lock);
 	if (--sh->cnt_svc->refcnt == 0)
 		mlx5_hws_cnt_svc_deinit(sh);
 	mlx5_hws_cnt_pool_action_destroy(cpool);
@@ -1228,11 +1238,13 @@ mlx5_hws_age_pool_destroy(struct mlx5_priv *priv)
 {
 	struct mlx5_age_info *age_info = GET_PORT_AGE_INFO(priv);
 
+	rte_spinlock_lock(&priv->sh->cpool_lock);
 	MLX5_ASSERT(priv->hws_age_req);
 	mlx5_hws_age_info_destroy(priv);
 	mlx5_ipool_destroy(age_info->ages_ipool);
 	age_info->ages_ipool = NULL;
 	priv->hws_age_req = 0;
+	rte_spinlock_unlock(&priv->sh->cpool_lock);
 }
 
 #endif
diff --git a/drivers/net/mlx5/mlx5_hws_cnt.h b/drivers/net/mlx5/mlx5_hws_cnt.h
index 030dcead86..b5c19a8e2c 100644
--- a/drivers/net/mlx5/mlx5_hws_cnt.h
+++ b/drivers/net/mlx5/mlx5_hws_cnt.h
@@ -97,6 +97,7 @@ struct mlx5_hws_cnt_pool_caches {
 };
 
 struct mlx5_hws_cnt_pool {
+	LIST_ENTRY(mlx5_hws_cnt_pool) next;
 	struct mlx5_hws_cnt_pool_cfg cfg __rte_cache_aligned;
 	struct mlx5_hws_cnt_dcs_mng dcs_mng __rte_cache_aligned;
 	uint32_t query_gen __rte_cache_aligned;
@@ -107,6 +108,7 @@ struct mlx5_hws_cnt_pool {
 	struct rte_ring *wait_reset_list;
 	struct mlx5_hws_cnt_pool_caches *cache;
 	uint64_t time_of_last_age_check;
+	struct mlx5_priv *priv;
 } __rte_cache_aligned;
 
 /* HWS AGE status. */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.866227700 +0800
+++ 0086-net-mlx5-fix-counter-query-during-port-close.patch	2023-12-11 17:56:23.157652300 +0800
@@ -1 +1 @@
-From 6ac2104ac125b6e8037d6c13ba102b7afe27cf38 Mon Sep 17 00:00:00 2001
+From 97b9c4dca36ba6465a195e2a860455476370012a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 6ac2104ac125b6e8037d6c13ba102b7afe27cf38 ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index 2cf21a1921..d6cb0d1c8a 100644
+index 1dfd10e7cb..90dbb6e3b0 100644
@@ -29 +31,2 @@
-@@ -1814,6 +1814,9 @@ mlx5_alloc_shared_dev_ctx(const struct mlx5_dev_spawn_data *spawn,
+@@ -1612,6 +1612,9 @@ mlx5_alloc_shared_dev_ctx(const struct mlx5_dev_spawn_data *spawn,
+ 	/* Add context to the global device list. */
@@ -32 +34,0 @@
- 	mlx5_init_shared_dev_registers(sh);
@@ -40 +42 @@
-index ee13ad6db2..f5eacb2c67 100644
+index 5f8361c52b..fa8931e8b5 100644
@@ -43 +45 @@
-@@ -1521,6 +1521,8 @@ struct mlx5_dev_ctx_shared {
+@@ -1455,6 +1455,8 @@ struct mlx5_dev_ctx_shared {
@@ -49 +50,0 @@
- 	struct mlx5_dev_registers registers;
@@ -51,0 +53 @@
+ 
@@ -53 +55 @@
-index f556a9fbcc..a3bea94811 100644
+index 8ccc6ab1f8..791fde4458 100644
@@ -56 +58 @@
-@@ -294,26 +294,25 @@ mlx5_hws_cnt_svc(void *opaque)
+@@ -306,26 +306,25 @@ mlx5_hws_cnt_svc(void *opaque)
@@ -94 +96 @@
-@@ -665,6 +664,10 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
+@@ -659,6 +658,10 @@ mlx5_hws_cnt_pool_create(struct rte_eth_dev *dev,
@@ -105 +107 @@
-@@ -677,6 +680,13 @@ mlx5_hws_cnt_pool_destroy(struct mlx5_dev_ctx_shared *sh,
+@@ -671,6 +674,13 @@ mlx5_hws_cnt_pool_destroy(struct mlx5_dev_ctx_shared *sh,
@@ -116,4 +118,4 @@
- 	if (cpool->cfg.host_cpool == NULL) {
- 		if (--sh->cnt_svc->refcnt == 0)
- 			mlx5_hws_cnt_svc_deinit(sh);
-@@ -1244,11 +1254,13 @@ mlx5_hws_age_pool_destroy(struct mlx5_priv *priv)
+ 	if (--sh->cnt_svc->refcnt == 0)
+ 		mlx5_hws_cnt_svc_deinit(sh);
+ 	mlx5_hws_cnt_pool_action_destroy(cpool);
+@@ -1228,11 +1238,13 @@ mlx5_hws_age_pool_destroy(struct mlx5_priv *priv)
@@ -134 +136 @@
-index dcd5cec020..585b5a83ad 100644
+index 030dcead86..b5c19a8e2c 100644
@@ -137 +139 @@
-@@ -98,6 +98,7 @@ struct mlx5_hws_cnt_pool_caches {
+@@ -97,6 +97,7 @@ struct mlx5_hws_cnt_pool_caches {
@@ -145 +147 @@
-@@ -108,6 +109,7 @@ struct mlx5_hws_cnt_pool {
+@@ -107,6 +108,7 @@ struct mlx5_hws_cnt_pool {

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix missing flow rules for external SQ' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (85 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix counter query during port close' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix destroying external representor flow' " Xueming Li
                     ` (33 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=ca79cce293c5d090f36797b7efa8b00e54790ba0

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ca79cce293c5d090f36797b7efa8b00e54790ba0 Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Thu, 9 Nov 2023 16:55:46 +0800
Subject: [PATCH] net/mlx5: fix missing flow rules for external SQ
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 86f2907c2ab6977980131f848e79f3ca05250279 ]

mlx5 PMD exposes a capability to register externally created SQs
as if it was an SQ of a given representor port. Registration would
cause a creation of control flow rules in FDB domain used to
forward traffic between SQ and destination represented port.

Before this patch, if representor matching was enabled (device argument
repr_matching_en is equal to 1, default configuration), then during
registration of external SQs, mlx5 PMD would not create control flow
rules in NIC Tx domain. This caused an issue with packet metadata.
If a packet sent on external SQ had packet metadata attached, then
it would be lost when it would go from NIC Tx to FDB domain.

With representor matching disabled everything is working correctly,
because in that mode there is a single global flow rule for preserving
packet metadata. This flow rule matches whole traffic on NIC Tx domain.
With representor matching enabled, NIC Tx flow rules are created per SQ.

This patch fixes that behavior. If representor matching is enabled, then
NIC Tx flow rules are created for each external SQ registered in
rte_pmd_mlx5_external_sq_enable().

This patch also adds an ability to destroy SQ miss flow rules for a
given port and SQ number. This is required for error rollback flow in
rte_pmd_mlx5_external_sq_enable().

Fixes: 26e1eaf2dac4 ("net/mlx5: support device control for E-Switch default rule")

Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
 drivers/net/mlx5/mlx5.h         |  40 ++++++++++++
 drivers/net/mlx5/mlx5_flow.h    |   2 +
 drivers/net/mlx5/mlx5_flow_hw.c | 107 +++++++++++++++++++++++++++++---
 drivers/net/mlx5/mlx5_txq.c     |  12 +++-
 4 files changed, 149 insertions(+), 12 deletions(-)

diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index fa8931e8b5..8a46ba90b0 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -1639,10 +1639,50 @@ struct mlx5_obj_ops {
 
 #define MLX5_RSS_HASH_FIELDS_LEN RTE_DIM(mlx5_rss_hash_fields)
 
+enum mlx5_hw_ctrl_flow_type {
+	MLX5_HW_CTRL_FLOW_TYPE_GENERAL,
+	MLX5_HW_CTRL_FLOW_TYPE_SQ_MISS_ROOT,
+	MLX5_HW_CTRL_FLOW_TYPE_SQ_MISS,
+	MLX5_HW_CTRL_FLOW_TYPE_DEFAULT_JUMP,
+	MLX5_HW_CTRL_FLOW_TYPE_TX_META_COPY,
+	MLX5_HW_CTRL_FLOW_TYPE_TX_REPR_MATCH,
+	MLX5_HW_CTRL_FLOW_TYPE_LACP_RX,
+	MLX5_HW_CTRL_FLOW_TYPE_DEFAULT_RX_RSS,
+};
+
+/** Additional info about control flow rule. */
+struct mlx5_hw_ctrl_flow_info {
+	/** Determines the kind of control flow rule. */
+	enum mlx5_hw_ctrl_flow_type type;
+	union {
+		/**
+		 * If control flow is a SQ miss flow (root or not),
+		 * then fields contains matching SQ number.
+		 */
+		uint32_t esw_mgr_sq;
+		/**
+		 * If control flow is a Tx representor matching,
+		 * then fields contains matching SQ number.
+		 */
+		uint32_t tx_repr_sq;
+	};
+};
+
+/** Entry for tracking control flow rules in HWS. */
 struct mlx5_hw_ctrl_flow {
 	LIST_ENTRY(mlx5_hw_ctrl_flow) next;
+	/**
+	 * Owner device is a port on behalf of which flow rule was created.
+	 *
+	 * It's different from the port which really created the flow rule
+	 * if and only if flow rule is created on transfer proxy port
+	 * on behalf of representor port.
+	 */
 	struct rte_eth_dev *owner_dev;
+	/** Pointer to flow rule handle. */
 	struct rte_flow *flow;
+	/** Additional information about the control flow rule. */
+	struct mlx5_hw_ctrl_flow_info info;
 };
 
 struct mlx5_flow_hw_ctrl_rx;
diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h
index 52edc4c961..f03734f991 100644
--- a/drivers/net/mlx5/mlx5_flow.h
+++ b/drivers/net/mlx5/mlx5_flow.h
@@ -2582,6 +2582,8 @@ int mlx5_flow_hw_flush_ctrl_flows(struct rte_eth_dev *dev);
 
 int mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev,
 					 uint32_t sqn);
+int mlx5_flow_hw_esw_destroy_sq_miss_flow(struct rte_eth_dev *dev,
+					  uint32_t sqn);
 int mlx5_flow_hw_esw_create_default_jump_flow(struct rte_eth_dev *dev);
 int mlx5_flow_hw_create_tx_default_mreg_copy_flow(struct rte_eth_dev *dev);
 int mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn);
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 102f67a925..3f3ab4859b 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -8437,6 +8437,8 @@ const struct mlx5_flow_driver_ops mlx5_flow_hw_drv_ops = {
  *   Pointer to flow rule actions.
  * @param action_template_idx
  *   Index of an action template associated with @p table.
+ * @param info
+ *   Additional info about control flow rule.
  *
  * @return
  *   0 on success, negative errno value otherwise and rte_errno set.
@@ -8448,7 +8450,8 @@ flow_hw_create_ctrl_flow(struct rte_eth_dev *owner_dev,
 			 struct rte_flow_item items[],
 			 uint8_t item_template_idx,
 			 struct rte_flow_action actions[],
-			 uint8_t action_template_idx)
+			 uint8_t action_template_idx,
+			 struct mlx5_hw_ctrl_flow_info *info)
 {
 	struct mlx5_priv *priv = proxy_dev->data->dev_private;
 	uint32_t queue = CTRL_QUEUE_ID(priv);
@@ -8495,6 +8498,10 @@ flow_hw_create_ctrl_flow(struct rte_eth_dev *owner_dev,
 	}
 	entry->owner_dev = owner_dev;
 	entry->flow = flow;
+	if (info)
+		entry->info = *info;
+	else
+		entry->info.type = MLX5_HW_CTRL_FLOW_TYPE_GENERAL;
 	LIST_INSERT_HEAD(&priv->hw_ctrl_flows, entry, next);
 	rte_spinlock_unlock(&priv->hw_ctrl_lock);
 	return 0;
@@ -8698,6 +8705,10 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
 	};
 	struct rte_flow_item items[3] = { { 0 } };
 	struct rte_flow_action actions[3] = { { 0 } };
+	struct mlx5_hw_ctrl_flow_info flow_info = {
+		.type = MLX5_HW_CTRL_FLOW_TYPE_SQ_MISS_ROOT,
+		.esw_mgr_sq = sqn,
+	};
 	struct rte_eth_dev *proxy_dev;
 	struct mlx5_priv *proxy_priv;
 	uint16_t proxy_port_id = dev->data->port_id;
@@ -8753,7 +8764,7 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
 		.type = RTE_FLOW_ACTION_TYPE_END,
 	};
 	ret = flow_hw_create_ctrl_flow(dev, proxy_dev, proxy_priv->hw_esw_sq_miss_root_tbl,
-				       items, 0, actions, 0);
+				       items, 0, actions, 0, &flow_info);
 	if (ret) {
 		DRV_LOG(ERR, "Port %u failed to create root SQ miss flow rule for SQ %u, ret %d",
 			port_id, sqn, ret);
@@ -8782,8 +8793,9 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
 	actions[1] = (struct rte_flow_action){
 		.type = RTE_FLOW_ACTION_TYPE_END,
 	};
+	flow_info.type = MLX5_HW_CTRL_FLOW_TYPE_SQ_MISS;
 	ret = flow_hw_create_ctrl_flow(dev, proxy_dev, proxy_priv->hw_esw_sq_miss_tbl,
-				       items, 0, actions, 0);
+				       items, 0, actions, 0, &flow_info);
 	if (ret) {
 		DRV_LOG(ERR, "Port %u failed to create HWS SQ miss flow rule for SQ %u, ret %d",
 			port_id, sqn, ret);
@@ -8792,6 +8804,58 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
 	return 0;
 }
 
+static bool
+flow_hw_is_matching_sq_miss_flow(struct mlx5_hw_ctrl_flow *cf,
+				 struct rte_eth_dev *dev,
+				 uint32_t sqn)
+{
+	if (cf->owner_dev != dev)
+		return false;
+	if (cf->info.type == MLX5_HW_CTRL_FLOW_TYPE_SQ_MISS_ROOT && cf->info.esw_mgr_sq == sqn)
+		return true;
+	if (cf->info.type == MLX5_HW_CTRL_FLOW_TYPE_SQ_MISS && cf->info.esw_mgr_sq == sqn)
+		return true;
+	return false;
+}
+
+int
+mlx5_flow_hw_esw_destroy_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
+{
+	uint16_t port_id = dev->data->port_id;
+	uint16_t proxy_port_id = dev->data->port_id;
+	struct rte_eth_dev *proxy_dev;
+	struct mlx5_priv *proxy_priv;
+	struct mlx5_hw_ctrl_flow *cf;
+	struct mlx5_hw_ctrl_flow *cf_next;
+	int ret;
+
+	ret = rte_flow_pick_transfer_proxy(port_id, &proxy_port_id, NULL);
+	if (ret) {
+		DRV_LOG(ERR, "Unable to pick transfer proxy port for port %u. Transfer proxy "
+			     "port must be present for default SQ miss flow rules to exist.",
+			     port_id);
+		return ret;
+	}
+	proxy_dev = &rte_eth_devices[proxy_port_id];
+	proxy_priv = proxy_dev->data->dev_private;
+	if (!proxy_priv->dr_ctx)
+		return 0;
+	if (!proxy_priv->hw_esw_sq_miss_root_tbl ||
+	    !proxy_priv->hw_esw_sq_miss_tbl)
+		return 0;
+	cf = LIST_FIRST(&proxy_priv->hw_ctrl_flows);
+	while (cf != NULL) {
+		cf_next = LIST_NEXT(cf, next);
+		if (flow_hw_is_matching_sq_miss_flow(cf, dev, sqn)) {
+			claim_zero(flow_hw_destroy_ctrl_flow(proxy_dev, cf->flow));
+			LIST_REMOVE(cf, next);
+			mlx5_free(cf);
+		}
+		cf = cf_next;
+	}
+	return 0;
+}
+
 int
 mlx5_flow_hw_esw_create_default_jump_flow(struct rte_eth_dev *dev)
 {
@@ -8820,6 +8884,9 @@ mlx5_flow_hw_esw_create_default_jump_flow(struct rte_eth_dev *dev)
 			.type = RTE_FLOW_ACTION_TYPE_END,
 		}
 	};
+	struct mlx5_hw_ctrl_flow_info flow_info = {
+		.type = MLX5_HW_CTRL_FLOW_TYPE_DEFAULT_JUMP,
+	};
 	struct rte_eth_dev *proxy_dev;
 	struct mlx5_priv *proxy_priv;
 	uint16_t proxy_port_id = dev->data->port_id;
@@ -8850,7 +8917,7 @@ mlx5_flow_hw_esw_create_default_jump_flow(struct rte_eth_dev *dev)
 	}
 	return flow_hw_create_ctrl_flow(dev, proxy_dev,
 					proxy_priv->hw_esw_zero_tbl,
-					items, 0, actions, 0);
+					items, 0, actions, 0, &flow_info);
 }
 
 int
@@ -8896,13 +8963,16 @@ mlx5_flow_hw_create_tx_default_mreg_copy_flow(struct rte_eth_dev *dev)
 			.type = RTE_FLOW_ACTION_TYPE_END,
 		},
 	};
+	struct mlx5_hw_ctrl_flow_info flow_info = {
+		.type = MLX5_HW_CTRL_FLOW_TYPE_TX_META_COPY,
+	};
 
 	MLX5_ASSERT(priv->master);
 	if (!priv->dr_ctx || !priv->hw_tx_meta_cpy_tbl)
 		return 0;
 	return flow_hw_create_ctrl_flow(dev, dev,
 					priv->hw_tx_meta_cpy_tbl,
-					eth_all, 0, copy_reg_action, 0);
+					eth_all, 0, copy_reg_action, 0, &flow_info);
 }
 
 int
@@ -8931,6 +9001,10 @@ mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn)
 		{ .type = RTE_FLOW_ACTION_TYPE_END },
 		{ .type = RTE_FLOW_ACTION_TYPE_END },
 	};
+	struct mlx5_hw_ctrl_flow_info flow_info = {
+		.type = MLX5_HW_CTRL_FLOW_TYPE_TX_REPR_MATCH,
+		.tx_repr_sq = sqn,
+	};
 
 	/* It is assumed that caller checked for representor matching. */
 	MLX5_ASSERT(priv->sh->config.repr_matching);
@@ -8956,7 +9030,7 @@ mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn)
 		actions[2].type = RTE_FLOW_ACTION_TYPE_JUMP;
 	}
 	return flow_hw_create_ctrl_flow(dev, dev, priv->hw_tx_repr_tagging_tbl,
-					items, 0, actions, 0);
+					items, 0, actions, 0, &flow_info);
 }
 
 static uint32_t
@@ -9071,6 +9145,9 @@ __flow_hw_ctrl_flows_single(struct rte_eth_dev *dev,
 		{ .type = RTE_FLOW_ACTION_TYPE_RSS },
 		{ .type = RTE_FLOW_ACTION_TYPE_END },
 	};
+	struct mlx5_hw_ctrl_flow_info flow_info = {
+		.type = MLX5_HW_CTRL_FLOW_TYPE_DEFAULT_RX_RSS,
+	};
 
 	if (!eth_spec)
 		return -EINVAL;
@@ -9084,7 +9161,7 @@ __flow_hw_ctrl_flows_single(struct rte_eth_dev *dev,
 	items[3] = flow_hw_get_ctrl_rx_l4_item(rss_type);
 	items[4] = (struct rte_flow_item){ .type = RTE_FLOW_ITEM_TYPE_END };
 	/* Without VLAN filtering, only a single flow rule must be created. */
-	return flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0);
+	return flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0, &flow_info);
 }
 
 static int
@@ -9100,6 +9177,9 @@ __flow_hw_ctrl_flows_single_vlan(struct rte_eth_dev *dev,
 		{ .type = RTE_FLOW_ACTION_TYPE_RSS },
 		{ .type = RTE_FLOW_ACTION_TYPE_END },
 	};
+	struct mlx5_hw_ctrl_flow_info flow_info = {
+		.type = MLX5_HW_CTRL_FLOW_TYPE_DEFAULT_RX_RSS,
+	};
 	unsigned int i;
 
 	if (!eth_spec)
@@ -9122,7 +9202,7 @@ __flow_hw_ctrl_flows_single_vlan(struct rte_eth_dev *dev,
 		};
 
 		items[1].spec = &vlan_spec;
-		if (flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0))
+		if (flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0, &flow_info))
 			return -rte_errno;
 	}
 	return 0;
@@ -9140,6 +9220,9 @@ __flow_hw_ctrl_flows_unicast(struct rte_eth_dev *dev,
 		{ .type = RTE_FLOW_ACTION_TYPE_RSS },
 		{ .type = RTE_FLOW_ACTION_TYPE_END },
 	};
+	struct mlx5_hw_ctrl_flow_info flow_info = {
+		.type = MLX5_HW_CTRL_FLOW_TYPE_DEFAULT_RX_RSS,
+	};
 	const struct rte_ether_addr cmp = {
 		.addr_bytes = "\x00\x00\x00\x00\x00\x00",
 	};
@@ -9163,7 +9246,7 @@ __flow_hw_ctrl_flows_unicast(struct rte_eth_dev *dev,
 		if (!memcmp(mac, &cmp, sizeof(*mac)))
 			continue;
 		memcpy(&eth_spec.dst.addr_bytes, mac->addr_bytes, RTE_ETHER_ADDR_LEN);
-		if (flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0))
+		if (flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0, &flow_info))
 			return -rte_errno;
 	}
 	return 0;
@@ -9182,6 +9265,9 @@ __flow_hw_ctrl_flows_unicast_vlan(struct rte_eth_dev *dev,
 		{ .type = RTE_FLOW_ACTION_TYPE_RSS },
 		{ .type = RTE_FLOW_ACTION_TYPE_END },
 	};
+	struct mlx5_hw_ctrl_flow_info flow_info = {
+		.type = MLX5_HW_CTRL_FLOW_TYPE_DEFAULT_RX_RSS,
+	};
 	const struct rte_ether_addr cmp = {
 		.addr_bytes = "\x00\x00\x00\x00\x00\x00",
 	};
@@ -9213,7 +9299,8 @@ __flow_hw_ctrl_flows_unicast_vlan(struct rte_eth_dev *dev,
 			};
 
 			items[1].spec = &vlan_spec;
-			if (flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0))
+			if (flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0,
+						     &flow_info))
 				return -rte_errno;
 		}
 	}
diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
index 5543f2c570..8c48e7e2a8 100644
--- a/drivers/net/mlx5/mlx5_txq.c
+++ b/drivers/net/mlx5/mlx5_txq.c
@@ -1310,8 +1310,16 @@ rte_pmd_mlx5_external_sq_enable(uint16_t port_id, uint32_t sq_num)
 		return -rte_errno;
 	}
 #ifdef HAVE_MLX5_HWS_SUPPORT
-	if (priv->sh->config.dv_flow_en == 2)
-		return mlx5_flow_hw_esw_create_sq_miss_flow(dev, sq_num);
+	if (priv->sh->config.dv_flow_en == 2) {
+		if (mlx5_flow_hw_esw_create_sq_miss_flow(dev, sq_num))
+			return -rte_errno;
+		if (priv->sh->config.repr_matching &&
+		    mlx5_flow_hw_tx_repr_matching_flow(dev, sq_num)) {
+			mlx5_flow_hw_esw_destroy_sq_miss_flow(dev, sq_num);
+			return -rte_errno;
+		}
+		return 0;
+	}
 #endif
 	flow = mlx5_flow_create_devx_sq_miss_flow(dev, sq_num);
 	if (flow > 0)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.900025600 +0800
+++ 0087-net-mlx5-fix-missing-flow-rules-for-external-SQ.patch	2023-12-11 17:56:23.177652300 +0800
@@ -1 +1 @@
-From 86f2907c2ab6977980131f848e79f3ca05250279 Mon Sep 17 00:00:00 2001
+From ca79cce293c5d090f36797b7efa8b00e54790ba0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 86f2907c2ab6977980131f848e79f3ca05250279 ]
@@ -32 +34,0 @@
-Cc: stable@dpdk.org
@@ -43 +45 @@
-index f5eacb2c67..45ad0701f1 100644
+index fa8931e8b5..8a46ba90b0 100644
@@ -46 +48 @@
-@@ -1705,10 +1705,50 @@ struct mlx5_obj_ops {
+@@ -1639,10 +1639,50 @@ struct mlx5_obj_ops {
@@ -96 +98 @@
- /*
+ struct mlx5_flow_hw_ctrl_rx;
@@ -98 +100 @@
-index 094be12715..d57b3b5465 100644
+index 52edc4c961..f03734f991 100644
@@ -101 +103 @@
-@@ -2875,6 +2875,8 @@ int mlx5_flow_hw_flush_ctrl_flows(struct rte_eth_dev *dev);
+@@ -2582,6 +2582,8 @@ int mlx5_flow_hw_flush_ctrl_flows(struct rte_eth_dev *dev);
@@ -111 +113 @@
-index f57126e2ff..d512889682 100644
+index 102f67a925..3f3ab4859b 100644
@@ -114 +116 @@
-@@ -11341,6 +11341,8 @@ const struct mlx5_flow_driver_ops mlx5_flow_hw_drv_ops = {
+@@ -8437,6 +8437,8 @@ const struct mlx5_flow_driver_ops mlx5_flow_hw_drv_ops = {
@@ -123 +125 @@
-@@ -11352,7 +11354,8 @@ flow_hw_create_ctrl_flow(struct rte_eth_dev *owner_dev,
+@@ -8448,7 +8450,8 @@ flow_hw_create_ctrl_flow(struct rte_eth_dev *owner_dev,
@@ -133 +135 @@
-@@ -11399,6 +11402,10 @@ flow_hw_create_ctrl_flow(struct rte_eth_dev *owner_dev,
+@@ -8495,6 +8498,10 @@ flow_hw_create_ctrl_flow(struct rte_eth_dev *owner_dev,
@@ -144 +146 @@
-@@ -11602,6 +11609,10 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
+@@ -8698,6 +8705,10 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
@@ -155 +157 @@
-@@ -11657,7 +11668,7 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
+@@ -8753,7 +8764,7 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
@@ -164 +166 @@
-@@ -11686,8 +11697,9 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
+@@ -8782,8 +8793,9 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
@@ -175 +177 @@
-@@ -11696,6 +11708,58 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
+@@ -8792,6 +8804,58 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
@@ -234 +236 @@
-@@ -11724,6 +11788,9 @@ mlx5_flow_hw_esw_create_default_jump_flow(struct rte_eth_dev *dev)
+@@ -8820,6 +8884,9 @@ mlx5_flow_hw_esw_create_default_jump_flow(struct rte_eth_dev *dev)
@@ -244 +246 @@
-@@ -11754,7 +11821,7 @@ mlx5_flow_hw_esw_create_default_jump_flow(struct rte_eth_dev *dev)
+@@ -8850,7 +8917,7 @@ mlx5_flow_hw_esw_create_default_jump_flow(struct rte_eth_dev *dev)
@@ -253 +255 @@
-@@ -11800,13 +11867,16 @@ mlx5_flow_hw_create_tx_default_mreg_copy_flow(struct rte_eth_dev *dev)
+@@ -8896,13 +8963,16 @@ mlx5_flow_hw_create_tx_default_mreg_copy_flow(struct rte_eth_dev *dev)
@@ -271 +273 @@
-@@ -11835,6 +11905,10 @@ mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn)
+@@ -8931,6 +9001,10 @@ mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn)
@@ -282 +284 @@
-@@ -11860,7 +11934,7 @@ mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn)
+@@ -8956,7 +9030,7 @@ mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn)
@@ -291 +293 @@
-@@ -11975,6 +12049,9 @@ __flow_hw_ctrl_flows_single(struct rte_eth_dev *dev,
+@@ -9071,6 +9145,9 @@ __flow_hw_ctrl_flows_single(struct rte_eth_dev *dev,
@@ -301 +303 @@
-@@ -11988,7 +12065,7 @@ __flow_hw_ctrl_flows_single(struct rte_eth_dev *dev,
+@@ -9084,7 +9161,7 @@ __flow_hw_ctrl_flows_single(struct rte_eth_dev *dev,
@@ -310 +312 @@
-@@ -12004,6 +12081,9 @@ __flow_hw_ctrl_flows_single_vlan(struct rte_eth_dev *dev,
+@@ -9100,6 +9177,9 @@ __flow_hw_ctrl_flows_single_vlan(struct rte_eth_dev *dev,
@@ -320 +322 @@
-@@ -12026,7 +12106,7 @@ __flow_hw_ctrl_flows_single_vlan(struct rte_eth_dev *dev,
+@@ -9122,7 +9202,7 @@ __flow_hw_ctrl_flows_single_vlan(struct rte_eth_dev *dev,
@@ -329 +331 @@
-@@ -12044,6 +12124,9 @@ __flow_hw_ctrl_flows_unicast(struct rte_eth_dev *dev,
+@@ -9140,6 +9220,9 @@ __flow_hw_ctrl_flows_unicast(struct rte_eth_dev *dev,
@@ -339 +341 @@
-@@ -12067,7 +12150,7 @@ __flow_hw_ctrl_flows_unicast(struct rte_eth_dev *dev,
+@@ -9163,7 +9246,7 @@ __flow_hw_ctrl_flows_unicast(struct rte_eth_dev *dev,
@@ -342 +344 @@
- 		memcpy(&eth_spec.hdr.dst_addr.addr_bytes, mac->addr_bytes, RTE_ETHER_ADDR_LEN);
+ 		memcpy(&eth_spec.dst.addr_bytes, mac->addr_bytes, RTE_ETHER_ADDR_LEN);
@@ -348 +350 @@
-@@ -12086,6 +12169,9 @@ __flow_hw_ctrl_flows_unicast_vlan(struct rte_eth_dev *dev,
+@@ -9182,6 +9265,9 @@ __flow_hw_ctrl_flows_unicast_vlan(struct rte_eth_dev *dev,
@@ -358 +360 @@
-@@ -12117,7 +12203,8 @@ __flow_hw_ctrl_flows_unicast_vlan(struct rte_eth_dev *dev,
+@@ -9213,7 +9299,8 @@ __flow_hw_ctrl_flows_unicast_vlan(struct rte_eth_dev *dev,
@@ -369 +371 @@
-index b584055fa8..ccdf2ffb14 100644
+index 5543f2c570..8c48e7e2a8 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix destroying external representor flow' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (86 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix missing flow rules for external SQ' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix use after free on Rx queue start' " Xueming Li
                     ` (32 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Suanming Mou; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=d32e9e689b63f151a4a3a0ebd806ec5cc1a5c1a2

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d32e9e689b63f151a4a3a0ebd806ec5cc1a5c1a2 Mon Sep 17 00:00:00 2001
From: Suanming Mou <suanmingm@nvidia.com>
Date: Thu, 9 Nov 2023 16:55:47 +0800
Subject: [PATCH] net/mlx5: fix destroying external representor flow
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit f37c184a0ea41e6244f5b1404fe866efe6d312a5 ]

The external representor matched SQ flows are managed by external
SQ, PMD traffic enable/disable should not touch these flows.

This commit adds an extra external list for the external representor
matched SQ flows.

Fixes: 26e1eaf2dac4 ("net/mlx5: support device control for E-Switch default rule")

Signed-off-by: Suanming Mou <suanmingm@nvidia.com>
---
 drivers/net/mlx5/mlx5.h         |  1 +
 drivers/net/mlx5/mlx5_flow.h    |  4 +--
 drivers/net/mlx5/mlx5_flow_hw.c | 47 ++++++++++++++++++++++++---------
 drivers/net/mlx5/mlx5_trigger.c |  4 +--
 drivers/net/mlx5/mlx5_txq.c     |  4 +--
 5 files changed, 41 insertions(+), 19 deletions(-)

diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index 8a46ba90b0..deb9959f67 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -1730,6 +1730,7 @@ struct mlx5_priv {
 	void *root_drop_action; /* Pointer to root drop action. */
 	rte_spinlock_t hw_ctrl_lock;
 	LIST_HEAD(hw_ctrl_flow, mlx5_hw_ctrl_flow) hw_ctrl_flows;
+	LIST_HEAD(hw_ext_ctrl_flow, mlx5_hw_ctrl_flow) hw_ext_ctrl_flows;
 	struct rte_flow_template_table *hw_esw_sq_miss_root_tbl;
 	struct rte_flow_template_table *hw_esw_sq_miss_tbl;
 	struct rte_flow_template_table *hw_esw_zero_tbl;
diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h
index f03734f991..1192735750 100644
--- a/drivers/net/mlx5/mlx5_flow.h
+++ b/drivers/net/mlx5/mlx5_flow.h
@@ -2581,12 +2581,12 @@ int mlx5_flow_pick_transfer_proxy(struct rte_eth_dev *dev,
 int mlx5_flow_hw_flush_ctrl_flows(struct rte_eth_dev *dev);
 
 int mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev,
-					 uint32_t sqn);
+					 uint32_t sqn, bool external);
 int mlx5_flow_hw_esw_destroy_sq_miss_flow(struct rte_eth_dev *dev,
 					  uint32_t sqn);
 int mlx5_flow_hw_esw_create_default_jump_flow(struct rte_eth_dev *dev);
 int mlx5_flow_hw_create_tx_default_mreg_copy_flow(struct rte_eth_dev *dev);
-int mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn);
+int mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn, bool external);
 int mlx5_flow_actions_validate(struct rte_eth_dev *dev,
 		const struct rte_flow_actions_template_attr *attr,
 		const struct rte_flow_action actions[],
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 3f3ab4859b..28d0bbecc4 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -6999,6 +6999,7 @@ flow_hw_configure(struct rte_eth_dev *dev,
 	priv->nb_queue = nb_q_updated;
 	rte_spinlock_init(&priv->hw_ctrl_lock);
 	LIST_INIT(&priv->hw_ctrl_flows);
+	LIST_INIT(&priv->hw_ext_ctrl_flows);
 	ret = flow_hw_create_ctrl_rx_tables(dev);
 	if (ret) {
 		rte_flow_error_set(error, -ret, RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,
@@ -8439,6 +8440,8 @@ const struct mlx5_flow_driver_ops mlx5_flow_hw_drv_ops = {
  *   Index of an action template associated with @p table.
  * @param info
  *   Additional info about control flow rule.
+ * @param external
+ *   External ctrl flow.
  *
  * @return
  *   0 on success, negative errno value otherwise and rte_errno set.
@@ -8451,7 +8454,8 @@ flow_hw_create_ctrl_flow(struct rte_eth_dev *owner_dev,
 			 uint8_t item_template_idx,
 			 struct rte_flow_action actions[],
 			 uint8_t action_template_idx,
-			 struct mlx5_hw_ctrl_flow_info *info)
+			 struct mlx5_hw_ctrl_flow_info *info,
+			 bool external)
 {
 	struct mlx5_priv *priv = proxy_dev->data->dev_private;
 	uint32_t queue = CTRL_QUEUE_ID(priv);
@@ -8502,7 +8506,10 @@ flow_hw_create_ctrl_flow(struct rte_eth_dev *owner_dev,
 		entry->info = *info;
 	else
 		entry->info.type = MLX5_HW_CTRL_FLOW_TYPE_GENERAL;
-	LIST_INSERT_HEAD(&priv->hw_ctrl_flows, entry, next);
+	if (external)
+		LIST_INSERT_HEAD(&priv->hw_ext_ctrl_flows, entry, next);
+	else
+		LIST_INSERT_HEAD(&priv->hw_ctrl_flows, entry, next);
 	rte_spinlock_unlock(&priv->hw_ctrl_lock);
 	return 0;
 error:
@@ -8676,11 +8683,23 @@ flow_hw_flush_all_ctrl_flows(struct rte_eth_dev *dev)
 		mlx5_free(cf);
 		cf = cf_next;
 	}
+	cf = LIST_FIRST(&priv->hw_ext_ctrl_flows);
+	while (cf != NULL) {
+		cf_next = LIST_NEXT(cf, next);
+		ret = flow_hw_destroy_ctrl_flow(dev, cf->flow);
+		if (ret) {
+			rte_errno = ret;
+			return -ret;
+		}
+		LIST_REMOVE(cf, next);
+		mlx5_free(cf);
+		cf = cf_next;
+	}
 	return 0;
 }
 
 int
-mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
+mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn, bool external)
 {
 	uint16_t port_id = dev->data->port_id;
 	struct rte_flow_item_ethdev esw_mgr_spec = {
@@ -8764,7 +8783,7 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
 		.type = RTE_FLOW_ACTION_TYPE_END,
 	};
 	ret = flow_hw_create_ctrl_flow(dev, proxy_dev, proxy_priv->hw_esw_sq_miss_root_tbl,
-				       items, 0, actions, 0, &flow_info);
+				       items, 0, actions, 0, &flow_info, external);
 	if (ret) {
 		DRV_LOG(ERR, "Port %u failed to create root SQ miss flow rule for SQ %u, ret %d",
 			port_id, sqn, ret);
@@ -8795,7 +8814,7 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
 	};
 	flow_info.type = MLX5_HW_CTRL_FLOW_TYPE_SQ_MISS;
 	ret = flow_hw_create_ctrl_flow(dev, proxy_dev, proxy_priv->hw_esw_sq_miss_tbl,
-				       items, 0, actions, 0, &flow_info);
+				       items, 0, actions, 0, &flow_info, external);
 	if (ret) {
 		DRV_LOG(ERR, "Port %u failed to create HWS SQ miss flow rule for SQ %u, ret %d",
 			port_id, sqn, ret);
@@ -8917,7 +8936,7 @@ mlx5_flow_hw_esw_create_default_jump_flow(struct rte_eth_dev *dev)
 	}
 	return flow_hw_create_ctrl_flow(dev, proxy_dev,
 					proxy_priv->hw_esw_zero_tbl,
-					items, 0, actions, 0, &flow_info);
+					items, 0, actions, 0, &flow_info, false);
 }
 
 int
@@ -8972,11 +8991,11 @@ mlx5_flow_hw_create_tx_default_mreg_copy_flow(struct rte_eth_dev *dev)
 		return 0;
 	return flow_hw_create_ctrl_flow(dev, dev,
 					priv->hw_tx_meta_cpy_tbl,
-					eth_all, 0, copy_reg_action, 0, &flow_info);
+					eth_all, 0, copy_reg_action, 0, &flow_info, false);
 }
 
 int
-mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn)
+mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn, bool external)
 {
 	struct mlx5_priv *priv = dev->data->dev_private;
 	struct mlx5_rte_flow_item_sq sq_spec = {
@@ -9030,7 +9049,7 @@ mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn)
 		actions[2].type = RTE_FLOW_ACTION_TYPE_JUMP;
 	}
 	return flow_hw_create_ctrl_flow(dev, dev, priv->hw_tx_repr_tagging_tbl,
-					items, 0, actions, 0, &flow_info);
+					items, 0, actions, 0, &flow_info, external);
 }
 
 static uint32_t
@@ -9161,7 +9180,7 @@ __flow_hw_ctrl_flows_single(struct rte_eth_dev *dev,
 	items[3] = flow_hw_get_ctrl_rx_l4_item(rss_type);
 	items[4] = (struct rte_flow_item){ .type = RTE_FLOW_ITEM_TYPE_END };
 	/* Without VLAN filtering, only a single flow rule must be created. */
-	return flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0, &flow_info);
+	return flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0, &flow_info, false);
 }
 
 static int
@@ -9202,7 +9221,8 @@ __flow_hw_ctrl_flows_single_vlan(struct rte_eth_dev *dev,
 		};
 
 		items[1].spec = &vlan_spec;
-		if (flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0, &flow_info))
+		if (flow_hw_create_ctrl_flow(dev, dev,
+					     tbl, items, 0, actions, 0, &flow_info, false))
 			return -rte_errno;
 	}
 	return 0;
@@ -9246,7 +9266,8 @@ __flow_hw_ctrl_flows_unicast(struct rte_eth_dev *dev,
 		if (!memcmp(mac, &cmp, sizeof(*mac)))
 			continue;
 		memcpy(&eth_spec.dst.addr_bytes, mac->addr_bytes, RTE_ETHER_ADDR_LEN);
-		if (flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0, &flow_info))
+		if (flow_hw_create_ctrl_flow(dev, dev,
+					     tbl, items, 0, actions, 0, &flow_info, false))
 			return -rte_errno;
 	}
 	return 0;
@@ -9300,7 +9321,7 @@ __flow_hw_ctrl_flows_unicast_vlan(struct rte_eth_dev *dev,
 
 			items[1].spec = &vlan_spec;
 			if (flow_hw_create_ctrl_flow(dev, dev, tbl, items, 0, actions, 0,
-						     &flow_info))
+						     &flow_info, false))
 				return -rte_errno;
 		}
 	}
diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
index 6479e44a94..2f95b8fe77 100644
--- a/drivers/net/mlx5/mlx5_trigger.c
+++ b/drivers/net/mlx5/mlx5_trigger.c
@@ -1494,13 +1494,13 @@ mlx5_traffic_enable_hws(struct rte_eth_dev *dev)
 			continue;
 		queue = mlx5_txq_get_sqn(txq);
 		if ((priv->representor || priv->master) && config->dv_esw_en) {
-			if (mlx5_flow_hw_esw_create_sq_miss_flow(dev, queue)) {
+			if (mlx5_flow_hw_esw_create_sq_miss_flow(dev, queue, false)) {
 				mlx5_txq_release(dev, i);
 				goto error;
 			}
 		}
 		if (config->dv_esw_en && config->repr_matching) {
-			if (mlx5_flow_hw_tx_repr_matching_flow(dev, queue)) {
+			if (mlx5_flow_hw_tx_repr_matching_flow(dev, queue, false)) {
 				mlx5_txq_release(dev, i);
 				goto error;
 			}
diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
index 8c48e7e2a8..d617784dba 100644
--- a/drivers/net/mlx5/mlx5_txq.c
+++ b/drivers/net/mlx5/mlx5_txq.c
@@ -1311,10 +1311,10 @@ rte_pmd_mlx5_external_sq_enable(uint16_t port_id, uint32_t sq_num)
 	}
 #ifdef HAVE_MLX5_HWS_SUPPORT
 	if (priv->sh->config.dv_flow_en == 2) {
-		if (mlx5_flow_hw_esw_create_sq_miss_flow(dev, sq_num))
+		if (mlx5_flow_hw_esw_create_sq_miss_flow(dev, sq_num, true))
 			return -rte_errno;
 		if (priv->sh->config.repr_matching &&
-		    mlx5_flow_hw_tx_repr_matching_flow(dev, sq_num)) {
+		    mlx5_flow_hw_tx_repr_matching_flow(dev, sq_num, true)) {
 			mlx5_flow_hw_esw_destroy_sq_miss_flow(dev, sq_num);
 			return -rte_errno;
 		}
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.933926300 +0800
+++ 0088-net-mlx5-fix-destroying-external-representor-flow.patch	2023-12-11 17:56:23.187652300 +0800
@@ -1 +1 @@
-From f37c184a0ea41e6244f5b1404fe866efe6d312a5 Mon Sep 17 00:00:00 2001
+From d32e9e689b63f151a4a3a0ebd806ec5cc1a5c1a2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit f37c184a0ea41e6244f5b1404fe866efe6d312a5 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index 45ad0701f1..795748eddc 100644
+index 8a46ba90b0..deb9959f67 100644
@@ -28 +30 @@
-@@ -1855,6 +1855,7 @@ struct mlx5_priv {
+@@ -1730,6 +1730,7 @@ struct mlx5_priv {
@@ -37 +39 @@
-index d57b3b5465..8c0b9a4b60 100644
+index f03734f991..1192735750 100644
@@ -40 +42 @@
-@@ -2874,12 +2874,12 @@ int flow_null_counter_query(struct rte_eth_dev *dev,
+@@ -2581,12 +2581,12 @@ int mlx5_flow_pick_transfer_proxy(struct rte_eth_dev *dev,
@@ -56 +58 @@
-index d512889682..c35064518a 100644
+index 3f3ab4859b..28d0bbecc4 100644
@@ -59 +61 @@
-@@ -9189,6 +9189,7 @@ flow_hw_configure(struct rte_eth_dev *dev,
+@@ -6999,6 +6999,7 @@ flow_hw_configure(struct rte_eth_dev *dev,
@@ -67 +69 @@
-@@ -11343,6 +11344,8 @@ const struct mlx5_flow_driver_ops mlx5_flow_hw_drv_ops = {
+@@ -8439,6 +8440,8 @@ const struct mlx5_flow_driver_ops mlx5_flow_hw_drv_ops = {
@@ -76 +78 @@
-@@ -11355,7 +11358,8 @@ flow_hw_create_ctrl_flow(struct rte_eth_dev *owner_dev,
+@@ -8451,7 +8454,8 @@ flow_hw_create_ctrl_flow(struct rte_eth_dev *owner_dev,
@@ -86 +88 @@
-@@ -11406,7 +11410,10 @@ flow_hw_create_ctrl_flow(struct rte_eth_dev *owner_dev,
+@@ -8502,7 +8506,10 @@ flow_hw_create_ctrl_flow(struct rte_eth_dev *owner_dev,
@@ -98 +100 @@
-@@ -11580,11 +11587,23 @@ flow_hw_flush_all_ctrl_flows(struct rte_eth_dev *dev)
+@@ -8676,11 +8683,23 @@ flow_hw_flush_all_ctrl_flows(struct rte_eth_dev *dev)
@@ -123 +125 @@
-@@ -11668,7 +11687,7 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
+@@ -8764,7 +8783,7 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
@@ -132 +134 @@
-@@ -11699,7 +11718,7 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
+@@ -8795,7 +8814,7 @@ mlx5_flow_hw_esw_create_sq_miss_flow(struct rte_eth_dev *dev, uint32_t sqn)
@@ -141 +143 @@
-@@ -11821,7 +11840,7 @@ mlx5_flow_hw_esw_create_default_jump_flow(struct rte_eth_dev *dev)
+@@ -8917,7 +8936,7 @@ mlx5_flow_hw_esw_create_default_jump_flow(struct rte_eth_dev *dev)
@@ -150 +152 @@
-@@ -11876,11 +11895,11 @@ mlx5_flow_hw_create_tx_default_mreg_copy_flow(struct rte_eth_dev *dev)
+@@ -8972,11 +8991,11 @@ mlx5_flow_hw_create_tx_default_mreg_copy_flow(struct rte_eth_dev *dev)
@@ -164 +166 @@
-@@ -11934,7 +11953,7 @@ mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn)
+@@ -9030,7 +9049,7 @@ mlx5_flow_hw_tx_repr_matching_flow(struct rte_eth_dev *dev, uint32_t sqn)
@@ -173 +175 @@
-@@ -12065,7 +12084,7 @@ __flow_hw_ctrl_flows_single(struct rte_eth_dev *dev,
+@@ -9161,7 +9180,7 @@ __flow_hw_ctrl_flows_single(struct rte_eth_dev *dev,
@@ -182 +184 @@
-@@ -12106,7 +12125,8 @@ __flow_hw_ctrl_flows_single_vlan(struct rte_eth_dev *dev,
+@@ -9202,7 +9221,8 @@ __flow_hw_ctrl_flows_single_vlan(struct rte_eth_dev *dev,
@@ -192 +194 @@
-@@ -12150,7 +12170,8 @@ __flow_hw_ctrl_flows_unicast(struct rte_eth_dev *dev,
+@@ -9246,7 +9266,8 @@ __flow_hw_ctrl_flows_unicast(struct rte_eth_dev *dev,
@@ -195 +197 @@
- 		memcpy(&eth_spec.hdr.dst_addr.addr_bytes, mac->addr_bytes, RTE_ETHER_ADDR_LEN);
+ 		memcpy(&eth_spec.dst.addr_bytes, mac->addr_bytes, RTE_ETHER_ADDR_LEN);
@@ -202 +204 @@
-@@ -12204,7 +12225,7 @@ __flow_hw_ctrl_flows_unicast_vlan(struct rte_eth_dev *dev,
+@@ -9300,7 +9321,7 @@ __flow_hw_ctrl_flows_unicast_vlan(struct rte_eth_dev *dev,
@@ -212 +214 @@
-index 7bdb897612..d7ecb149fa 100644
+index 6479e44a94..2f95b8fe77 100644
@@ -232 +234 @@
-index ccdf2ffb14..1ac43548b2 100644
+index 8c48e7e2a8..d617784dba 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix use after free on Rx queue start' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (87 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix destroying external representor flow' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix hairpin queue unbind' " Xueming Li
                     ` (31 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=480df9f41ec2ecca534a6783d95fdd10769830e3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 480df9f41ec2ecca534a6783d95fdd10769830e3 Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Thu, 9 Nov 2023 19:58:19 +0200
Subject: [PATCH] net/mlx5: fix use after free on Rx queue start
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c93943c575b495132c4b7456caecde7d268334e3 ]

If RX queue is not started yet, then a mlx5_rxq_obj struct used for
storing HW queue objects will be allocated and added to the list held
in port's private data structure.
After that allocation, Rx queue HW object configuration is done.
If that configuration failed, then mlx5_rxq_obj struct is freed, but
not removed from the list. This causes an use after free bug, during
error handling in mlx5_rxq_start(), where this deallocated struct
was accessed during list cleanup.

This patch fixes that by inserting mlx5_rxq_obj struct to the list only
after HW queue object configuration succeeded.

Fixes: 09c2555303be ("net/mlx5: support shared Rx queue")

Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_trigger.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
index 2f95b8fe77..5bf637a0cd 100644
--- a/drivers/net/mlx5/mlx5_trigger.c
+++ b/drivers/net/mlx5/mlx5_trigger.c
@@ -226,17 +226,17 @@ mlx5_rxq_start(struct rte_eth_dev *dev)
 		if (rxq == NULL)
 			continue;
 		rxq_ctrl = rxq->ctrl;
-		if (!rxq_ctrl->started) {
+		if (!rxq_ctrl->started)
 			if (mlx5_rxq_ctrl_prepare(dev, rxq_ctrl, i) < 0)
 				goto error;
-			LIST_INSERT_HEAD(&priv->rxqsobj, rxq_ctrl->obj, next);
-		}
 		ret = priv->obj_ops.rxq_obj_new(rxq);
 		if (ret) {
 			mlx5_free(rxq_ctrl->obj);
 			rxq_ctrl->obj = NULL;
 			goto error;
 		}
+		if (!rxq_ctrl->started)
+			LIST_INSERT_HEAD(&priv->rxqsobj, rxq_ctrl->obj, next);
 		rxq_ctrl->started = true;
 	}
 	return 0;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:25.985251700 +0800
+++ 0089-net-mlx5-fix-use-after-free-on-Rx-queue-start.patch	2023-12-11 17:56:23.187652300 +0800
@@ -1 +1 @@
-From c93943c575b495132c4b7456caecde7d268334e3 Mon Sep 17 00:00:00 2001
+From 480df9f41ec2ecca534a6783d95fdd10769830e3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c93943c575b495132c4b7456caecde7d268334e3 ]
@@ -19 +21,0 @@
-Cc: stable@dpdk.org
@@ -28 +30 @@
-index d7ecb149fa..7694140537 100644
+index 2f95b8fe77..5bf637a0cd 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix hairpin queue unbind' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (88 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix use after free on Rx queue start' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix hairpin queue states' " Xueming Li
                     ` (30 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=ab4675324505ddcdfecdafa1e336f2c83e1b80f8

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ab4675324505ddcdfecdafa1e336f2c83e1b80f8 Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Thu, 9 Nov 2023 20:01:09 +0200
Subject: [PATCH] net/mlx5: fix hairpin queue unbind
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit ab2439f80bdf94e2382efe941cf827da6710b5d7 ]

Let's take an application with the following configuration:

- It uses 2 ports.
- Each port has 3 Rx queues and 3 Tx queues.
- On each port, Rx queues have a following purposes:
  - Rx queue 0 - SW queue,
  - Rx queue 1 - hairpin queue, bound to Tx queue on the same port,
  - Rx queue 2 - hairpin queue, bound to Tx queue on another port.
- On each port, Tx queues have a following purposes:
  - Tx queue 0 - SW queue,
  - Tx queue 1 - hairpin queue, bound to Rx queue on the same port,
  - Tx queue 2 - hairpin queue, bound to Rx queue on another port.
- Application configured all of the hairpin queues for manual binding.

After ports are configured and queues are set up,
if the application does the following API call sequence:

1. rte_eth_dev_start(port_id=0)
2. rte_eth_hairpin_bind(tx_port=0, rx_port=0)
3. rte_eth_hairpin_bind(tx_port=0, rx_port=1)

mlx5 PMD fails to modify SQ and logs this error:

  mlx5_common: mlx5_devx_cmds.c:2079: mlx5_devx_cmd_modify_sq():
    Failed to modify SQ using DevX

This error was caused by an incorrect unbind operation taken during
error handling inside call (3).

(3) fails, because port 1 (Rx side of the hairpin) was not started.
As a result of this failure, PMD goes into error handling, where all
previously bound hairpin queues are unbound.
This is incorrect, since this error handling procedure
in rte_eth_hairpin_bind() implementation assumes that
all hairpin queues are bound to the same rx_port, which is not the case.
The following sequence of function calls appears:

- rte_eth_hairpin_queue_peer_unbind(rx_port=**1**, rx_queue=1, 0),
- mlx5_hairpin_queue_peer_unbind(dev=**port 0**, tx_queue=1, 1).

Which violates the hairpin queue destroy flow, by unbinding Tx queue 1
on port 0, before unbinding Rx queue 1 on port 1.

This patch fixes that behavior, by filtering Tx queues on which error
handling is done to only affect:

- hairpin queues (it also reduces unnecessary debug log messages),
- hairpin queues connected to the rx_port which is currently processed.

Fixes: 37cd4501e873 ("net/mlx5: support two ports hairpin mode")

Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_trigger.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
index 5bf637a0cd..80d2a60473 100644
--- a/drivers/net/mlx5/mlx5_trigger.c
+++ b/drivers/net/mlx5/mlx5_trigger.c
@@ -845,6 +845,11 @@ error:
 		txq_ctrl = mlx5_txq_get(dev, i);
 		if (txq_ctrl == NULL)
 			continue;
+		if (!txq_ctrl->is_hairpin ||
+		    txq_ctrl->hairpin_conf.peers[0].port != rx_port) {
+			mlx5_txq_release(dev, i);
+			continue;
+		}
 		rx_queue = txq_ctrl->hairpin_conf.peers[0].queue;
 		rte_eth_hairpin_queue_peer_unbind(rx_port, rx_queue, 0);
 		mlx5_hairpin_queue_peer_unbind(dev, i, 1);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.018245300 +0800
+++ 0090-net-mlx5-fix-hairpin-queue-unbind.patch	2023-12-11 17:56:23.187652300 +0800
@@ -1 +1 @@
-From ab2439f80bdf94e2382efe941cf827da6710b5d7 Mon Sep 17 00:00:00 2001
+From ab4675324505ddcdfecdafa1e336f2c83e1b80f8 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ab2439f80bdf94e2382efe941cf827da6710b5d7 ]
@@ -56 +58,0 @@
-Cc: stable@dpdk.org
@@ -65 +67 @@
-index 7694140537..4b5becc10c 100644
+index 5bf637a0cd..80d2a60473 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix hairpin queue states' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (89 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix hairpin queue unbind' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix multi-segment Tx inline data length' " Xueming Li
                     ` (29 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=14a722ae6ba37be07b1e71cff6fe7f6d6aa06352

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 14a722ae6ba37be07b1e71cff6fe7f6d6aa06352 Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Thu, 9 Nov 2023 20:04:25 +0200
Subject: [PATCH] net/mlx5: fix hairpin queue states
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit ca638c49e402c930bbe20979c7f5aa2bd6bc0a5a ]

This patch fixes the expected SQ and RQ states used in
MODIFY_SQ and MODIFY_RQ during unbinding of the hairpin queues.
When unbinding the queue objects, they are in RDY state and
are transitioning to RST state, instead of going from RST to RST state.

Also, this patch fixes the constants used for RQ states.
Instead of MLX5_SQC_STATE_*, now MLX5_RQC_STATE_* are used.

Fixes: 6a338ad4f7fe ("net/mlx5: add hairpin binding function")
Fixes: 37cd4501e873 ("net/mlx5: support two ports hairpin mode")

Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_trigger.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
index 80d2a60473..c6742cb47e 100644
--- a/drivers/net/mlx5/mlx5_trigger.c
+++ b/drivers/net/mlx5/mlx5_trigger.c
@@ -346,8 +346,8 @@ mlx5_hairpin_auto_bind(struct rte_eth_dev *dev)
 		ret = mlx5_devx_cmd_modify_sq(sq, &sq_attr);
 		if (ret)
 			goto error;
-		rq_attr.state = MLX5_SQC_STATE_RDY;
-		rq_attr.rq_state = MLX5_SQC_STATE_RST;
+		rq_attr.state = MLX5_RQC_STATE_RDY;
+		rq_attr.rq_state = MLX5_RQC_STATE_RST;
 		rq_attr.hairpin_peer_sq = sq->id;
 		rq_attr.hairpin_peer_vhca =
 				priv->sh->cdev->config.hca_attr.vhca_id;
@@ -601,8 +601,8 @@ mlx5_hairpin_queue_peer_bind(struct rte_eth_dev *dev, uint16_t cur_queue,
 				" mismatch", dev->data->port_id, cur_queue);
 			return -rte_errno;
 		}
-		rq_attr.state = MLX5_SQC_STATE_RDY;
-		rq_attr.rq_state = MLX5_SQC_STATE_RST;
+		rq_attr.state = MLX5_RQC_STATE_RDY;
+		rq_attr.rq_state = MLX5_RQC_STATE_RST;
 		rq_attr.hairpin_peer_sq = peer_info->qp_id;
 		rq_attr.hairpin_peer_vhca = peer_info->vhca_id;
 		ret = mlx5_devx_cmd_modify_rq(rxq_ctrl->obj->rq, &rq_attr);
@@ -666,7 +666,7 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,
 			return -rte_errno;
 		}
 		sq_attr.state = MLX5_SQC_STATE_RST;
-		sq_attr.sq_state = MLX5_SQC_STATE_RST;
+		sq_attr.sq_state = MLX5_SQC_STATE_RDY;
 		ret = mlx5_devx_cmd_modify_sq(txq_ctrl->obj->sq, &sq_attr);
 		if (ret == 0)
 			txq_ctrl->hairpin_status = 0;
@@ -700,8 +700,8 @@ mlx5_hairpin_queue_peer_unbind(struct rte_eth_dev *dev, uint16_t cur_queue,
 				dev->data->port_id, cur_queue);
 			return -rte_errno;
 		}
-		rq_attr.state = MLX5_SQC_STATE_RST;
-		rq_attr.rq_state = MLX5_SQC_STATE_RST;
+		rq_attr.state = MLX5_RQC_STATE_RST;
+		rq_attr.rq_state = MLX5_RQC_STATE_RDY;
 		ret = mlx5_devx_cmd_modify_rq(rxq_ctrl->obj->rq, &rq_attr);
 		if (ret == 0)
 			rxq->hairpin_status = 0;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.048409000 +0800
+++ 0091-net-mlx5-fix-hairpin-queue-states.patch	2023-12-11 17:56:23.187652300 +0800
@@ -1 +1 @@
-From ca638c49e402c930bbe20979c7f5aa2bd6bc0a5a Mon Sep 17 00:00:00 2001
+From 14a722ae6ba37be07b1e71cff6fe7f6d6aa06352 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ca638c49e402c930bbe20979c7f5aa2bd6bc0a5a ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org
@@ -25 +27 @@
-index 4b5becc10c..35733b0604 100644
+index 80d2a60473..c6742cb47e 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix multi-segment Tx inline data length' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (90 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix hairpin queue states' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: fix shared Rx queue list management' " Xueming Li
                     ` (28 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Viacheslav Ovsiienko; +Cc: Suanming Mou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=4699a174eaacf1efbc2eb48e189ceed232797c97

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 4699a174eaacf1efbc2eb48e189ceed232797c97 Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Date: Fri, 10 Nov 2023 11:49:38 +0200
Subject: [PATCH] net/mlx5: fix multi-segment Tx inline data length
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e3c7bb56b4583ccb1304219f52639d898727e65d ]

If packet data length exceeds the configured limit for packet
to be inlined in the queue descriptor the driver checks if hardware
requires to do minimal data inline or the VLAN insertion offload is
requested and not supported in hardware (that means we have to do VLAN
insertion in software with inline data). Then driver scans the mbuf
chain to find the minimal segment amount to satisfy the data needed
for minimal inline.

There was incorrect first segment inline data length calculation
with missing VLAN header being inserted, that could lead to the
segmentation fault in the mbuf chain scanning, for example for
the packets:

  packet:
    mbuf0 pkt_len = 288, data_len = 156
    mbuf1 pkt_len = 132, data_len = 132

  txq->inlen_send = 290

The driver was trying to reach the inlen_send inline data length
with missing VLAN header length added and was running out of the
mbuf chain (there were just not enough data in the packet to satisfy
the criteria).

Fixes: 18a1c20044c0 ("net/mlx5: implement Tx burst template")
Fixes: ec837ad0fc7c ("net/mlx5: fix multi-segment inline for the first segments")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
 drivers/net/mlx5/mlx5_tx.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_tx.h b/drivers/net/mlx5/mlx5_tx.h
index a056be7ca8..ff23d87b8a 100644
--- a/drivers/net/mlx5/mlx5_tx.h
+++ b/drivers/net/mlx5/mlx5_tx.h
@@ -1975,7 +1975,7 @@ mlx5_tx_packet_multi_inline(struct mlx5_txq_data *__rte_restrict txq,
 		uintptr_t start;
 
 		mbuf = loc->mbuf;
-		nxlen = rte_pktmbuf_data_len(mbuf);
+		nxlen = rte_pktmbuf_data_len(mbuf) + vlan;
 		/*
 		 * Packet length exceeds the allowed inline data length,
 		 * check whether the minimal inlining is required.
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.076764800 +0800
+++ 0092-net-mlx5-fix-multi-segment-Tx-inline-data-length.patch	2023-12-11 17:56:23.197652300 +0800
@@ -1 +1 @@
-From e3c7bb56b4583ccb1304219f52639d898727e65d Mon Sep 17 00:00:00 2001
+From 4699a174eaacf1efbc2eb48e189ceed232797c97 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e3c7bb56b4583ccb1304219f52639d898727e65d ]
@@ -32 +34,0 @@
-Cc: stable@dpdk.org
@@ -41 +43 @@
-index 264cc192dc..e59ce37667 100644
+index a056be7ca8..ff23d87b8a 100644
@@ -44 +46 @@
-@@ -2046,7 +2046,7 @@ mlx5_tx_packet_multi_inline(struct mlx5_txq_data *__rte_restrict txq,
+@@ -1975,7 +1975,7 @@ mlx5_tx_packet_multi_inline(struct mlx5_txq_data *__rte_restrict txq,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix shared Rx queue list management' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (91 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix multi-segment Tx inline data length' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:11   ` patch 'net/mlx5: zero UDP checksum over IPv4 in encapsulation' " Xueming Li
                     ` (27 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Bing Zhao; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=c9e75ba878863c8535670b6137fd6d9380388444

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c9e75ba878863c8535670b6137fd6d9380388444 Mon Sep 17 00:00:00 2001
From: Bing Zhao <bingz@nvidia.com>
Date: Mon, 13 Nov 2023 09:24:48 +0200
Subject: [PATCH] net/mlx5: fix shared Rx queue list management
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit bcc220cb57d7a2c45703c7215aad2320ac0a1e51 ]

In shared Rx queue case, the shared control structure could only be
released after the last port's dereference in the group.

There is another management list that holding all of the used Rx
queues' structures for a port. If the reference count of a control
structure is changed to zero during port close, it can be removed
from the list directly without freeing the resource.

Fixes: 09c2555303be ("net/mlx5: support shared Rx queue")

Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_rxq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index 6b2af87cd2..834707ea87 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -2277,6 +2277,7 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
 					RTE_ETH_QUEUE_STATE_STOPPED;
 		}
 	} else { /* Refcnt zero, closing device. */
+		LIST_REMOVE(rxq_ctrl, next);
 		LIST_REMOVE(rxq, owner_entry);
 		if (LIST_EMPTY(&rxq_ctrl->owners)) {
 			if (!rxq_ctrl->is_hairpin)
@@ -2284,7 +2285,6 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
 					(&rxq_ctrl->rxq.mr_ctrl.cache_bh);
 			if (rxq_ctrl->rxq.shared)
 				LIST_REMOVE(rxq_ctrl, share_entry);
-			LIST_REMOVE(rxq_ctrl, next);
 			mlx5_free(rxq_ctrl);
 		}
 		dev->data->rx_queues[idx] = NULL;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.105760100 +0800
+++ 0093-net-mlx5-fix-shared-Rx-queue-list-management.patch	2023-12-11 17:56:23.197652300 +0800
@@ -1 +1 @@
-From bcc220cb57d7a2c45703c7215aad2320ac0a1e51 Mon Sep 17 00:00:00 2001
+From c9e75ba878863c8535670b6137fd6d9380388444 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit bcc220cb57d7a2c45703c7215aad2320ac0a1e51 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 88b2dc54b3..2c51af11c7 100644
+index 6b2af87cd2..834707ea87 100644
@@ -27 +29 @@
-@@ -2280,6 +2280,7 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
+@@ -2277,6 +2277,7 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
@@ -35 +37 @@
-@@ -2287,7 +2288,6 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)
+@@ -2284,7 +2285,6 @@ mlx5_rxq_release(struct rte_eth_dev *dev, uint16_t idx)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: zero UDP checksum over IPv4 in encapsulation' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (92 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: fix shared Rx queue list management' " Xueming Li
@ 2023-12-11 10:11   ` Xueming Li
  2023-12-11 10:12   ` patch 'net/mlx5: fix MPRQ stride size check' " Xueming Li
                     ` (26 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:11 UTC (permalink / raw)
  To: Eli Britstein; +Cc: Suanming Mou, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=07a861e472461649d1ec22ab82de602f6018b88d

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 07a861e472461649d1ec22ab82de602f6018b88d Mon Sep 17 00:00:00 2001
From: Eli Britstein <elibr@nvidia.com>
Date: Mon, 13 Nov 2023 09:29:41 +0200
Subject: [PATCH] net/mlx5: zero UDP checksum over IPv4 in encapsulation
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e407221d58ffdfd9b7c80f8e4fff99f67cdbd6e9 ]

A zero UDP csum indicates it should not be validated by the receiver.
The HW may not calculate UDP csum after encap.

The cited commit made sure the UDP csum is zero for UDP over IPv6,
mistakenly not handling UDP over IPv4. Fix it.

Fixes: bf1d7d9a033a ("net/mlx5: zero out UDP checksum in encapsulation")

Signed-off-by: Eli Britstein <elibr@nvidia.com>
Acked-by: Suanming Mou <suanmingm@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index aa3a258ae7..5c2af50fe5 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -4454,6 +4454,7 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
 {
 	struct rte_ether_hdr *eth = NULL;
 	struct rte_vlan_hdr *vlan = NULL;
+	struct rte_ipv4_hdr *ipv4 = NULL;
 	struct rte_ipv6_hdr *ipv6 = NULL;
 	struct rte_udp_hdr *udp = NULL;
 	char *next_hdr;
@@ -4470,24 +4471,27 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
 		next_hdr += sizeof(struct rte_vlan_hdr);
 	}
 
-	/* HW calculates IPv4 csum. no need to proceed */
-	if (proto == RTE_ETHER_TYPE_IPV4)
-		return 0;
-
 	/* non IPv4/IPv6 header. not supported */
-	if (proto != RTE_ETHER_TYPE_IPV6) {
+	if (proto != RTE_ETHER_TYPE_IPV4 && proto != RTE_ETHER_TYPE_IPV6) {
 		return rte_flow_error_set(error, ENOTSUP,
 					  RTE_FLOW_ERROR_TYPE_ACTION,
 					  NULL, "Cannot offload non IPv4/IPv6");
 	}
 
-	ipv6 = (struct rte_ipv6_hdr *)next_hdr;
-
-	/* ignore non UDP */
-	if (ipv6->proto != IPPROTO_UDP)
-		return 0;
+	if (proto == RTE_ETHER_TYPE_IPV4) {
+		ipv4 = (struct rte_ipv4_hdr *)next_hdr;
+		/* ignore non UDP */
+		if (ipv4->next_proto_id != IPPROTO_UDP)
+			return 0;
+		udp = (struct rte_udp_hdr *)(ipv4 + 1);
+	} else {
+		ipv6 = (struct rte_ipv6_hdr *)next_hdr;
+		/* ignore non UDP */
+		if (ipv6->proto != IPPROTO_UDP)
+			return 0;
+		udp = (struct rte_udp_hdr *)(ipv6 + 1);
+	}
 
-	udp = (struct rte_udp_hdr *)(ipv6 + 1);
 	udp->dgram_cksum = 0;
 
 	return 0;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.137553400 +0800
+++ 0094-net-mlx5-zero-UDP-checksum-over-IPv4-in-encapsulatio.patch	2023-12-11 17:56:23.207652300 +0800
@@ -1 +1 @@
-From e407221d58ffdfd9b7c80f8e4fff99f67cdbd6e9 Mon Sep 17 00:00:00 2001
+From 07a861e472461649d1ec22ab82de602f6018b88d Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e407221d58ffdfd9b7c80f8e4fff99f67cdbd6e9 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index 9753af2cb1..115d730317 100644
+index aa3a258ae7..5c2af50fe5 100644
@@ -25 +27 @@
-@@ -4713,6 +4713,7 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
+@@ -4454,6 +4454,7 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
@@ -33 +35 @@
-@@ -4729,24 +4730,27 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)
+@@ -4470,24 +4471,27 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix MPRQ stride size check' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (93 preceding siblings ...)
  2023-12-11 10:11   ` patch 'net/mlx5: zero UDP checksum over IPv4 in encapsulation' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'eal/riscv: fix vector type alignment' " Xueming Li
                     ` (25 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Alexander Kozyrev; +Cc: Viacheslav Ovsiienko, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=d3741774d0daa3702a711df16d16428e06e33354

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From d3741774d0daa3702a711df16d16428e06e33354 Mon Sep 17 00:00:00 2001
From: Alexander Kozyrev <akozyrev@nvidia.com>
Date: Thu, 12 Oct 2023 19:34:33 +0300
Subject: [PATCH] net/mlx5: fix MPRQ stride size check
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit fdee0f1b30ae8dfc431465878aae5295372cca6f ]

We should only check that MPRQ stride size is bigger than the mbuf size
in case no devarg configuration has been provided. Headroom check was
indtroduced recently and removed this condition inadvertently.
Restore this condition and only check if mprq_log_stride_size is not set.

Fixes: e6479f009fbd ("net/mlx5: fix MPRQ stride size for headroom")

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5.c     |  2 +-
 drivers/net/mlx5/mlx5_rxq.c | 25 ++++++++++++++-----------
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index 90dbb6e3b0..1a5f95b22b 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -2494,7 +2494,7 @@ mlx5_port_args_config(struct mlx5_priv *priv, struct mlx5_kvargs_ctrl *mkvlist,
 	config->mprq.max_memcpy_len = MLX5_MPRQ_MEMCPY_DEFAULT_LEN;
 	config->mprq.min_rxqs_num = MLX5_MPRQ_MIN_RXQS;
 	config->mprq.log_stride_num = MLX5_MPRQ_DEFAULT_LOG_STRIDE_NUM;
-	config->mprq.log_stride_size = MLX5_MPRQ_DEFAULT_LOG_STRIDE_SIZE;
+	config->mprq.log_stride_size = MLX5_ARG_UNSET;
 	config->log_hp_size = MLX5_ARG_UNSET;
 	config->std_delay_drop = 0;
 	config->hp_delay_drop = 0;
diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index 834707ea87..9179b9d9d7 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -1602,18 +1602,19 @@ mlx5_mprq_prepare(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,
 		*actual_log_stride_num = config->mprq.log_stride_num;
 	}
 	/* Checks if chosen size of stride is in supported range. */
-	if (config->mprq.log_stride_size > log_max_stride_size ||
-	    config->mprq.log_stride_size < log_min_stride_size) {
-		*actual_log_stride_size = log_def_stride_size;
-		DRV_LOG(WARNING,
-			"Port %u Rx queue %u size of a stride for Multi-Packet RQ is out of range, setting default value (%u)",
-			dev->data->port_id, idx,
-			RTE_BIT32(log_def_stride_size));
+	if (config->mprq.log_stride_size != (uint32_t)MLX5_ARG_UNSET) {
+		if (config->mprq.log_stride_size > log_max_stride_size ||
+			config->mprq.log_stride_size < log_min_stride_size) {
+			*actual_log_stride_size = log_def_stride_size;
+			DRV_LOG(WARNING,
+				"Port %u Rx queue %u size of a stride for Multi-Packet RQ is out of range, setting default value (%u)",
+				dev->data->port_id, idx,
+				RTE_BIT32(log_def_stride_size));
+		} else {
+			*actual_log_stride_size = config->mprq.log_stride_size;
+		}
 	} else {
-		*actual_log_stride_size = config->mprq.log_stride_size;
-	}
-	/* Make the stride fit the mbuf size by default. */
-	if (*actual_log_stride_size == MLX5_MPRQ_DEFAULT_LOG_STRIDE_SIZE) {
+		/* Make the stride fit the mbuf size by default. */
 		if (min_mbuf_size <= RTE_BIT32(log_max_stride_size)) {
 			DRV_LOG(WARNING,
 				"Port %u Rx queue %u size of a stride for Multi-Packet RQ is adjusted to match the mbuf size (%u)",
@@ -1672,6 +1673,8 @@ unsupport:
 			" min_stride_sz = %u, max_stride_sz = %u).\n"
 			"Rx segment is %senabled. External mempool is %sused.",
 			dev->data->port_id, min_mbuf_size, desc, priv->rxqs_n,
+			config->mprq.log_stride_size == (uint32_t)MLX5_ARG_UNSET ?
+			RTE_BIT32(MLX5_MPRQ_DEFAULT_LOG_STRIDE_SIZE) :
 			RTE_BIT32(config->mprq.log_stride_size),
 			RTE_BIT32(config->mprq.log_stride_num),
 			config->mprq.min_rxqs_num,
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.192184600 +0800
+++ 0095-net-mlx5-fix-MPRQ-stride-size-check.patch	2023-12-11 17:56:23.207652300 +0800
@@ -1 +1 @@
-From fdee0f1b30ae8dfc431465878aae5295372cca6f Mon Sep 17 00:00:00 2001
+From d3741774d0daa3702a711df16d16428e06e33354 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit fdee0f1b30ae8dfc431465878aae5295372cca6f ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -22 +24 @@
-index d6cb0d1c8a..3a182de248 100644
+index 90dbb6e3b0..1a5f95b22b 100644
@@ -25 +27 @@
-@@ -2709,7 +2709,7 @@ mlx5_port_args_config(struct mlx5_priv *priv, struct mlx5_kvargs_ctrl *mkvlist,
+@@ -2494,7 +2494,7 @@ mlx5_port_args_config(struct mlx5_priv *priv, struct mlx5_kvargs_ctrl *mkvlist,
@@ -35 +37 @@
-index 2c51af11c7..1bb036afeb 100644
+index 834707ea87..9179b9d9d7 100644
@@ -38 +40 @@
-@@ -1605,18 +1605,19 @@ mlx5_mprq_prepare(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,
+@@ -1602,18 +1602,19 @@ mlx5_mprq_prepare(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,
@@ -69 +71 @@
-@@ -1675,6 +1676,8 @@ unsupport:
+@@ -1672,6 +1673,8 @@ unsupport:

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'eal/riscv: fix vector type alignment' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (94 preceding siblings ...)
  2023-12-11 10:12   ` patch 'net/mlx5: fix MPRQ stride size check' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'net/txgbe: fix out of bound access' " Xueming Li
                     ` (24 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Tyler Retzlaff; +Cc: Morten Brørup, Stanislaw Kardach, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e0fa00397267b12b034e4980ee8cd13b9c6cede3

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e0fa00397267b12b034e4980ee8cd13b9c6cede3 Mon Sep 17 00:00:00 2001
From: Tyler Retzlaff <roretzla@linux.microsoft.com>
Date: Wed, 15 Nov 2023 13:16:43 -0800
Subject: [PATCH] eal/riscv: fix vector type alignment
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit b31898aeefb8ca312fa6a594b9fc583d5e23a8d8 ]

Fix the alignment for rte_xmm_t it should be 16 instead of 8 bytes.

Fixes: f22e705ebf12 ("eal/riscv: support RISC-V architecture")

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
Reviewed-by: Stanislaw Kardach <kda@semihalf.com>
---
 lib/eal/riscv/include/rte_vect.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/eal/riscv/include/rte_vect.h b/lib/eal/riscv/include/rte_vect.h
index 2f97f437a2..da9092a94a 100644
--- a/lib/eal/riscv/include/rte_vect.h
+++ b/lib/eal/riscv/include/rte_vect.h
@@ -29,7 +29,7 @@ typedef union rte_xmm {
 	uint32_t	u32[XMM_SIZE / sizeof(uint32_t)];
 	uint64_t	u64[XMM_SIZE / sizeof(uint64_t)];
 	double		pd[XMM_SIZE / sizeof(double)];
-} __rte_aligned(8) rte_xmm_t;
+} __rte_aligned(16) rte_xmm_t;
 
 static inline xmm_t
 vect_load_128(void *p)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.227451000 +0800
+++ 0096-eal-riscv-fix-vector-type-alignment.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From b31898aeefb8ca312fa6a594b9fc583d5e23a8d8 Mon Sep 17 00:00:00 2001
+From e0fa00397267b12b034e4980ee8cd13b9c6cede3 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b31898aeefb8ca312fa6a594b9fc583d5e23a8d8 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/txgbe: fix out of bound access' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (95 preceding siblings ...)
  2023-12-11 10:12   ` patch 'eal/riscv: fix vector type alignment' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'doc: fix hns3 build option about max queue number' " Xueming Li
                     ` (23 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: Luca Boccassi, Jiawen Wu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=085a72d8f818acd9c7410e6b25352969d5fad5e2

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 085a72d8f818acd9c7410e6b25352969d5fad5e2 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@amd.com>
Date: Fri, 17 Nov 2023 10:12:04 +0000
Subject: [PATCH] net/txgbe: fix out of bound access
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 4a2ba73b1d1a76a4c270aa34af22229172a7f387 ]

Reported by SuSe CI [1] by GCC [2], possibly false positive. Error:

 In function 'txgbe_host_interface_command',
     inlined from 'txgbe_host_interface_command'
             at ../drivers/net/txgbe/base/txgbe_mng.c:104:1,
     inlined from 'txgbe_hic_reset'
             at ../drivers/net/txgbe/base/txgbe_mng.c:345:9:
 ../drivers/net/txgbe/base/txgbe_mng.c:145:36:
    error: array subscript 2 is outside array bounds ofr
           'struct txgbe_hic_reset[1]' [-Werror=array-bounds=]
   145 |                     buffer[bi] = rd32a(hw, TXGBE_MNGMBX, bi);
 ../drivers/net/txgbe/base/txgbe_mng.c: In function 'txgbe_hic_reset':
 ../drivers/net/txgbe/base/txgbe_mng.c:331:32:
    note: at offset 8 into object 'reset_cmd' of size 8
   331 |         struct txgbe_hic_reset reset_cmd;
       |                                ^~~~~~~~~

Access to buffer done based on command code, the case complained by
FW_RESET_CMD has short buffer but this code path only taken with command
0x30, so this shouldn't be a problem.

Command 0x30 no more used, removing this exception check that cause
build error.

[1]
https://build.opensuse.org/public/build/home:bluca:dpdk/openSUSE_Factory_ARM/armv7l/dpdk-20.11/_log

[2]
gcc 13.2.1 "cc (SUSE Linux) 13.2.1 20230912

Fixes: 35c90ecccfd4 ("net/txgbe: add EEPROM functions")

Reported-by: Luca Boccassi <luca.boccassi@microsoft.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.com>
Reviewed-by: Jiawen Wu <jiawenwu@trustnetic.com>
---
 drivers/net/txgbe/base/txgbe_mng.c | 16 +---------------
 1 file changed, 1 insertion(+), 15 deletions(-)

diff --git a/drivers/net/txgbe/base/txgbe_mng.c b/drivers/net/txgbe/base/txgbe_mng.c
index df7145094f..029a0a1fe1 100644
--- a/drivers/net/txgbe/base/txgbe_mng.c
+++ b/drivers/net/txgbe/base/txgbe_mng.c
@@ -141,21 +141,7 @@ txgbe_host_interface_command(struct txgbe_hw *hw, u32 *buffer,
 	for (bi = 0; bi < dword_len; bi++)
 		buffer[bi] = rd32a(hw, TXGBE_MNGMBX, bi);
 
-	/*
-	 * If there is any thing in data position pull it in
-	 * Read Flash command requires reading buffer length from
-	 * two byes instead of one byte
-	 */
-	if (resp->cmd == 0x30) {
-		for (; bi < dword_len + 2; bi++)
-			buffer[bi] = rd32a(hw, TXGBE_MNGMBX, bi);
-
-		buf_len = (((u16)(resp->cmd_or_resp.ret_status) << 3)
-				  & 0xF00) | resp->buf_len;
-		hdr_size += (2 << 2);
-	} else {
-		buf_len = resp->buf_len;
-	}
+	buf_len = resp->buf_len;
 	if (!buf_len)
 		goto rel_out;
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.253976500 +0800
+++ 0097-net-txgbe-fix-out-of-bound-access.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From 4a2ba73b1d1a76a4c270aa34af22229172a7f387 Mon Sep 17 00:00:00 2001
+From 085a72d8f818acd9c7410e6b25352969d5fad5e2 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4a2ba73b1d1a76a4c270aa34af22229172a7f387 ]
@@ -37 +39,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'doc: fix hns3 build option about max queue number' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (96 preceding siblings ...)
  2023-12-11 10:12   ` patch 'net/txgbe: fix out of bound access' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'doc: update features in hns3 guide' " Xueming Li
                     ` (22 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Huisong Li; +Cc: Jie Hai, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=6a44194cc1e0c0979a6a936ccc6fdc7e75c7e10e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6a44194cc1e0c0979a6a936ccc6fdc7e75c7e10e Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Mon, 20 Nov 2023 19:14:02 +0800
Subject: [PATCH] doc: fix hns3 build option about max queue number
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit f64a879dbb1f8b508d9cf25dd4a252597f72864c ]

This patch fixes the description of compilation option about setting max
queue number. The maximum queue number of HIP09 and HIP10 is determined
by the RTE_LIBRTE_HNS3_MAX_TQP_NUM_PER_PF and the value the firmware
report.

Fixes: 21938cf4e43e ("doc: add build config option in hns3 guide")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Jie Hai <haijie1@huawei.com>
---
 doc/guides/nics/hns3.rst | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/doc/guides/nics/hns3.rst b/doc/guides/nics/hns3.rst
index 6fbd4320ef..64fcc1d30b 100644
--- a/doc/guides/nics/hns3.rst
+++ b/doc/guides/nics/hns3.rst
@@ -58,7 +58,8 @@ The following options can be modified in the ``config/rte_config.h`` file.
 
 - ``RTE_LIBRTE_HNS3_MAX_TQP_NUM_PER_PF`` (default ``256``)
 
-  Number of MAX queues reserved for PF.
+  Number of MAX queues reserved for PF on HIP09 and HIP10.
+  The MAX queue number is also determined by the value the firmware report.
 
 Runtime Config Options
 ~~~~~~~~~~~~~~~~~~~~~~
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.284114800 +0800
+++ 0098-doc-fix-hns3-build-option-about-max-queue-number.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From f64a879dbb1f8b508d9cf25dd4a252597f72864c Mon Sep 17 00:00:00 2001
+From 6a44194cc1e0c0979a6a936ccc6fdc7e75c7e10e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit f64a879dbb1f8b508d9cf25dd4a252597f72864c ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index ee774639d3..f1d4084bfa 100644
+index 6fbd4320ef..64fcc1d30b 100644
@@ -24 +26 @@
-@@ -69,7 +69,8 @@ The following options can be modified in the ``config/rte_config.h`` file.
+@@ -58,7 +58,8 @@ The following options can be modified in the ``config/rte_config.h`` file.
@@ -32,2 +34,2 @@
- Runtime Configuration
- ~~~~~~~~~~~~~~~~~~~~~
+ Runtime Config Options
+ ~~~~~~~~~~~~~~~~~~~~~~

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'doc: update features in hns3 guide' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (97 preceding siblings ...)
  2023-12-11 10:12   ` patch 'doc: fix hns3 build option about max queue number' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'doc: fix RSS flow description " Xueming Li
                     ` (21 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Huisong Li; +Cc: Jie Hai, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=fb6560fcfc78aff351677744aeaf6ea76f1daaee

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From fb6560fcfc78aff351677744aeaf6ea76f1daaee Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Mon, 20 Nov 2023 19:14:03 +0800
Subject: [PATCH] doc: update features in hns3 guide
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 97d443f751441c71f8307aea9d9ac2752fa1045c ]

Update the features for hns3.

- "Basic stats" and "Extended stats" supported by
Fixes: 8839c5e202f3 ("net/hns3: support device stats")

- "Traffic Management API" supported by
Fixes: c09c7847d892 ("net/hns3: support traffic management")

- "Speed capabilities" supported by
Fixes: 09e0de1f411b ("net/hns3: report speed capability for PF")

- "Link Auto-negotiation" supported by
Fixes: bdaf190f8235 ("net/hns3: support link speed autoneg for PF")

- "Link flow control" supported by
Fixes: 62e3ccc2b94c ("net/hns3: support flow control")

- "Dump private info from device" supported by
Fixes: 1a03c659cb9d ("net/hns3: dump device basic info")

- "FW version" supported by
Fixes: 1f5ca0b460cd ("net/hns3: support some device operations")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Jie Hai <haijie1@huawei.com>
---
 doc/guides/nics/hns3.rst | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/doc/guides/nics/hns3.rst b/doc/guides/nics/hns3.rst
index 64fcc1d30b..d4ca2b718c 100644
--- a/doc/guides/nics/hns3.rst
+++ b/doc/guides/nics/hns3.rst
@@ -30,7 +30,6 @@ Features of the HNS3 PMD are:
 - DCB
 - Scattered and gather for TX and RX
 - Vector Poll mode driver
-- Dump register
 - SR-IOV VF
 - Multi-process
 - MAC/VLAN filter
@@ -38,6 +37,15 @@ Features of the HNS3 PMD are:
 - NUMA support
 - Generic flow API
 - IEEE1588/802.1AS timestamping
+- Basic stats
+- Extended stats
+- Traffic Management API
+- Speed capabilities
+- Link Auto-negotiation
+- Link flow control
+- Dump register
+- Dump private info from device
+- FW version
 
 Prerequisites
 -------------
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.309662100 +0800
+++ 0099-doc-update-features-in-hns3-guide.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From 97d443f751441c71f8307aea9d9ac2752fa1045c Mon Sep 17 00:00:00 2001
+From fb6560fcfc78aff351677744aeaf6ea76f1daaee Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 97d443f751441c71f8307aea9d9ac2752fa1045c ]
@@ -29,2 +31,0 @@
-Cc: stable@dpdk.org
-
@@ -38 +39 @@
-index f1d4084bfa..3703987309 100644
+index 64fcc1d30b..d4ca2b718c 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'doc: fix RSS flow description in hns3 guide' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (98 preceding siblings ...)
  2023-12-11 10:12   ` patch 'doc: update features in hns3 guide' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'doc: update versions recommendations for i40e and ice' " Xueming Li
                     ` (20 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Huisong Li; +Cc: Jie Hai, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=ce75c85b4a25cd2888c441c40fcc0d9cb67a87fd

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From ce75c85b4a25cd2888c441c40fcc0d9cb67a87fd Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Mon, 20 Nov 2023 19:14:04 +0800
Subject: [PATCH] doc: fix RSS flow description in hns3 guide
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9036f9fef8ed7002ba45d78ef1e5c604dfc9948a ]

The hns3 driver supports for creating rule base on input tuple, hash
key, queues and hash algorithm. But hash key, queues and hash algorithm
are the global configuration for hardware which will affect other rules.
The rule just setting input tuple is completely independent.

Fixes: 63a0f65c9572 ("doc: add more description in hns3 guide")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Jie Hai <haijie1@huawei.com>
---
 doc/guides/nics/hns3.rst | 42 ++++++++++++++++++++++++++--------------
 1 file changed, 28 insertions(+), 14 deletions(-)

diff --git a/doc/guides/nics/hns3.rst b/doc/guides/nics/hns3.rst
index d4ca2b718c..380024600b 100644
--- a/doc/guides/nics/hns3.rst
+++ b/doc/guides/nics/hns3.rst
@@ -212,36 +212,50 @@ Generic flow API
 
 - ``RSS Flow``
 
-  RSS Flow supports to set hash input set, hash function, enable hash
-  and configure queues.
-  For example:
-  Configure queues as queue 0, 1, 2, 3.
+  RSS Flow supports for creating rule base on input tuple, hash key, queues
+  and hash algorithm. But hash key, queues and hash algorithm are the global
+  configuration for hardware which will affect other rules.
+  The rule just setting input tuple is completely independent.
+
+  Run ``testpmd``:
 
   .. code-block:: console
 
-    testpmd> flow create 0 ingress pattern end actions rss types end \
-      queues 0 1 2 3 end / end
+    dpdk-testpmd -a 0000:7d:00.0 -l 10-18 -- -i --rxq=8 --txq=8
+
+  All IP packets can be distributed to 8 queues.
 
-  Enable hash and set input set for IPv4-TCP.
+  Set IPv4-TCP packet is distributed to 8 queues based on L3/L4 SRC only.
 
   .. code-block:: console
 
-    testpmd> flow create 0 ingress pattern eth / ipv4 / tcp / end \
-      actions rss types ipv4-tcp l3-src-only end queues end / end
+    testpmd> flow create 0 ingress pattern eth / ipv4 / tcp / end actions \
+             rss types ipv4-tcp l4-src-only l3-src-only end queues end / end
 
-  Set symmetric hash enable for flow type IPv4-TCP.
+  Disable IPv4 packet RSS hash.
 
   .. code-block:: console
 
-    testpmd> flow create 0 ingress pattern eth / ipv4 / tcp / end \
-      actions rss types ipv4-tcp end queues end func symmetric_toeplitz / end
+    testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss \
+             types none end queues end / end
 
-  Set hash function as simple xor.
+  Set hash function as symmetric Toeplitz.
 
   .. code-block:: console
 
     testpmd> flow create 0 ingress pattern end actions rss types end \
-      queues end func simple_xor / end
+             queues end func symmetric_toeplitz / end
+
+  In this case, all packets that enabled RSS are hashed using symmetric
+  Toeplitz algorithm.
+
+  Flush all RSS rules
+
+  .. code-block:: console
+
+    testpmd> flow flush 0
+
+  The RSS configurations of hardwre is back to the one ethdev ops set.
 
 Statistics
 ----------
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.337371900 +0800
+++ 0100-doc-fix-RSS-flow-description-in-hns3-guide.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From 9036f9fef8ed7002ba45d78ef1e5c604dfc9948a Mon Sep 17 00:00:00 2001
+From ce75c85b4a25cd2888c441c40fcc0d9cb67a87fd Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9036f9fef8ed7002ba45d78ef1e5c604dfc9948a ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -21 +23 @@
-index 3703987309..3b0613fc1b 100644
+index d4ca2b718c..380024600b 100644
@@ -24 +26 @@
-@@ -239,36 +239,50 @@ Generic flow API
+@@ -212,36 +212,50 @@ Generic flow API

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'doc: update versions recommendations for i40e and ice' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (99 preceding siblings ...)
  2023-12-11 10:12   ` patch 'doc: fix RSS flow description " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'net/mlx5: fix offset size in conntrack flow action' " Xueming Li
                     ` (19 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Kevin Traynor; +Cc: Qi Zhang, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=434c2fc890a90c807909bc7271646fa5e26017be

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 434c2fc890a90c807909bc7271646fa5e26017be Mon Sep 17 00:00:00 2001
From: Kevin Traynor <ktraynor@redhat.com>
Date: Fri, 10 Nov 2023 12:14:07 +0000
Subject: [PATCH] doc: update versions recommendations for i40e and ice
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 300d68eb1cf095199b1d2282faceffc5adf59e3d ]

Update documentation to stop recommending that
out-of-tree Linux Kernel drivers are used for
i40e and ice.

Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
 doc/guides/nics/i40e.rst | 17 ++++++++++-------
 doc/guides/nics/ice.rst  | 11 +++++++----
 2 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst
index a6c7dbd080..b37859a721 100644
--- a/doc/guides/nics/i40e.rst
+++ b/doc/guides/nics/i40e.rst
@@ -88,13 +88,16 @@ Windows Prerequisites
 - To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository
   <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_.
 
-Recommended Matching List
--------------------------
-
-It is highly recommended to upgrade the i40e kernel driver and firmware to
-avoid the compatibility issues with i40e PMD. Here is the suggested matching
-list which has been tested and verified. The detailed information can refer
-to chapter Tested Platforms/Tested NICs in release notes.
+Kernel driver and Firmware Matching List
+----------------------------------------
+
+It is highly recommended to upgrade the i40e kernel driver and firmware
+to avoid the compatibility issues with i40e PMD.
+The table below shows a summary of the DPDK versions
+with corresponding out-of-tree Linux kernel drivers and firmware.
+The full list of in-tree and out-of-tree Linux kernel drivers from kernel.org
+and Linux distributions that were tested and verified
+are listed in the Tested Platforms section of the Release Notes for each release.
 
 For X710/XL710/XXV710,
 
diff --git a/doc/guides/nics/ice.rst b/doc/guides/nics/ice.rst
index b3dc72d421..ccf9d68203 100644
--- a/doc/guides/nics/ice.rst
+++ b/doc/guides/nics/ice.rst
@@ -41,13 +41,16 @@ Windows Prerequisites
 - Loading of private Dynamic Device Personalization (DDP) package is not supported on Windows.
 
 
-Recommended Matching List
--------------------------
+Kernel driver, DDP and Firmware Matching List
+---------------------------------------------
 
 It is highly recommended to upgrade the ice kernel driver, firmware and DDP package
 to avoid the compatibility issues with ice PMD.
-Here is the suggested matching list which has been tested and verified.
-The detailed information can refer to chapter Tested Platforms/Tested NICs in release notes.
+The table below shows a summary of the DPDK versions
+with corresponding out-of-tree Linux kernel drivers, DDP package and firmware.
+The full list of in-tree and out-of-tree Linux kernel drivers from kernel.org
+and Linux distributions that were tested and verified
+are listed in the Tested Platforms section of the Release Notes for each release.
 
    +-----------+---------------+-----------------+-----------+--------------+-----------+
    |    DPDK   | Kernel Driver | OS Default DDP  | COMMS DDP | Wireless DDP | Firmware  |
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.365817200 +0800
+++ 0101-doc-update-versions-recommendations-for-i40e-and-ice.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From 300d68eb1cf095199b1d2282faceffc5adf59e3d Mon Sep 17 00:00:00 2001
+From 434c2fc890a90c807909bc7271646fa5e26017be Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 300d68eb1cf095199b1d2282faceffc5adf59e3d ]
@@ -10,2 +12,0 @@
-Cc: stable@dpdk.org
-
@@ -20 +21 @@
-index 791e9553bc..6cd1165521 100644
+index a6c7dbd080..b37859a721 100644
@@ -48 +49 @@
-index 6e71aac3c2..820a385b06 100644
+index b3dc72d421..ccf9d68203 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/mlx5: fix offset size in conntrack flow action' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (100 preceding siblings ...)
  2023-12-11 10:12   ` patch 'doc: update versions recommendations for i40e and ice' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'examples/ipsec-secgw: fix partial overflow' " Xueming Li
                     ` (18 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Dariusz Sosnowski; +Cc: Ori Kam, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=b5913482ec13aaeb385a5d7ac7e7f4b89077b4a1

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From b5913482ec13aaeb385a5d7ac7e7f4b89077b4a1 Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Mon, 20 Nov 2023 10:24:57 +0200
Subject: [PATCH] net/mlx5: fix offset size in conntrack flow action
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 04aa27164533702ca5b9b00bd78aff39c816e7af ]

In mlx5 PMD, struct mlx5_aso_ct_action represents a single ASO CT object
inside a ASO CT bulk, which is used to implement conntrack flow action.
offset field, which is 16 bits wide, in this struct represents
an offset of the given object inside a bulk.

When SW Steering flow engine is used, ASO CT bulks are allocated on
demand, each having 64 objects. In this case offset field can fit any
valid object offset.

When HW Steering flow engine is used, a single ASO CT bulk is allocated
during flow engine configuration. Since HW supports bulks bigger
than 2^16 this offset field is too small to fit all valid values.
This causes some ASO CT objects to be incorrectly reused on multiple
connections, when more than 2^16 conntrack flow actions are used.

This patch fixes this behavior. offset field size is increased
to 32 bits.

Fixes: 463170a7c934 ("net/mlx5: support connection tracking with HWS")

Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 drivers/net/mlx5/mlx5.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index deb9959f67..ba7c4441e5 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -1245,7 +1245,7 @@ struct mlx5_aso_ct_action {
 	/* General action object for reply dir. */
 	void *dr_action_rply;
 	uint32_t refcnt; /* Action used count in device flows. */
-	uint16_t offset; /* Offset of ASO CT in DevX objects bulk. */
+	uint32_t offset; /* Offset of ASO CT in DevX objects bulk. */
 	uint16_t peer; /* The only peer port index could also use this CT. */
 	enum mlx5_aso_ct_state state; /* ASO CT state. */
 	bool is_original; /* The direction of the DR action to be used. */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.396849300 +0800
+++ 0102-net-mlx5-fix-offset-size-in-conntrack-flow-action.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From 04aa27164533702ca5b9b00bd78aff39c816e7af Mon Sep 17 00:00:00 2001
+From b5913482ec13aaeb385a5d7ac7e7f4b89077b4a1 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 04aa27164533702ca5b9b00bd78aff39c816e7af ]
@@ -25 +27,0 @@
-Cc: stable@dpdk.org
@@ -34 +36 @@
-index 76bf7d0f4f..263ebead7f 100644
+index deb9959f67..ba7c4441e5 100644
@@ -37 +39 @@
-@@ -1286,7 +1286,7 @@ struct mlx5_aso_ct_action {
+@@ -1245,7 +1245,7 @@ struct mlx5_aso_ct_action {

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'examples/ipsec-secgw: fix partial overflow' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (101 preceding siblings ...)
  2023-12-11 10:12   ` patch 'net/mlx5: fix offset size in conntrack flow action' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'config: fix RISC-V native build' " Xueming Li
                     ` (17 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Brian Dooley; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=2a720ab686c4645c3dc7c8c0b5c60adadbc29094

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 2a720ab686c4645c3dc7c8c0b5c60adadbc29094 Mon Sep 17 00:00:00 2001
From: Brian Dooley <brian.dooley@intel.com>
Date: Wed, 15 Nov 2023 12:31:01 +0000
Subject: [PATCH] examples/ipsec-secgw: fix partial overflow
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit ae9267a67e9030c1b069b0df69924aaca17683bb ]

Case of partial overflow detected with ASan.
Added extra padding to cdev_key structure.

This structure is used for the key in hash table.
Padding is added to force the struct to use 8 bytes,
to ensure memory is notread past this structs boundary
(the hash key calculation reads 8 bytes if this struct is size 5 bytes).
The padding should be zeroed.
If fields are modified in this struct, the padding must be updated to
ensure multiple of 8 bytes size overall.

Fixes: d299106e8e31 ("examples/ipsec-secgw: add IPsec sample application")

Signed-off-by: Brian Dooley <brian.dooley@intel.com>
---
 examples/ipsec-secgw/ipsec.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/examples/ipsec-secgw/ipsec.h b/examples/ipsec-secgw/ipsec.h
index 6bef2a7285..2890e6e267 100644
--- a/examples/ipsec-secgw/ipsec.h
+++ b/examples/ipsec-secgw/ipsec.h
@@ -249,11 +249,18 @@ struct offloads {
 
 extern struct offloads tx_offloads;
 
+/*
+ * This structure is used for the key in hash table.
+ * Padding is to force the struct to use 8 bytes,
+ * to ensure memory is not read past this structs boundary
+ * (hash key calculation reads 8 bytes if this struct is size 5 bytes).
+ */
 struct cdev_key {
 	uint16_t lcore_id;
 	uint8_t cipher_algo;
 	uint8_t auth_algo;
 	uint8_t aead_algo;
+	uint8_t padding[3]; /* padding to 8-byte size should be zeroed */
 };
 
 struct socket_ctx {
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.426334000 +0800
+++ 0103-examples-ipsec-secgw-fix-partial-overflow.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From ae9267a67e9030c1b069b0df69924aaca17683bb Mon Sep 17 00:00:00 2001
+From 2a720ab686c4645c3dc7c8c0b5c60adadbc29094 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit ae9267a67e9030c1b069b0df69924aaca17683bb ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index 5059418456..bdcada1c40 100644
+index 6bef2a7285..2890e6e267 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'config: fix RISC-V native build' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (102 preceding siblings ...)
  2023-12-11 10:12   ` patch 'examples/ipsec-secgw: fix partial overflow' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'eal/windows: fix build with recent MinGW' " Xueming Li
                     ` (16 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Christian Ehrhardt; +Cc: Sivaprasad Tummala, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=82dd3dde96981b7d2445aa8e64602b67a4b44de0

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 82dd3dde96981b7d2445aa8e64602b67a4b44de0 Mon Sep 17 00:00:00 2001
From: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Date: Tue, 21 Nov 2023 17:49:03 +0100
Subject: [PATCH] config: fix RISC-V native build
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3f457edd80900d2771c673843c17088a8c7fcf49 ]

If building riscv natively with -Dplatform=generic, config/meson.build
will select cpu_instruction_set=riscv.

That was fine because config/riscv/meson.build did override it to valid
values later, but since commit b7676fcccab4 ("config: verify machine arch
flag"), it will break the build as it tries to test -march=riscv which
is not a valid value.

The generic setting used in most cases is rv64gc, set this here
as well.

Fixes: b7676fcccab4 ("config: verify machine arch flag")
Fixes: f22e705ebf12 ("eal/riscv: support RISC-V architecture")

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
---
 config/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/config/meson.build b/config/meson.build
index 6c59b28468..5f6320ab19 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -122,7 +122,7 @@ if cpu_instruction_set == 'generic'
     elif host_machine.cpu_family().startswith('ppc')
         cpu_instruction_set = 'power8'
     elif host_machine.cpu_family().startswith('riscv')
-        cpu_instruction_set = 'riscv'
+        cpu_instruction_set = 'rv64gc'
     endif
 endif
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.454134000 +0800
+++ 0104-config-fix-RISC-V-native-build.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From 3f457edd80900d2771c673843c17088a8c7fcf49 Mon Sep 17 00:00:00 2001
+From 82dd3dde96981b7d2445aa8e64602b67a4b44de0 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3f457edd80900d2771c673843c17088a8c7fcf49 ]
@@ -27 +30 @@
-index d732154731..a9ccd56deb 100644
+index 6c59b28468..5f6320ab19 100644
@@ -30 +33 @@
-@@ -152,7 +152,7 @@ if cpu_instruction_set == 'generic'
+@@ -122,7 +122,7 @@ if cpu_instruction_set == 'generic'

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'eal/windows: fix build with recent MinGW' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (103 preceding siblings ...)
  2023-12-11 10:12   ` patch 'config: fix RISC-V native build' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'pdump: fix error number on IPC response' " Xueming Li
                     ` (15 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Gregory Etelson
  Cc: Tyler Retzlaff, Dmitry Kozlyuk, Thomas Monjalon, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=364faab59ac86473cbbc5d8ec1a242ea6cf6664b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 364faab59ac86473cbbc5d8ec1a242ea6cf6664b Mon Sep 17 00:00:00 2001
From: Gregory Etelson <getelson@nvidia.com>
Date: Tue, 14 Nov 2023 19:05:29 +0200
Subject: [PATCH] eal/windows: fix build with recent MinGW
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c6221c664e52a94baf259a29ea73645496502af1 ]

Windows compilation with cross-mingw on Fedora 39 failed
because MEM_REPLACE_PLACEHOLDER and MEM_RESERVE_PLACEHOLDER were
already defined in the compiler environment:

eal_memory.c:77: error: "MEM_REPLACE_PLACEHOLDER" redefined
/usr/x86_64-w64-mingw32/sys-root/mingw/include/winnt.h:5710: note:
this is the location of the previous definition

eal_memory.c:78: error: "MEM_RESERVE_PLACEHOLDER" redefined
/usr/x86_64-w64-mingw32/sys-root/mingw/include/winnt.h:5715: note:
this is the location of the previous definition

The patch masks MEM_REPLACE_PLACEHOLDER and MEM_RESERVE_PLACEHOLDER
macros if they were pre-defined by compiler.

The patch also masks MEM_COALESCE_PLACEHOLDERS and
MEM_PRESERVE_PLACEHOLDER to prevent similar errors.

Fixes: 2a5d547a4a9b ("eal/windows: implement basic memory management")

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
---
 lib/eal/windows/eal_memory.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/lib/eal/windows/eal_memory.c b/lib/eal/windows/eal_memory.c
index 215d768e2c..31410a41fd 100644
--- a/lib/eal/windows/eal_memory.c
+++ b/lib/eal/windows/eal_memory.c
@@ -72,10 +72,18 @@ static VirtualAlloc2_type VirtualAlloc2_ptr;
 
 #ifdef RTE_TOOLCHAIN_GCC
 
+#ifndef MEM_COALESCE_PLACEHOLDERS
 #define MEM_COALESCE_PLACEHOLDERS 0x00000001
+#endif
+#ifndef MEM_PRESERVE_PLACEHOLDER
 #define MEM_PRESERVE_PLACEHOLDER  0x00000002
+#endif
+#ifndef MEM_REPLACE_PLACEHOLDER
 #define MEM_REPLACE_PLACEHOLDER   0x00004000
+#endif
+#ifndef MEM_RESERVE_PLACEHOLDER
 #define MEM_RESERVE_PLACEHOLDER   0x00040000
+#endif
 
 int
 eal_mem_win32api_init(void)
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.485848200 +0800
+++ 0105-eal-windows-fix-build-with-recent-MinGW.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From c6221c664e52a94baf259a29ea73645496502af1 Mon Sep 17 00:00:00 2001
+From 364faab59ac86473cbbc5d8ec1a242ea6cf6664b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c6221c664e52a94baf259a29ea73645496502af1 ]
@@ -25 +27,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'pdump: fix error number on IPC response' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (104 preceding siblings ...)
  2023-12-11 10:12   ` patch 'eal/windows: fix build with recent MinGW' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'app/dumpcap: allow multiple invocations' " Xueming Li
                     ` (14 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Morten Brørup, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=578b87a95557d1d351fdf0b121710d6215b89edc

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 578b87a95557d1d351fdf0b121710d6215b89edc Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 17 Nov 2023 08:35:55 -0800
Subject: [PATCH] pdump: fix error number on IPC response
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 5ec9575d8c0abfcefbc353d540f228d6d7036fe6 ]

The response from MP server sets err_value to negative
on error. The convention for rte_errno is to use a positive
value on error. This makes errors like duplicate registration
show up with the correct error value.

Fixes: 660098d61f57 ("pdump: use generic multi-process channel")

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
---
 lib/pdump/rte_pdump.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/pdump/rte_pdump.c b/lib/pdump/rte_pdump.c
index 4b7a4b3483..63835a1a67 100644
--- a/lib/pdump/rte_pdump.c
+++ b/lib/pdump/rte_pdump.c
@@ -564,9 +564,10 @@ pdump_prepare_client_request(const char *device, uint16_t queue,
 	if (rte_mp_request_sync(&mp_req, &mp_reply, &ts) == 0) {
 		mp_rep = &mp_reply.msgs[0];
 		resp = (struct pdump_response *)mp_rep->param;
-		rte_errno = resp->err_value;
-		if (!resp->err_value)
+		if (resp->err_value == 0)
 			ret = 0;
+		else
+			rte_errno = -resp->err_value;
 		free(mp_reply.msgs);
 	}
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.525606600 +0800
+++ 0106-pdump-fix-error-number-on-IPC-response.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From 5ec9575d8c0abfcefbc353d540f228d6d7036fe6 Mon Sep 17 00:00:00 2001
+From 578b87a95557d1d351fdf0b121710d6215b89edc Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5ec9575d8c0abfcefbc353d540f228d6d7036fe6 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -24 +26 @@
-index 80b90c6f7d..e94f49e212 100644
+index 4b7a4b3483..63835a1a67 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/dumpcap: allow multiple invocations' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (105 preceding siblings ...)
  2023-12-11 10:12   ` patch 'pdump: fix error number on IPC response' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'examples/ethtool: fix pause configuration' " Xueming Li
                     ` (13 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: Isaac Boukris, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=3ca387345f4a14e7cc51f3a3458581760a87361e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 3ca387345f4a14e7cc51f3a3458581760a87361e Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 17 Nov 2023 08:35:56 -0800
Subject: [PATCH] app/dumpcap: allow multiple invocations
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e0235c0e4d40a6d93dfef8b1316e03c32f2f8b43 ]

If dumpcap is run twice with each instance pointing a different
interface, it would fail because of overlap in ring a pool names.
Fix by putting process id in the name.

It is still not allowed to do multiple invocations on the same
interface because only one callback is allowed and only one copy
of mbuf is done. Dumpcap will fail with error in this case:

   pdump_prepare_client_request(): client request for pdump enable/disable failed
   EAL: Error - exiting with code: 1
     Cause: Packet dump enable on 0:net_null0 failed File exists

Fixes: cbb44143be74 ("app/dumpcap: add new packet capture application")

Reported-by: Isaac Boukris <iboukris@gmail.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 app/dumpcap/main.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/app/dumpcap/main.c b/app/dumpcap/main.c
index fbe47c476a..0c8e647598 100644
--- a/app/dumpcap/main.c
+++ b/app/dumpcap/main.c
@@ -44,7 +44,6 @@
 #include <pcap/pcap.h>
 #include <pcap/bpf.h>
 
-#define RING_NAME "capture-ring"
 #define MONITOR_INTERVAL  (500 * 1000)
 #define MBUF_POOL_CACHE_SIZE 32
 #define BURST_SIZE 32
@@ -555,6 +554,7 @@ static void dpdk_init(void)
 static struct rte_ring *create_ring(void)
 {
 	struct rte_ring *ring;
+	char ring_name[RTE_RING_NAMESIZE];
 	size_t size, log2;
 
 	/* Find next power of 2 >= size. */
@@ -568,26 +568,26 @@ static struct rte_ring *create_ring(void)
 		ring_size = size;
 	}
 
-	ring = rte_ring_lookup(RING_NAME);
-	if (ring == NULL) {
-		ring = rte_ring_create(RING_NAME, ring_size,
-					rte_socket_id(), 0);
-		if (ring == NULL)
-			rte_exit(EXIT_FAILURE, "Could not create ring :%s\n",
-				 rte_strerror(rte_errno));
-	}
+	/* Want one ring per invocation of program */
+	snprintf(ring_name, sizeof(ring_name),
+		 "dumpcap-%d", getpid());
+
+	ring = rte_ring_create(ring_name, ring_size,
+			       rte_socket_id(), 0);
+	if (ring == NULL)
+		rte_exit(EXIT_FAILURE, "Could not create ring :%s\n",
+			 rte_strerror(rte_errno));
+
 	return ring;
 }
 
 static struct rte_mempool *create_mempool(void)
 {
-	static const char pool_name[] = "capture_mbufs";
+	char pool_name[RTE_MEMPOOL_NAMESIZE];
 	size_t num_mbufs = 2 * ring_size;
 	struct rte_mempool *mp;
 
-	mp = rte_mempool_lookup(pool_name);
-	if (mp)
-		return mp;
+	snprintf(pool_name, sizeof(pool_name), "capture_%d", getpid());
 
 	mp = rte_pktmbuf_pool_create_by_ops(pool_name, num_mbufs,
 					    MBUF_POOL_CACHE_SIZE, 0,
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.557008900 +0800
+++ 0107-app-dumpcap-allow-multiple-invocations.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From e0235c0e4d40a6d93dfef8b1316e03c32f2f8b43 Mon Sep 17 00:00:00 2001
+From 3ca387345f4a14e7cc51f3a3458581760a87361e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e0235c0e4d40a6d93dfef8b1316e03c32f2f8b43 ]
@@ -19 +21,0 @@
-Cc: stable@dpdk.org
@@ -24,2 +26,2 @@
- app/dumpcap/main.c | 28 ++++++++++++++--------------
- 1 file changed, 14 insertions(+), 14 deletions(-)
+ app/dumpcap/main.c | 26 +++++++++++++-------------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
@@ -28 +30 @@
-index 4f581bd341..d05dddac00 100644
+index fbe47c476a..0c8e647598 100644
@@ -39 +41 @@
-@@ -647,6 +646,7 @@ static void dpdk_init(void)
+@@ -555,6 +554,7 @@ static void dpdk_init(void)
@@ -47 +49 @@
-@@ -660,28 +660,28 @@ static struct rte_ring *create_ring(void)
+@@ -568,26 +568,26 @@ static struct rte_ring *create_ring(void)
@@ -74 +75,0 @@
- 	const struct interface *intf;
@@ -79 +79,0 @@
- 	uint32_t data_size = 128;
@@ -86,11 +86,2 @@
- 	/* Common pool so size mbuf for biggest snap length */
- 	TAILQ_FOREACH(intf, &interfaces, next) {
-@@ -826,7 +826,7 @@ static void enable_pdump(struct rte_ring *r, struct rte_mempool *mp)
- 			rte_exit(EXIT_FAILURE,
- 				"Packet dump enable on %u:%s failed %s\n",
- 				intf->port, intf->name,
--				rte_strerror(-ret));
-+				rte_strerror(rte_errno));
- 		}
- 
- 		if (intf->opts.promisc_mode) {
+ 	mp = rte_pktmbuf_pool_create_by_ops(pool_name, num_mbufs,
+ 					    MBUF_POOL_CACHE_SIZE, 0,

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'examples/ethtool: fix pause configuration' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (106 preceding siblings ...)
  2023-12-11 10:12   ` patch 'app/dumpcap: allow multiple invocations' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'usertools/pmdinfo: fix usage typos' " Xueming Li
                     ` (12 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Huisong Li; +Cc: Min Hu, Stephen Hemminger, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=0a742f1ec02406e36b4ef90f504450d9b59792a9

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 0a742f1ec02406e36b4ef90f504450d9b59792a9 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Fri, 10 Nov 2023 11:30:39 +0800
Subject: [PATCH] examples/ethtool: fix pause configuration
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 29cb7cf999bd5b3cb44ec6937529b2b197e7e25f ]

Currently, the pause command in ethtool to enable Rx/Tx pause has the
following problem. Namely, Assume that the device supports flow control
auto-negotiation to set pause parameters, which will the device that does
not support flow control auto-negotiation fails to run this command.

This patch supports the configuration of flow control auto-negotiation
and fixes the print format and style of the pause cmd to make it more
readable.

Fixes: bda68ab9d1e7 ("examples/ethtool: add user-space ethtool sample application")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
---
 examples/ethtool/ethtool-app/ethapp.c | 59 ++++++++++++++++-----------
 1 file changed, 36 insertions(+), 23 deletions(-)

diff --git a/examples/ethtool/ethtool-app/ethapp.c b/examples/ethtool/ethtool-app/ethapp.c
index 4ea504ed6a..489cd4f515 100644
--- a/examples/ethtool/ethtool-app/ethapp.c
+++ b/examples/ethtool/ethtool-app/ethapp.c
@@ -51,6 +51,13 @@ struct pcmd_intintint_params {
 	uint16_t rx;
 };
 
+struct pcmd_pause_params {
+	cmdline_fixed_string_t cmd;
+	uint16_t port;
+	cmdline_fixed_string_t mode;
+	cmdline_fixed_string_t autoneg;
+	cmdline_fixed_string_t an_status;
+};
 
 /* Parameter-less commands */
 cmdline_parse_token_string_t pcmd_quit_token_cmd =
@@ -118,12 +125,18 @@ cmdline_parse_token_num_t pcmd_intintint_token_rx =
 
 /* Pause commands */
 cmdline_parse_token_string_t pcmd_pause_token_cmd =
-	TOKEN_STRING_INITIALIZER(struct pcmd_intstr_params, cmd, "pause");
+	TOKEN_STRING_INITIALIZER(struct pcmd_pause_params, cmd, "pause");
 cmdline_parse_token_num_t pcmd_pause_token_port =
-	TOKEN_NUM_INITIALIZER(struct pcmd_intstr_params, port, RTE_UINT16);
-cmdline_parse_token_string_t pcmd_pause_token_opt =
-	TOKEN_STRING_INITIALIZER(struct pcmd_intstr_params,
-		opt, "all#tx#rx#none");
+	TOKEN_NUM_INITIALIZER(struct pcmd_pause_params, port, RTE_UINT16);
+cmdline_parse_token_string_t pcmd_pause_token_mode =
+	TOKEN_STRING_INITIALIZER(struct pcmd_pause_params,
+		mode, "full#tx#rx#none");
+cmdline_parse_token_string_t pcmd_pause_token_autoneg =
+	TOKEN_STRING_INITIALIZER(struct pcmd_pause_params,
+		autoneg, "autoneg");
+cmdline_parse_token_string_t pcmd_pause_token_an_status =
+	TOKEN_STRING_INITIALIZER(struct pcmd_pause_params,
+		an_status, "on#off");
 
 /* VLAN commands */
 cmdline_parse_token_string_t pcmd_vlan_token_cmd =
@@ -350,13 +363,12 @@ pcmd_module_eeprom_callback(void *ptr_params,
 	fclose(fp_eeprom);
 }
 
-
 static void
 pcmd_pause_callback(void *ptr_params,
 	__rte_unused struct cmdline *ctx,
 	void *ptr_data)
 {
-	struct pcmd_intstr_params *params = ptr_params;
+	struct pcmd_pause_params *params = ptr_params;
 	struct ethtool_pauseparam info;
 	int stat;
 
@@ -368,39 +380,38 @@ pcmd_pause_callback(void *ptr_params,
 		stat = rte_ethtool_get_pauseparam(params->port, &info);
 	} else {
 		memset(&info, 0, sizeof(info));
-		if (strcasecmp("all", params->opt) == 0) {
+		if (strcasecmp("full", params->mode) == 0) {
 			info.tx_pause = 1;
 			info.rx_pause = 1;
-		} else if (strcasecmp("tx", params->opt) == 0) {
+		} else if (strcasecmp("tx", params->mode) == 0) {
 			info.tx_pause = 1;
 			info.rx_pause = 0;
-		} else if (strcasecmp("rx", params->opt) == 0) {
+		} else if (strcasecmp("rx", params->mode) == 0) {
 			info.tx_pause = 0;
 			info.rx_pause = 1;
 		} else {
 			info.tx_pause = 0;
 			info.rx_pause = 0;
 		}
-		/* Assume auto-negotiation wanted */
-		info.autoneg = 1;
+
+		if (strcasecmp("on", params->an_status) == 0)
+			info.autoneg = 1;
+		else
+			info.autoneg = 0;
+
 		stat = rte_ethtool_set_pauseparam(params->port, &info);
 	}
 	if (stat == 0) {
-		if (info.rx_pause && info.tx_pause)
-			printf("Port %i: Tx & Rx Paused\n", params->port);
-		else if (info.rx_pause)
-			printf("Port %i: Rx Paused\n", params->port);
-		else if (info.tx_pause)
-			printf("Port %i: Tx Paused\n", params->port);
-		else
-			printf("Port %i: Tx & Rx not paused\n", params->port);
+		printf("Pause parameters for Port %i:\n", params->port);
+		printf("Rx pause: %s\n", info.rx_pause ? "on" : "off");
+		printf("Tx pause: %s\n", info.tx_pause ? "on" : "off");
+		printf("Autoneg: %s\n", info.autoneg ? "on" : "off");
 	} else if (stat == -ENOTSUP)
 		printf("Port %i: Operation not supported\n", params->port);
 	else
 		printf("Port %i: Error %i\n", params->port, stat);
 }
 
-
 static void
 pcmd_open_callback(__rte_unused void *ptr_params,
 	__rte_unused struct cmdline *ctx,
@@ -737,11 +748,13 @@ cmdline_parse_inst_t pcmd_pause = {
 	.f = pcmd_pause_callback,
 	.data = NULL,
 	.help_str =
-		"pause <port_id> <all|tx|rx|none>\n     Pause/unpause port",
+		"pause <port_id> <full|tx|rx|none> autoneg <on|off>\n     Pause/unpause port",
 	.tokens = {
 		(void *)&pcmd_pause_token_cmd,
 		(void *)&pcmd_pause_token_port,
-		(void *)&pcmd_pause_token_opt,
+		(void *)&pcmd_pause_token_mode,
+		(void *)&pcmd_pause_token_autoneg,
+		(void *)&pcmd_pause_token_an_status,
 		NULL
 	},
 };
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.586290100 +0800
+++ 0108-examples-ethtool-fix-pause-configuration.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From 29cb7cf999bd5b3cb44ec6937529b2b197e7e25f Mon Sep 17 00:00:00 2001
+From 0a742f1ec02406e36b4ef90f504450d9b59792a9 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 29cb7cf999bd5b3cb44ec6937529b2b197e7e25f ]
@@ -16 +18,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'usertools/pmdinfo: fix usage typos' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (107 preceding siblings ...)
  2023-12-11 10:12   ` patch 'examples/ethtool: fix pause configuration' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'test/hash: fix creation error log' " Xueming Li
                     ` (11 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Robin Jarry; +Cc: David Marchand, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=122f600818bb16afa6ebf609bd5c145fc9e2a438

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 122f600818bb16afa6ebf609bd5c145fc9e2a438 Mon Sep 17 00:00:00 2001
From: Robin Jarry <rjarry@redhat.com>
Date: Tue, 19 Sep 2023 12:20:13 +0200
Subject: [PATCH] usertools/pmdinfo: fix usage typos
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit e0a87c5f9d9b4b98ed016722954b8870ce93f985 ]

The docs and script usages are not consistent.

There is no .devices, .vendor_id nor .device_id fields. Fix usage to the
correct field names.

Some drivers do not expose any pci_ids, show how to use the []? jq
operator to avoid spurious errors.

Fixes: 0ce3cf4afd04 ("usertools/pmdinfo: rewrite simpler script")

Signed-off-by: Robin Jarry <rjarry@redhat.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 doc/guides/tools/pmdinfo.rst | 2 +-
 usertools/dpdk-pmdinfo.py    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/guides/tools/pmdinfo.rst b/doc/guides/tools/pmdinfo.rst
index a9217de4ee..fdb9030171 100644
--- a/doc/guides/tools/pmdinfo.rst
+++ b/doc/guides/tools/pmdinfo.rst
@@ -82,5 +82,5 @@ Get only the required kernel modules for a given device:
 .. code-block:: console
 
    $ dpdk-pmdinfo.py /usr/bin/dpdk-testpmd | \
-       jq '.[] | select(.pci_ids[] | .vendor == "15b3" and .device == "1013").kmod'
+       jq '.[] | select(.pci_ids[]? | .vendor == "15b3" and .device == "1013").kmod'
    "* ib_uverbs & mlx5_core & mlx5_ib"
diff --git a/usertools/dpdk-pmdinfo.py b/usertools/dpdk-pmdinfo.py
index 67d023a047..2c728de7b8 100755
--- a/usertools/dpdk-pmdinfo.py
+++ b/usertools/dpdk-pmdinfo.py
@@ -23,7 +23,7 @@ Get only the required kernel modules for a given driver:
 Get only the required kernel modules for a given device:
 
   %(prog)s dpdk-testpmd | \
-  jq '.[] | select(.devices[] | .vendor_id == "15b3" and .device_id == "1013").kmod'
+  jq '.[] | select(.pci_ids[]? | .vendor == "15b3" and .device == "1013").kmod'
 """
 
 import argparse
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.613146800 +0800
+++ 0109-usertools-pmdinfo-fix-usage-typos.patch	2023-12-11 17:56:23.217652300 +0800
@@ -1 +1 @@
-From e0a87c5f9d9b4b98ed016722954b8870ce93f985 Mon Sep 17 00:00:00 2001
+From 122f600818bb16afa6ebf609bd5c145fc9e2a438 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit e0a87c5f9d9b4b98ed016722954b8870ce93f985 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'test/hash: fix creation error log' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (108 preceding siblings ...)
  2023-12-11 10:12   ` patch 'usertools/pmdinfo: fix usage typos' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'app/pipeline: add sigint handler' " Xueming Li
                     ` (10 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Min Zhou; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=22a1b5067cdbc6b8c7acc5050a164af58bbf4f01

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 22a1b5067cdbc6b8c7acc5050a164af58bbf4f01 Mon Sep 17 00:00:00 2001
From: Min Zhou <zhoumin@loongson.cn>
Date: Tue, 12 Sep 2023 19:52:39 +0800
Subject: [PATCH] test/hash: fix creation error log
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 1afb336d8510cb9e28ca5cc25af3bb95698528c8 ]

Caught while running meson test:
hash creation failedTest Failed

Add missing \n.

Fixes: 0eb3726ebcf1 ("test/hash: add test for read/write concurrency")

Signed-off-by: Min Zhou <zhoumin@loongson.cn>
---
 app/test/test_hash_readwrite.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test/test_hash_readwrite.c b/app/test/test_hash_readwrite.c
index 6373e62d33..9cc5f3487c 100644
--- a/app/test/test_hash_readwrite.c
+++ b/app/test/test_hash_readwrite.c
@@ -162,7 +162,7 @@ init_params(int use_ext, int use_htm, int rw_lf, int use_jhash)
 
 	handle = rte_hash_create(&hash_params);
 	if (handle == NULL) {
-		printf("hash creation failed");
+		printf("hash creation failed\n");
 		return -1;
 	}
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.638294900 +0800
+++ 0110-test-hash-fix-creation-error-log.patch	2023-12-11 17:56:23.227652300 +0800
@@ -1 +1 @@
-From 1afb336d8510cb9e28ca5cc25af3bb95698528c8 Mon Sep 17 00:00:00 2001
+From 22a1b5067cdbc6b8c7acc5050a164af58bbf4f01 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 1afb336d8510cb9e28ca5cc25af3bb95698528c8 ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org
@@ -20 +22 @@
-index 74ca13912f..4997a01249 100644
+index 6373e62d33..9cc5f3487c 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'app/pipeline: add sigint handler' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (109 preceding siblings ...)
  2023-12-11 10:12   ` patch 'test/hash: fix creation error log' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'doc: remove restriction on ixgbe vector support' " Xueming Li
                     ` (9 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Feifei Wang; +Cc: Ruifeng Wang, Matthew Dirba, Cristian Dumitrescu, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=de38896353c37da406d35eebc64baea20f1b5c6e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From de38896353c37da406d35eebc64baea20f1b5c6e Mon Sep 17 00:00:00 2001
From: Feifei Wang <feifei.wang2@arm.com>
Date: Tue, 12 Sep 2023 14:39:02 +0800
Subject: [PATCH] app/pipeline: add sigint handler
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit f6897b23f70b84742129a215ea2be17c8843adb8 ]

For test-pipeline, if the main core receive SIGINT signal, it will kill
all the threads immediately and not wait other threads to finish their
jobs.

To fix this, add 'signal_handler' function.

Fixes: 48f31ca50cc4 ("app/pipeline: packet framework benchmark")

Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Matthew Dirba <matthew.dirba@arm.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
 .mailmap                              |   1 +
 app/test-pipeline/main.c              |  14 +++
 app/test-pipeline/main.h              |   2 +
 app/test-pipeline/pipeline_acl.c      |   6 +-
 app/test-pipeline/pipeline_hash.c     | 110 ++++++++++-----------
 app/test-pipeline/pipeline_lpm.c      |   6 +-
 app/test-pipeline/pipeline_lpm_ipv6.c |   6 +-
 app/test-pipeline/pipeline_stub.c     |   6 +-
 app/test-pipeline/runtime.c           | 132 ++++++++++++++------------
 9 files changed, 159 insertions(+), 124 deletions(-)

diff --git a/.mailmap b/.mailmap
index 48267a54f2..9b523c9959 100644
--- a/.mailmap
+++ b/.mailmap
@@ -865,6 +865,7 @@ Mateusz Rusinski <mateusz.rusinski@intel.com>
 Matias Elo <matias.elo@nokia.com>
 Mats Liljegren <mats.liljegren@enea.com>
 Matteo Croce <mcroce@redhat.com>
+Matthew Dirba <matthew.dirba@arm.com>
 Matthew Hall <mhall@mhcomputing.net>
 Matthew Smith <mgsmith@netgate.com>
 Matthew Vick <matthew.vick@intel.com>
diff --git a/app/test-pipeline/main.c b/app/test-pipeline/main.c
index 1e16794183..8633933fd9 100644
--- a/app/test-pipeline/main.c
+++ b/app/test-pipeline/main.c
@@ -10,6 +10,7 @@
 #include <string.h>
 #include <sys/queue.h>
 #include <stdarg.h>
+#include <signal.h>
 #include <errno.h>
 #include <getopt.h>
 #include <unistd.h>
@@ -41,6 +42,15 @@
 
 #include "main.h"
 
+bool force_quit;
+
+static void
+signal_handler(int signum)
+{
+	if (signum == SIGINT || signum == SIGTERM)
+		force_quit = true;
+}
+
 int
 main(int argc, char **argv)
 {
@@ -54,6 +64,10 @@ main(int argc, char **argv)
 	argc -= ret;
 	argv += ret;
 
+	force_quit = false;
+	signal(SIGINT, signal_handler);
+	signal(SIGTERM, signal_handler);
+
 	/* Parse application arguments (after the EAL ones) */
 	ret = app_parse_args(argc, argv);
 	if (ret < 0) {
diff --git a/app/test-pipeline/main.h b/app/test-pipeline/main.h
index 59dcfddbf4..9df157de22 100644
--- a/app/test-pipeline/main.h
+++ b/app/test-pipeline/main.h
@@ -60,6 +60,8 @@ struct app_params {
 
 extern struct app_params app;
 
+extern bool force_quit;
+
 int app_parse_args(int argc, char **argv);
 void app_print_usage(void);
 void app_init(void);
diff --git a/app/test-pipeline/pipeline_acl.c b/app/test-pipeline/pipeline_acl.c
index 5857bc285f..abde4bf934 100644
--- a/app/test-pipeline/pipeline_acl.c
+++ b/app/test-pipeline/pipeline_acl.c
@@ -236,14 +236,16 @@ app_main_loop_worker_pipeline_acl(void) {
 
 	/* Run-time */
 #if APP_FLUSH == 0
-	for ( ; ; )
+	while (!force_quit)
 		rte_pipeline_run(p);
 #else
-	for (i = 0; ; i++) {
+	i = 0;
+	while (!force_quit) {
 		rte_pipeline_run(p);
 
 		if ((i & APP_FLUSH) == 0)
 			rte_pipeline_flush(p);
+		i++;
 	}
 #endif
 }
diff --git a/app/test-pipeline/pipeline_hash.c b/app/test-pipeline/pipeline_hash.c
index 2dd8928d43..cab9c20980 100644
--- a/app/test-pipeline/pipeline_hash.c
+++ b/app/test-pipeline/pipeline_hash.c
@@ -366,14 +366,16 @@ app_main_loop_worker_pipeline_hash(void) {
 
 	/* Run-time */
 #if APP_FLUSH == 0
-	for ( ; ; )
+	while (!force_quit)
 		rte_pipeline_run(p);
 #else
-	for (i = 0; ; i++) {
+	i = 0;
+	while (!force_quit) {
 		rte_pipeline_run(p);
 
 		if ((i & APP_FLUSH) == 0)
 			rte_pipeline_flush(p);
+		i++;
 	}
 #endif
 }
@@ -411,59 +413,61 @@ app_main_loop_rx_metadata(void) {
 	RTE_LOG(INFO, USER1, "Core %u is doing RX (with meta-data)\n",
 		rte_lcore_id());
 
-	for (i = 0; ; i = ((i + 1) & (app.n_ports - 1))) {
-		uint16_t n_mbufs;
-
-		n_mbufs = rte_eth_rx_burst(
-			app.ports[i],
-			0,
-			app.mbuf_rx.array,
-			app.burst_size_rx_read);
-
-		if (n_mbufs == 0)
-			continue;
-
-		for (j = 0; j < n_mbufs; j++) {
-			struct rte_mbuf *m;
-			uint8_t *m_data, *key;
-			struct rte_ipv4_hdr *ip_hdr;
-			struct rte_ipv6_hdr *ipv6_hdr;
-			uint32_t ip_dst;
-			uint8_t *ipv6_dst;
-			uint32_t *signature, *k32;
-
-			m = app.mbuf_rx.array[j];
-			m_data = rte_pktmbuf_mtod(m, uint8_t *);
-			signature = RTE_MBUF_METADATA_UINT32_PTR(m,
-					APP_METADATA_OFFSET(0));
-			key = RTE_MBUF_METADATA_UINT8_PTR(m,
-					APP_METADATA_OFFSET(32));
-
-			if (RTE_ETH_IS_IPV4_HDR(m->packet_type)) {
-				ip_hdr = (struct rte_ipv4_hdr *)
-					&m_data[sizeof(struct rte_ether_hdr)];
-				ip_dst = ip_hdr->dst_addr;
-
-				k32 = (uint32_t *) key;
-				k32[0] = ip_dst & 0xFFFFFF00;
-			} else if (RTE_ETH_IS_IPV6_HDR(m->packet_type)) {
-				ipv6_hdr = (struct rte_ipv6_hdr *)
-					&m_data[sizeof(struct rte_ether_hdr)];
-				ipv6_dst = ipv6_hdr->dst_addr;
-
-				memcpy(key, ipv6_dst, 16);
-			} else
+	while (!force_quit) {
+		for (i = 0; i < app.n_ports; i++) {
+			uint16_t n_mbufs;
+
+			n_mbufs = rte_eth_rx_burst(
+				app.ports[i],
+				0,
+				app.mbuf_rx.array,
+				app.burst_size_rx_read);
+
+			if (n_mbufs == 0)
 				continue;
 
-			*signature = test_hash(key, NULL, 0, 0);
+			for (j = 0; j < n_mbufs; j++) {
+				struct rte_mbuf *m;
+				uint8_t *m_data, *key;
+				struct rte_ipv4_hdr *ip_hdr;
+				struct rte_ipv6_hdr *ipv6_hdr;
+				uint32_t ip_dst;
+				uint8_t *ipv6_dst;
+				uint32_t *signature, *k32;
+
+				m = app.mbuf_rx.array[j];
+				m_data = rte_pktmbuf_mtod(m, uint8_t *);
+				signature = RTE_MBUF_METADATA_UINT32_PTR(m,
+						APP_METADATA_OFFSET(0));
+				key = RTE_MBUF_METADATA_UINT8_PTR(m,
+						APP_METADATA_OFFSET(32));
+
+				if (RTE_ETH_IS_IPV4_HDR(m->packet_type)) {
+					ip_hdr = (struct rte_ipv4_hdr *)
+						&m_data[sizeof(struct rte_ether_hdr)];
+					ip_dst = ip_hdr->dst_addr;
+
+					k32 = (uint32_t *) key;
+					k32[0] = ip_dst & 0xFFFFFF00;
+				} else if (RTE_ETH_IS_IPV6_HDR(m->packet_type)) {
+					ipv6_hdr = (struct rte_ipv6_hdr *)
+						&m_data[sizeof(struct rte_ether_hdr)];
+					ipv6_dst = ipv6_hdr->dst_addr;
+
+					memcpy(key, ipv6_dst, 16);
+				} else
+					continue;
+
+				*signature = test_hash(key, NULL, 0, 0);
+			}
+
+			do {
+				ret = rte_ring_sp_enqueue_bulk(
+					app.rings_rx[i],
+					(void **) app.mbuf_rx.array,
+					n_mbufs,
+					NULL);
+			} while (ret == 0 && !force_quit);
 		}
-
-		do {
-			ret = rte_ring_sp_enqueue_bulk(
-				app.rings_rx[i],
-				(void **) app.mbuf_rx.array,
-				n_mbufs,
-				NULL);
-		} while (ret == 0);
 	}
 }
diff --git a/app/test-pipeline/pipeline_lpm.c b/app/test-pipeline/pipeline_lpm.c
index 8add5e71b7..e3d4b3fdc5 100644
--- a/app/test-pipeline/pipeline_lpm.c
+++ b/app/test-pipeline/pipeline_lpm.c
@@ -160,14 +160,16 @@ app_main_loop_worker_pipeline_lpm(void) {
 
 	/* Run-time */
 #if APP_FLUSH == 0
-	for ( ; ; )
+	while (!force_quit)
 		rte_pipeline_run(p);
 #else
-	for (i = 0; ; i++) {
+	i = 0;
+	while (!force_quit) {
 		rte_pipeline_run(p);
 
 		if ((i & APP_FLUSH) == 0)
 			rte_pipeline_flush(p);
+		i++;
 	}
 #endif
 }
diff --git a/app/test-pipeline/pipeline_lpm_ipv6.c b/app/test-pipeline/pipeline_lpm_ipv6.c
index 26b325180d..f9aca74e4c 100644
--- a/app/test-pipeline/pipeline_lpm_ipv6.c
+++ b/app/test-pipeline/pipeline_lpm_ipv6.c
@@ -158,14 +158,16 @@ app_main_loop_worker_pipeline_lpm_ipv6(void) {
 
 	/* Run-time */
 #if APP_FLUSH == 0
-	for ( ; ; )
+	while (!force_quit)
 		rte_pipeline_run(p);
 #else
-	for (i = 0; ; i++) {
+	i = 0;
+	while (!force_quit) {
 		rte_pipeline_run(p);
 
 		if ((i & APP_FLUSH) == 0)
 			rte_pipeline_flush(p);
+		i++;
 	}
 #endif
 }
diff --git a/app/test-pipeline/pipeline_stub.c b/app/test-pipeline/pipeline_stub.c
index b6750d51bf..48a638aad7 100644
--- a/app/test-pipeline/pipeline_stub.c
+++ b/app/test-pipeline/pipeline_stub.c
@@ -122,14 +122,16 @@ app_main_loop_worker_pipeline_stub(void) {
 
 	/* Run-time */
 #if APP_FLUSH == 0
-	for ( ; ; )
+	while (!force_quit)
 		rte_pipeline_run(p);
 #else
-	for (i = 0; ; i++) {
+	i = 0;
+	while (!force_quit) {
 		rte_pipeline_run(p);
 
 		if ((i & APP_FLUSH) == 0)
 			rte_pipeline_flush(p);
+		i++;
 	}
 #endif
 }
diff --git a/app/test-pipeline/runtime.c b/app/test-pipeline/runtime.c
index d939a85d7e..752f783370 100644
--- a/app/test-pipeline/runtime.c
+++ b/app/test-pipeline/runtime.c
@@ -48,24 +48,26 @@ app_main_loop_rx(void) {
 
 	RTE_LOG(INFO, USER1, "Core %u is doing RX\n", rte_lcore_id());
 
-	for (i = 0; ; i = ((i + 1) & (app.n_ports - 1))) {
-		uint16_t n_mbufs;
-
-		n_mbufs = rte_eth_rx_burst(
-			app.ports[i],
-			0,
-			app.mbuf_rx.array,
-			app.burst_size_rx_read);
-
-		if (n_mbufs == 0)
-			continue;
-
-		do {
-			ret = rte_ring_sp_enqueue_bulk(
-				app.rings_rx[i],
-				(void **) app.mbuf_rx.array,
-				n_mbufs, NULL);
-		} while (ret == 0);
+	while (!force_quit) {
+		for (i = 0; i < app.n_ports; i++) {
+			uint16_t n_mbufs;
+
+			n_mbufs = rte_eth_rx_burst(
+				app.ports[i],
+				0,
+				app.mbuf_rx.array,
+				app.burst_size_rx_read);
+
+			if (n_mbufs == 0)
+				continue;
+
+			do {
+				ret = rte_ring_sp_enqueue_bulk(
+					app.rings_rx[i],
+					(void **) app.mbuf_rx.array,
+					n_mbufs, NULL);
+			} while (ret == 0 && !force_quit);
+		}
 	}
 }
 
@@ -82,25 +84,27 @@ app_main_loop_worker(void) {
 	if (worker_mbuf == NULL)
 		rte_panic("Worker thread: cannot allocate buffer space\n");
 
-	for (i = 0; ; i = ((i + 1) & (app.n_ports - 1))) {
-		int ret;
-
-		ret = rte_ring_sc_dequeue_bulk(
-			app.rings_rx[i],
-			(void **) worker_mbuf->array,
-			app.burst_size_worker_read,
-			NULL);
+	while (!force_quit) {
+		for (i = 0; i < app.n_ports; i++) {
+			int ret;
 
-		if (ret == 0)
-			continue;
-
-		do {
-			ret = rte_ring_sp_enqueue_bulk(
-				app.rings_tx[i ^ 1],
+			ret = rte_ring_sc_dequeue_bulk(
+				app.rings_rx[i],
 				(void **) worker_mbuf->array,
-				app.burst_size_worker_write,
+				app.burst_size_worker_read,
 				NULL);
-		} while (ret == 0);
+
+			if (ret == 0)
+				continue;
+
+			do {
+				ret = rte_ring_sp_enqueue_bulk(
+					app.rings_tx[i ^ 1],
+					(void **) worker_mbuf->array,
+					app.burst_size_worker_write,
+					NULL);
+			} while (ret == 0 && !force_quit);
+		}
 	}
 }
 
@@ -110,45 +114,47 @@ app_main_loop_tx(void) {
 
 	RTE_LOG(INFO, USER1, "Core %u is doing TX\n", rte_lcore_id());
 
-	for (i = 0; ; i = ((i + 1) & (app.n_ports - 1))) {
-		uint16_t n_mbufs, n_pkts;
-		int ret;
+	while (!force_quit) {
+		for (i = 0; i < app.n_ports; i++) {
+			uint16_t n_mbufs, n_pkts;
+			int ret;
 
-		n_mbufs = app.mbuf_tx[i].n_mbufs;
+			n_mbufs = app.mbuf_tx[i].n_mbufs;
 
-		ret = rte_ring_sc_dequeue_bulk(
-			app.rings_tx[i],
-			(void **) &app.mbuf_tx[i].array[n_mbufs],
-			app.burst_size_tx_read,
-			NULL);
+			ret = rte_ring_sc_dequeue_bulk(
+				app.rings_tx[i],
+				(void **) &app.mbuf_tx[i].array[n_mbufs],
+				app.burst_size_tx_read,
+				NULL);
 
-		if (ret == 0)
-			continue;
+			if (ret == 0)
+				continue;
 
-		n_mbufs += app.burst_size_tx_read;
+			n_mbufs += app.burst_size_tx_read;
 
-		if (n_mbufs < app.burst_size_tx_write) {
-			app.mbuf_tx[i].n_mbufs = n_mbufs;
-			continue;
-		}
+			if (n_mbufs < app.burst_size_tx_write) {
+				app.mbuf_tx[i].n_mbufs = n_mbufs;
+				continue;
+			}
 
-		n_pkts = rte_eth_tx_burst(
-			app.ports[i],
-			0,
-			app.mbuf_tx[i].array,
-			n_mbufs);
+			n_pkts = rte_eth_tx_burst(
+				app.ports[i],
+				0,
+				app.mbuf_tx[i].array,
+				n_mbufs);
 
-		if (n_pkts < n_mbufs) {
-			uint16_t k;
+			if (n_pkts < n_mbufs) {
+				uint16_t k;
 
-			for (k = n_pkts; k < n_mbufs; k++) {
-				struct rte_mbuf *pkt_to_free;
+				for (k = n_pkts; k < n_mbufs; k++) {
+					struct rte_mbuf *pkt_to_free;
 
-				pkt_to_free = app.mbuf_tx[i].array[k];
-				rte_pktmbuf_free(pkt_to_free);
+					pkt_to_free = app.mbuf_tx[i].array[k];
+					rte_pktmbuf_free(pkt_to_free);
+				}
 			}
-		}
 
-		app.mbuf_tx[i].n_mbufs = 0;
+			app.mbuf_tx[i].n_mbufs = 0;
+		}
 	}
 }
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.668231700 +0800
+++ 0111-app-pipeline-add-sigint-handler.patch	2023-12-11 17:56:23.227652300 +0800
@@ -1 +1 @@
-From f6897b23f70b84742129a215ea2be17c8843adb8 Mon Sep 17 00:00:00 2001
+From de38896353c37da406d35eebc64baea20f1b5c6e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit f6897b23f70b84742129a215ea2be17c8843adb8 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -32 +34 @@
-index 54e3bf7584..49d3616c4c 100644
+index 48267a54f2..9b523c9959 100644
@@ -35 +37 @@
-@@ -899,6 +899,7 @@ Mateusz Rusinski <mateusz.rusinski@intel.com>
+@@ -865,6 +865,7 @@ Mateusz Rusinski <mateusz.rusinski@intel.com>
@@ -96 +98 @@
-index 2f04868e3e..9eb4053e23 100644
+index 5857bc285f..abde4bf934 100644
@@ -255 +257 @@
-index 854319174b..8a59bd0042 100644
+index 8add5e71b7..e3d4b3fdc5 100644
@@ -278 +280 @@
-index 18d4f018f1..207ffbeff0 100644
+index 26b325180d..f9aca74e4c 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'doc: remove restriction on ixgbe vector support' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (110 preceding siblings ...)
  2023-12-11 10:12   ` patch 'app/pipeline: add sigint handler' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'doc: fix some ordered lists' " Xueming Li
                     ` (8 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: David Marchand; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=cabe6f3bae922201bc4540cc175df9f6d3ba748a

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From cabe6f3bae922201bc4540cc175df9f6d3ba748a Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Fri, 10 Nov 2023 11:54:46 +0100
Subject: [PATCH] doc: remove restriction on ixgbe vector support
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 0e26c9eb6b783aa2914c2a2b7ef0918bd82856be ]

The ixgbe driver has vector support for different architectures for a
while now.

Fixes: b20971b6cca0 ("net/ixgbe: implement vector driver for ARM")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/guides/nics/ixgbe.rst | 2 --
 1 file changed, 2 deletions(-)

diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index 5db7376992..a3a19a0f49 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -16,8 +16,6 @@ The wider register gives space to hold multiple packet buffers so as to save ins
 There is no change to PMD API. The RX/TX handler are the only two entries for vPMD packet I/O.
 They are transparently registered at runtime RX/TX execution if all condition checks pass.
 
-1.  To date, only an SSE version of IX GBE vPMD is available.
-
 Some constraints apply as pre-conditions for specific optimizations on bulk packet transfers.
 The following sections explain RX and TX constraints in the vPMD.
 
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.698572800 +0800
+++ 0112-doc-remove-restriction-on-ixgbe-vector-support.patch	2023-12-11 17:56:23.227652300 +0800
@@ -1 +1 @@
-From 0e26c9eb6b783aa2914c2a2b7ef0918bd82856be Mon Sep 17 00:00:00 2001
+From cabe6f3bae922201bc4540cc175df9f6d3ba748a Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 0e26c9eb6b783aa2914c2a2b7ef0918bd82856be ]
@@ -10 +12,0 @@
-Cc: stable@dpdk.org
@@ -19 +21 @@
-index b1d77ab7ab..14573b542e 100644
+index 5db7376992..a3a19a0f49 100644
@@ -22 +24 @@
-@@ -47,8 +47,6 @@ The wider register gives space to hold multiple packet buffers so as to save ins
+@@ -16,8 +16,6 @@ The wider register gives space to hold multiple packet buffers so as to save ins

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'doc: fix some ordered lists' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (111 preceding siblings ...)
  2023-12-11 10:12   ` patch 'doc: remove restriction on ixgbe vector support' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'doc: remove number of commands in vDPA guide' " Xueming Li
                     ` (7 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: David Marchand; +Cc: Bruce Richardson, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e1aa1c2ce0df2236e5fda8f6049ef4c56a561358

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From e1aa1c2ce0df2236e5fda8f6049ef4c56a561358 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Fri, 10 Nov 2023 11:15:05 +0100
Subject: [PATCH] doc: fix some ordered lists
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit fc7428ead4ee6e1239ccd0bd4065edd974549ad6 ]

Ordered lists must start preceded by an empty line.
Entries must be separated by an empty line (as per our coding style).
Incorrectly indented lines are seen as a separator and result in
starting a new list in the rendered doc.

Fix issues in some guides.

Fixes: 26b683b4f7d0 ("net/virtio: setup Rx queue interrupts")
Fixes: 9dcf5d15569b ("doc: clarify path selection in virtio guide")
Fixes: 68a03efeed65 ("doc: add Marvell cnxk platform guide")
Fixes: f6010c7655cc ("doc: add GSO programmer's guide")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/guides/nics/virtio.rst                           | 12 ++++++++++++
 doc/guides/platform/cnxk.rst                         |  3 +++
 .../prog_guide/generic_segmentation_offload_lib.rst  |  2 +-
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/doc/guides/nics/virtio.rst b/doc/guides/nics/virtio.rst
index c422e7347a..7eba49cc83 100644
--- a/doc/guides/nics/virtio.rst
+++ b/doc/guides/nics/virtio.rst
@@ -307,6 +307,7 @@ Prerequisites for Rx interrupts
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 To support Rx interrupts,
+
 #. Check if guest kernel supports VFIO-NOIOMMU:
 
     Linux started to support VFIO-NOIOMMU since 4.8.0. Make sure the guest
@@ -469,12 +470,16 @@ according to below configuration:
 
 #. Split virtqueue mergeable path: If Rx mergeable is negotiated, in-order feature is
    not negotiated, this path will be selected.
+
 #. Split virtqueue non-mergeable path: If Rx mergeable and in-order feature are not
    negotiated, also Rx offload(s) are requested, this path will be selected.
+
 #. Split virtqueue in-order mergeable path: If Rx mergeable and in-order feature are
    both negotiated, this path will be selected.
+
 #. Split virtqueue in-order non-mergeable path: If in-order feature is negotiated and
    Rx mergeable is not negotiated, this path will be selected.
+
 #. Split virtqueue vectorized Rx path: If Rx mergeable is disabled and no Rx offload
    requested, this path will be selected.
 
@@ -483,16 +488,21 @@ according to below configuration:
 
 #. Packed virtqueue mergeable path: If Rx mergeable is negotiated, in-order feature
    is not negotiated, this path will be selected.
+
 #. Packed virtqueue non-mergeable path: If Rx mergeable and in-order feature are not
    negotiated, this path will be selected.
+
 #. Packed virtqueue in-order mergeable path: If in-order and Rx mergeable feature are
    both negotiated, this path will be selected.
+
 #. Packed virtqueue in-order non-mergeable path: If in-order feature is negotiated and
    Rx mergeable is not negotiated, this path will be selected.
+
 #. Packed virtqueue vectorized Rx path: If building and running environment support
    (AVX512 || NEON) && in-order feature is negotiated && Rx mergeable
    is not negotiated && TCP_LRO Rx offloading is disabled && vectorized option enabled,
    this path will be selected.
+
 #. Packed virtqueue vectorized Tx path: If building and running environment support
    (AVX512 || NEON)  && in-order feature is negotiated && vectorized option enabled,
    this path will be selected.
@@ -570,5 +580,7 @@ or configuration, below steps can help you identify which path you selected and
 root cause faster.
 
 #. Run vhost/virtio test case;
+
 #. Run "perf top" and check virtio Rx/Tx callback names;
+
 #. Identify which virtio path is selected refer to above table.
diff --git a/doc/guides/platform/cnxk.rst b/doc/guides/platform/cnxk.rst
index 0eafde71d6..dca4e789b3 100644
--- a/doc/guides/platform/cnxk.rst
+++ b/doc/guides/platform/cnxk.rst
@@ -111,7 +111,9 @@ where even VF bound to the first domain and odd VF bound to the second domain.
 Typical application usage models are,
 
 #. Communication between the Linux kernel and DPDK application.
+
 #. Exception path to Linux kernel from DPDK application as SW ``KNI`` replacement.
+
 #. Communication between two different DPDK applications.
 
 SDP interface
@@ -130,6 +132,7 @@ can bind PF or VF to use SDP interface and it will be enumerated as ethdev ports
 The primary use case for SDP is to enable the smart NIC use case. Typical usage models are,
 
 #. Communication channel between remote host and cnxk SoC over PCIe.
+
 #. Transfer packets received from network interface to remote host over PCIe and
    vice-versa.
 
diff --git a/doc/guides/prog_guide/generic_segmentation_offload_lib.rst b/doc/guides/prog_guide/generic_segmentation_offload_lib.rst
index e605b86376..30d13bcc61 100644
--- a/doc/guides/prog_guide/generic_segmentation_offload_lib.rst
+++ b/doc/guides/prog_guide/generic_segmentation_offload_lib.rst
@@ -204,7 +204,7 @@ To segment an outgoing packet, an application must:
    - a flag, that indicates whether the IPv4 headers of output segments should
      contain fixed or incremental ID values.
 
-2. Set the appropriate ol_flags in the mbuf.
+#. Set the appropriate ol_flags in the mbuf.
 
    - The GSO library use the value of an mbuf's ``ol_flags`` attribute to
      determine how a packet should be segmented. It is the application's
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.722888600 +0800
+++ 0113-doc-fix-some-ordered-lists.patch	2023-12-11 17:56:23.227652300 +0800
@@ -1 +1 @@
-From fc7428ead4ee6e1239ccd0bd4065edd974549ad6 Mon Sep 17 00:00:00 2001
+From e1aa1c2ce0df2236e5fda8f6049ef4c56a561358 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit fc7428ead4ee6e1239ccd0bd4065edd974549ad6 ]
@@ -17 +19,0 @@
-Cc: stable@dpdk.org
@@ -28 +30 @@
-index ba6247170d..c22ce56a02 100644
+index c422e7347a..7eba49cc83 100644
@@ -31 +33 @@
-@@ -217,6 +217,7 @@ Prerequisites for Rx interrupts
+@@ -307,6 +307,7 @@ Prerequisites for Rx interrupts
@@ -39 +41 @@
-@@ -379,12 +380,16 @@ according to below configuration:
+@@ -469,12 +470,16 @@ according to below configuration:
@@ -56 +58 @@
-@@ -393,16 +398,21 @@ according to below configuration:
+@@ -483,16 +488,21 @@ according to below configuration:
@@ -78 +80 @@
-@@ -480,5 +490,7 @@ or configuration, below steps can help you identify which path you selected and
+@@ -570,5 +580,7 @@ or configuration, below steps can help you identify which path you selected and
@@ -87 +89 @@
-index b3aa4de09d..b901062c93 100644
+index 0eafde71d6..dca4e789b3 100644
@@ -90 +92 @@
-@@ -113,7 +113,9 @@ where even VF bound to the first domain and odd VF bound to the second domain.
+@@ -111,7 +111,9 @@ where even VF bound to the first domain and odd VF bound to the second domain.
@@ -100 +102 @@
-@@ -132,6 +134,7 @@ can bind PF or VF to use SDP interface and it will be enumerated as ethdev ports
+@@ -130,6 +132,7 @@ can bind PF or VF to use SDP interface and it will be enumerated as ethdev ports

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'doc: remove number of commands in vDPA guide' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (112 preceding siblings ...)
  2023-12-11 10:12   ` patch 'doc: fix some ordered lists' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'mempool: fix get function documentation' " Xueming Li
                     ` (6 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: David Marchand; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=9f0f54a72e7c60ba9ff9a9830977f27fc3b1ac7e

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 9f0f54a72e7c60ba9ff9a9830977f27fc3b1ac7e Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 23 Nov 2023 12:15:35 +0100
Subject: [PATCH] doc: remove number of commands in vDPA guide
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 7875e78b00bf1be03327d5dff1a32c0d5d430bec ]

There are now 5 supported commands.

Fixes: 6505865aa8ed ("examples/vdpa: add statistics show command")

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 doc/guides/sample_app_ug/vdpa.rst | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/doc/guides/sample_app_ug/vdpa.rst b/doc/guides/sample_app_ug/vdpa.rst
index cb9c4f2169..51e69fc20d 100644
--- a/doc/guides/sample_app_ug/vdpa.rst
+++ b/doc/guides/sample_app_ug/vdpa.rst
@@ -38,8 +38,7 @@ where
 * --iface specifies the path prefix of the UNIX domain socket file, e.g.
   /tmp/vhost-user-, then the socket files will be named as /tmp/vhost-user-<n>
   (n starts from 0).
-* --interactive means run the vdpa sample in interactive mode, currently 4
-  internal cmds are supported:
+* --interactive means run the vDPA sample in interactive mode:
 
   1. help: show help message
   2. list: list all available vdpa devices
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.747774800 +0800
+++ 0114-doc-remove-number-of-commands-in-vDPA-guide.patch	2023-12-11 17:56:23.227652300 +0800
@@ -1 +1 @@
-From 7875e78b00bf1be03327d5dff1a32c0d5d430bec Mon Sep 17 00:00:00 2001
+From 9f0f54a72e7c60ba9ff9a9830977f27fc3b1ac7e Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7875e78b00bf1be03327d5dff1a32c0d5d430bec ]
@@ -9 +11,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'mempool: fix get function documentation' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (113 preceding siblings ...)
  2023-12-11 10:12   ` patch 'doc: remove number of commands in vDPA guide' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'mempool: clarify enqueue/dequeue ops " Xueming Li
                     ` (5 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: Mahesh Adulla, Morten Brørup, Huisong Li, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=9c68d8a8459bfa3103ba257ae811babda9fb323c

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 9c68d8a8459bfa3103ba257ae811babda9fb323c Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@amd.com>
Date: Mon, 23 Oct 2023 10:38:42 +0100
Subject: [PATCH] mempool: fix get function documentation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 9b3233ab09ea331dcf5fb38d215d91818bef3b47 ]

static function `rte_mempool_do_generic_get()` returns zero on success,
not >=0 as its function comment documents.

Since this function called by public API, the comment causes confusion
on the public API return value.

Fixing the internal function documentation for return value.

Fixes: af75078fece3 ("first public release")

Reported-by: Mahesh Adulla <mahesh.adulla@amd.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Huisong Li <lihuisong@huawei.com>
---
 .mailmap                  | 1 +
 lib/mempool/rte_mempool.h | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/.mailmap b/.mailmap
index 9b523c9959..a97dce5fcf 100644
--- a/.mailmap
+++ b/.mailmap
@@ -806,6 +806,7 @@ Maciej Paczkowski <maciej.paczkowski@intel.com>
 Maciej Rabeda <maciej.rabeda@intel.com>
 Maciej Szwed <maciej.szwed@intel.com>
 Madhuker Mythri <madhuker.mythri@oracle.com>
+Mahesh Adulla <mahesh.adulla@amd.com>
 Mahipal Challa <mchalla@marvell.com>
 Mah Yock Gen <yock.gen.mah@intel.com>
 Mairtin o Loingsigh <mairtin.oloingsigh@intel.com>
diff --git a/lib/mempool/rte_mempool.h b/lib/mempool/rte_mempool.h
index 9f530db24b..f1eb2cd2d3 100644
--- a/lib/mempool/rte_mempool.h
+++ b/lib/mempool/rte_mempool.h
@@ -1484,7 +1484,7 @@ rte_mempool_put(struct rte_mempool *mp, void *obj)
  * @param cache
  *   A pointer to a mempool cache structure. May be NULL if not needed.
  * @return
- *   - >=0: Success; number of objects supplied.
+ *   - 0: Success.
  *   - <0: Error; code of driver dequeue function.
  */
 static __rte_always_inline int
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.770569300 +0800
+++ 0115-mempool-fix-get-function-documentation.patch	2023-12-11 17:56:23.237652300 +0800
@@ -1 +1 @@
-From 9b3233ab09ea331dcf5fb38d215d91818bef3b47 Mon Sep 17 00:00:00 2001
+From 9c68d8a8459bfa3103ba257ae811babda9fb323c Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 9b3233ab09ea331dcf5fb38d215d91818bef3b47 ]
@@ -18 +20,0 @@
-Cc: stable@dpdk.org
@@ -30 +32 @@
-index 49d3616c4c..3630e72f41 100644
+index 9b523c9959..a97dce5fcf 100644
@@ -33 +35,2 @@
-@@ -839,6 +839,7 @@ Maciej Rabeda <maciej.rabeda@intel.com>
+@@ -806,6 +806,7 @@ Maciej Paczkowski <maciej.paczkowski@intel.com>
+ Maciej Rabeda <maciej.rabeda@intel.com>
@@ -35 +37,0 @@
- Madhu Chittim <madhu.chittim@intel.com>
@@ -42 +44 @@
-index df87cd231e..1303eef494 100644
+index 9f530db24b..f1eb2cd2d3 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'mempool: clarify enqueue/dequeue ops documentation' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (114 preceding siblings ...)
  2023-12-11 10:12   ` patch 'mempool: fix get function documentation' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'ethdev: fix ESP packet type description' " Xueming Li
                     ` (4 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: Morten Brørup, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=3b67c0751162b9a287bc0bab19e83baab486bbad

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 3b67c0751162b9a287bc0bab19e83baab486bbad Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@amd.com>
Date: Mon, 23 Oct 2023 10:38:43 +0100
Subject: [PATCH] mempool: clarify enqueue/dequeue ops documentation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 37fc1db98c082d3f423c46bed7357a158abe53e9 ]

API documentations doesn't clarify expected return types for enqueue and
dequeue mempool_ops, clarifying it.

Fixes: 449c49b93a6b ("mempool: support handler operations")

Reported-by: Morten Brørup <mb@smartsharesystems.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@amd.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
---
 lib/mempool/rte_mempool.h | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/lib/mempool/rte_mempool.h b/lib/mempool/rte_mempool.h
index f1eb2cd2d3..4a8a2d5dcb 100644
--- a/lib/mempool/rte_mempool.h
+++ b/lib/mempool/rte_mempool.h
@@ -465,13 +465,19 @@ typedef int (*rte_mempool_alloc_t)(struct rte_mempool *mp);
 typedef void (*rte_mempool_free_t)(struct rte_mempool *mp);
 
 /**
- * Enqueue an object into the external pool.
+ * Enqueue 'n' objects into the external pool.
+ * @return
+ *   - 0: Success
+ *   - <0: Error
  */
 typedef int (*rte_mempool_enqueue_t)(struct rte_mempool *mp,
 		void * const *obj_table, unsigned int n);
 
 /**
- * Dequeue an object from the external pool.
+ * Dequeue 'n' objects from the external pool.
+ * @return
+ *   - 0: Success
+ *   - <0: Error
  */
 typedef int (*rte_mempool_dequeue_t)(struct rte_mempool *mp,
 		void **obj_table, unsigned int n);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.810443600 +0800
+++ 0116-mempool-clarify-enqueue-dequeue-ops-documentation.patch	2023-12-11 17:56:23.237652300 +0800
@@ -1 +1 @@
-From 37fc1db98c082d3f423c46bed7357a158abe53e9 Mon Sep 17 00:00:00 2001
+From 3b67c0751162b9a287bc0bab19e83baab486bbad Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 37fc1db98c082d3f423c46bed7357a158abe53e9 ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 1303eef494..95deade160 100644
+index f1eb2cd2d3..4a8a2d5dcb 100644

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'ethdev: fix ESP packet type description' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (115 preceding siblings ...)
  2023-12-11 10:12   ` patch 'mempool: clarify enqueue/dequeue ops " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'net/hns3: fix ignored reset event' " Xueming Li
                     ` (3 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Alexander Kozyrev; +Cc: Morten Brørup, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=da708a5b4e74b5e29e670b7322134d5422eb1f86

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From da708a5b4e74b5e29e670b7322134d5422eb1f86 Mon Sep 17 00:00:00 2001
From: Alexander Kozyrev <akozyrev@nvidia.com>
Date: Wed, 25 Oct 2023 23:32:15 +0300
Subject: [PATCH] ethdev: fix ESP packet type description
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit f647d53bdebc1a9273c01caad280aadc64d0487e ]

The correct protocol number for ESP (IP Encapsulating Security Payload)
packet type is 50. 51 is IPSec AH (Authentication Header).

Fixes: 1e84afd3906b ("mbuf: add security crypto flags and fields")

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
---
 lib/mbuf/rte_mbuf_ptype.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/mbuf/rte_mbuf_ptype.h b/lib/mbuf/rte_mbuf_ptype.h
index 17a2dd3576..f2276e2909 100644
--- a/lib/mbuf/rte_mbuf_ptype.h
+++ b/lib/mbuf/rte_mbuf_ptype.h
@@ -419,10 +419,10 @@ extern "C" {
  *
  * Packet format:
  * <'ether type'=0x0800
- * | 'version'=4, 'protocol'=51>
+ * | 'version'=4, 'protocol'=50>
  * or,
  * <'ether type'=0x86DD
- * | 'version'=6, 'next header'=51>
+ * | 'version'=6, 'next header'=50>
  */
 #define RTE_PTYPE_TUNNEL_ESP                0x00009000
 /**
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.837723900 +0800
+++ 0117-ethdev-fix-ESP-packet-type-description.patch	2023-12-11 17:56:23.237652300 +0800
@@ -1 +1 @@
-From f647d53bdebc1a9273c01caad280aadc64d0487e Mon Sep 17 00:00:00 2001
+From da708a5b4e74b5e29e670b7322134d5422eb1f86 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit f647d53bdebc1a9273c01caad280aadc64d0487e ]
@@ -13 +15,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix ignored reset event' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (116 preceding siblings ...)
  2023-12-11 10:12   ` patch 'ethdev: fix ESP packet type description' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'net/hns3: fix reset event status' " Xueming Li
                     ` (2 subsequent siblings)
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Jie Hai, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=c5d0485861b15bcafcc17d969e6f4332e34033ab

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From c5d0485861b15bcafcc17d969e6f4332e34033ab Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Mon, 27 Nov 2023 21:39:01 +0800
Subject: [PATCH] net/hns3: fix ignored reset event
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 4c40006c4b6b3c567185c84d60535752c9f7ea3d ]

The code logic that only new reset whose level is higher than old
reset level will be addressed is added in 'hns3_detect_reset_event()',
in fixed commit.

When the new reset is detected and the old reset level is
HNS3_NONE_RESET this reset will be ignored. This patch fix it.

Fixes: 5be38fc6c0fc ("net/hns3: fix multiple reset detected log")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Acked-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index f1131f4ba8..27f9dd2eb2 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -5594,7 +5594,10 @@ hns3_detect_reset_event(struct hns3_hw *hw)
 		new_req = HNS3_GLOBAL_RESET;
 	}
 
-	if (new_req != HNS3_NONE_RESET && last_req < new_req) {
+	if (new_req == HNS3_NONE_RESET)
+		return HNS3_NONE_RESET;
+
+	if (last_req == HNS3_NONE_RESET || last_req < new_req) {
 		hns3_schedule_delayed_reset(hns);
 		hns3_warn(hw, "High level reset detected, delay do reset");
 	}
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.863382000 +0800
+++ 0118-net-hns3-fix-ignored-reset-event.patch	2023-12-11 17:56:23.247652300 +0800
@@ -1 +1 @@
-From 4c40006c4b6b3c567185c84d60535752c9f7ea3d Mon Sep 17 00:00:00 2001
+From c5d0485861b15bcafcc17d969e6f4332e34033ab Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 4c40006c4b6b3c567185c84d60535752c9f7ea3d ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -23 +25 @@
-index 941d047bf1..ae81368f68 100644
+index f1131f4ba8..27f9dd2eb2 100644
@@ -26 +28 @@
-@@ -5560,7 +5560,10 @@ hns3_detect_reset_event(struct hns3_hw *hw)
+@@ -5594,7 +5594,10 @@ hns3_detect_reset_event(struct hns3_hw *hw)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix reset event status' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (117 preceding siblings ...)
  2023-12-11 10:12   ` patch 'net/hns3: fix ignored reset event' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'net/hns3: fix VF reset handler interruption' " Xueming Li
  2023-12-11 10:12   ` patch 'event/dlb2: fix disable PASID' " Xueming Li
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Jie Hai, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=28e7716ee38fe33a28da2c0e82f33f6e0224dced

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 28e7716ee38fe33a28da2c0e82f33f6e0224dced Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Mon, 27 Nov 2023 21:39:02 +0800
Subject: [PATCH] net/hns3: fix reset event status
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit b59a0cbec866a8d4f7d1938b6826f7961c75c9fd ]

The function hns3_clear_reset_event is used to clear PF
reset status, The VF shouldn't use it.

This patch fixes it.

Fixes: 1eee1ea75c0e ("net/hns3: fix IMP or global reset")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Acked-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_intr.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hns3/hns3_intr.c b/drivers/net/hns3/hns3_intr.c
index c5a3e3797c..52b5435a23 100644
--- a/drivers/net/hns3/hns3_intr.c
+++ b/drivers/net/hns3/hns3_intr.c
@@ -2749,7 +2749,8 @@ hns3_reset_post(struct hns3_adapter *hns)
 		/* IMP will wait ready flag before reset */
 		hns3_notify_reset_ready(hw, false);
 		hns3_clear_reset_level(hw, &hw->reset.pending);
-		hns3_clear_reset_event(hw);
+		if (!hns->is_vf)
+			hns3_clear_reset_event(hw);
 		__atomic_store_n(&hns->hw.reset.resetting, 0, __ATOMIC_RELAXED);
 		hw->reset.attempts = 0;
 		hw->reset.stats.success_cnt++;
@@ -2799,7 +2800,8 @@ hns3_reset_fail_handle(struct hns3_adapter *hns)
 	struct timeval tv;
 
 	hns3_clear_reset_level(hw, &hw->reset.pending);
-	hns3_clear_reset_event(hw);
+	if (!hns->is_vf)
+		hns3_clear_reset_event(hw);
 	if (hns3_reset_err_handle(hns)) {
 		hw->reset.stage = RESET_STAGE_PREWAIT;
 		hns3_schedule_reset(hns);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.894285100 +0800
+++ 0119-net-hns3-fix-reset-event-status.patch	2023-12-11 17:56:23.247652300 +0800
@@ -1 +1 @@
-From b59a0cbec866a8d4f7d1938b6826f7961c75c9fd Mon Sep 17 00:00:00 2001
+From 28e7716ee38fe33a28da2c0e82f33f6e0224dced Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit b59a0cbec866a8d4f7d1938b6826f7961c75c9fd ]
@@ -12 +14,0 @@
-Cc: stable@dpdk.org

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'net/hns3: fix VF reset handler interruption' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (118 preceding siblings ...)
  2023-12-11 10:12   ` patch 'net/hns3: fix reset event status' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  2023-12-11 10:12   ` patch 'event/dlb2: fix disable PASID' " Xueming Li
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Dengdui Huang; +Cc: Jie Hai, dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=647137256433c23189ace754c8a4304cb83b058b

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 647137256433c23189ace754c8a4304cb83b058b Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Mon, 27 Nov 2023 21:39:03 +0800
Subject: [PATCH] net/hns3: fix VF reset handler interruption
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 94cf4db1603fe9074b5275cc4b63685fc91fdac5 ]

Currently, the VF reset interrupt is enabled before the reset
process is completed. If the VF reset is triggered by an IMP
reset, the initialization of IMP is may not completed, and the
VF reset interrupt may continue to be reported. In this scenario,
the VF reset being performed by the driver does not need to be
interrupted. Therefore, for VF reset, the driver has to enable
the interrupt after the end of reset.

Fixes: a5475d61fa34 ("net/hns3: support VF")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Acked-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_ethdev.h    | 12 ++++++++++++
 drivers/net/hns3/hns3_ethdev_vf.c | 19 +++++++++++++++++--
 drivers/net/hns3/hns3_intr.c      |  6 ++----
 3 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h
index a3dd4b45c2..9e67e93d3f 100644
--- a/drivers/net/hns3/hns3_ethdev.h
+++ b/drivers/net/hns3/hns3_ethdev.h
@@ -1031,6 +1031,7 @@ void hns3vf_update_link_status(struct hns3_hw *hw, uint8_t link_status,
 			  uint32_t link_speed, uint8_t link_duplex);
 void hns3vf_update_push_lsc_cap(struct hns3_hw *hw, bool supported);
 void hns3_clear_reset_event(struct hns3_hw *hw);
+void hns3vf_clear_reset_event(struct hns3_hw *hw);
 
 
 static inline bool
@@ -1044,4 +1045,15 @@ is_reset_pending(struct hns3_adapter *hns)
 	return ret;
 }
 
+static inline void
+hns3_clear_reset_status(struct hns3_hw *hw)
+{
+	struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
+
+	if (hns->is_vf)
+		hns3vf_clear_reset_event(hw);
+	else
+		hns3_clear_reset_event(hw);
+}
+
 #endif /* HNS3_ETHDEV_H */
diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index 64f4dd148c..702a61aad9 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -612,6 +612,19 @@ hns3vf_enable_irq0(struct hns3_hw *hw)
 	hns3_write_dev(hw, HNS3_MISC_VECTOR_REG_BASE, 1);
 }
 
+void
+hns3vf_clear_reset_event(struct hns3_hw *hw)
+{
+	uint32_t clearval;
+	uint32_t cmdq_stat_reg;
+
+	cmdq_stat_reg = hns3_read_dev(hw, HNS3_VECTOR0_CMDQ_STAT_REG);
+	clearval = cmdq_stat_reg & ~BIT(HNS3_VECTOR0_RST_INT_B);
+	hns3_write_dev(hw, HNS3_VECTOR0_CMDQ_SRC_REG, clearval);
+
+	hns3vf_enable_irq0(hw);
+}
+
 static enum hns3vf_evt_cause
 hns3vf_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval)
 {
@@ -686,8 +699,10 @@ hns3vf_interrupt_handler(void *param)
 		break;
 	}
 
-	/* Enable interrupt */
-	hns3vf_enable_irq0(hw);
+	/* Enable interrupt if it is not caused by reset */
+	if (event_cause == HNS3VF_VECTOR0_EVENT_MBX ||
+	    event_cause == HNS3VF_VECTOR0_EVENT_OTHER)
+		hns3vf_enable_irq0(hw);
 }
 
 void
diff --git a/drivers/net/hns3/hns3_intr.c b/drivers/net/hns3/hns3_intr.c
index 52b5435a23..916bf30dcb 100644
--- a/drivers/net/hns3/hns3_intr.c
+++ b/drivers/net/hns3/hns3_intr.c
@@ -2749,8 +2749,7 @@ hns3_reset_post(struct hns3_adapter *hns)
 		/* IMP will wait ready flag before reset */
 		hns3_notify_reset_ready(hw, false);
 		hns3_clear_reset_level(hw, &hw->reset.pending);
-		if (!hns->is_vf)
-			hns3_clear_reset_event(hw);
+		hns3_clear_reset_status(hw);
 		__atomic_store_n(&hns->hw.reset.resetting, 0, __ATOMIC_RELAXED);
 		hw->reset.attempts = 0;
 		hw->reset.stats.success_cnt++;
@@ -2800,8 +2799,7 @@ hns3_reset_fail_handle(struct hns3_adapter *hns)
 	struct timeval tv;
 
 	hns3_clear_reset_level(hw, &hw->reset.pending);
-	if (!hns->is_vf)
-		hns3_clear_reset_event(hw);
+	hns3_clear_reset_status(hw);
 	if (hns3_reset_err_handle(hns)) {
 		hw->reset.stage = RESET_STAGE_PREWAIT;
 		hns3_schedule_reset(hns);
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.919660900 +0800
+++ 0120-net-hns3-fix-VF-reset-handler-interruption.patch	2023-12-11 17:56:23.247652300 +0800
@@ -1 +1 @@
-From 94cf4db1603fe9074b5275cc4b63685fc91fdac5 Mon Sep 17 00:00:00 2001
+From 647137256433c23189ace754c8a4304cb83b058b Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 94cf4db1603fe9074b5275cc4b63685fc91fdac5 ]
@@ -15 +17,0 @@
-Cc: stable@dpdk.org
@@ -26 +28 @@
-index 668f141e32..12d8299def 100644
+index a3dd4b45c2..9e67e93d3f 100644
@@ -29 +31 @@
-@@ -1035,6 +1035,7 @@ void hns3vf_update_link_status(struct hns3_hw *hw, uint8_t link_status,
+@@ -1031,6 +1031,7 @@ void hns3vf_update_link_status(struct hns3_hw *hw, uint8_t link_status,
@@ -35 +36,0 @@
- const char *hns3_get_media_type_name(uint8_t media_type);
@@ -37 +38,2 @@
-@@ -1049,4 +1050,15 @@ is_reset_pending(struct hns3_adapter *hns)
+ static inline bool
+@@ -1044,4 +1045,15 @@ is_reset_pending(struct hns3_adapter *hns)
@@ -54 +56 @@
-index 156fb905f9..916cc0fb1b 100644
+index 64f4dd148c..702a61aad9 100644
@@ -57 +59 @@
-@@ -531,6 +531,19 @@ hns3vf_enable_irq0(struct hns3_hw *hw)
+@@ -612,6 +612,19 @@ hns3vf_enable_irq0(struct hns3_hw *hw)
@@ -77 +79 @@
-@@ -605,8 +618,10 @@ hns3vf_interrupt_handler(void *param)
+@@ -686,8 +699,10 @@ hns3vf_interrupt_handler(void *param)

^ permalink raw reply	[flat|nested] 266+ messages in thread

* patch 'event/dlb2: fix disable PASID' has been queued to stable release 22.11.4
  2023-12-11 10:10 ` patch " Xueming Li
                     ` (119 preceding siblings ...)
  2023-12-11 10:12   ` patch 'net/hns3: fix VF reset handler interruption' " Xueming Li
@ 2023-12-11 10:12   ` Xueming Li
  120 siblings, 0 replies; 266+ messages in thread
From: Xueming Li @ 2023-12-11 10:12 UTC (permalink / raw)
  To: Abdullah Sevincer; +Cc: dpdk stable

Hi,

FYI, your patch has been queued to stable release 22.11.4

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/13/23. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=6c688dec84856bd68682f8f6b082b11868906132

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 6c688dec84856bd68682f8f6b082b11868906132 Mon Sep 17 00:00:00 2001
From: Abdullah Sevincer <abdullah.sevincer@intel.com>
Date: Thu, 9 Nov 2023 13:45:44 -0600
Subject: [PATCH] event/dlb2: fix disable PASID
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 5a6878335b8179337ec2d9931debf1f46525e8fc ]

In vfio-pci driver when PASID is enabled by default DLB hardware puts
DLB in SIOV mode. This breaks DLB PF-PMD mode. For DLB PF-PMD mode to
function properly PASID needs to be disabled.

In this commit this issue is addressed and PASID is disabled by writing
a zero to PASID control register.

Fixes: 5433956d5185 ("event/dlb2: add eventdev probe")

Signed-off-by: Abdullah Sevincer <abdullah.sevincer@intel.com>
---
 drivers/event/dlb2/pf/dlb2_main.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/drivers/event/dlb2/pf/dlb2_main.c b/drivers/event/dlb2/pf/dlb2_main.c
index 64a59f7616..12b65c3b98 100644
--- a/drivers/event/dlb2/pf/dlb2_main.c
+++ b/drivers/event/dlb2/pf/dlb2_main.c
@@ -47,6 +47,7 @@
 #define DLB2_PCI_CAP_ID_MSIX      0x11
 #define DLB2_PCI_EXT_CAP_ID_PRI   0x13
 #define DLB2_PCI_EXT_CAP_ID_ACS   0xD
+#define DLB2_PCI_EXT_CAP_ID_PASID 0x1B	/* Process Address Space ID */
 
 #define DLB2_PCI_PRI_CTRL_ENABLE         0x1
 #define DLB2_PCI_PRI_ALLOC_REQ           0xC
@@ -65,6 +66,8 @@
 #define DLB2_PCI_ACS_CR                  0x8
 #define DLB2_PCI_ACS_UF                  0x10
 #define DLB2_PCI_ACS_EC                  0x20
+#define DLB2_PCI_PASID_CTRL              0x06    /* PASID control register */
+#define DLB2_PCI_PASID_CAP_OFFSET        0x148   /* PASID capability offset */
 
 static int dlb2_pci_find_capability(struct rte_pci_device *pdev, uint32_t id)
 {
@@ -258,12 +261,14 @@ dlb2_pf_reset(struct dlb2_dev *dlb2_dev)
 	uint16_t rt_ctl_word;
 	uint32_t pri_reqs_dword;
 	uint16_t pri_ctrl_word;
+	uint16_t pasid_ctrl;
 
 	int pcie_cap_offset;
 	int pri_cap_offset;
 	int msix_cap_offset;
 	int err_cap_offset;
 	int acs_cap_offset;
+	int pasid_cap_offset;
 	int wait_count;
 
 	uint16_t devsta_busy_word;
@@ -583,6 +588,28 @@ dlb2_pf_reset(struct dlb2_dev *dlb2_dev)
 		}
 	}
 
+	/* The current Linux kernel vfio driver does not expose PASID capability to
+	 * users. It also enables PASID by default, which breaks DLB PF PMD. We have
+	 * to use the hardcoded offset for now to disable PASID.
+	 */
+	pasid_cap_offset = DLB2_PCI_PASID_CAP_OFFSET;
+
+	off = pasid_cap_offset + DLB2_PCI_PASID_CTRL;
+	if (rte_pci_read_config(pdev, &pasid_ctrl, 2, off) != 2)
+		pasid_ctrl = 0;
+
+	if (pasid_ctrl) {
+		DLB2_INFO(dlb2_dev, "DLB2 disabling pasid...\n");
+
+		pasid_ctrl = 0;
+		ret = rte_pci_write_config(pdev, &pasid_ctrl, 2, off);
+		if (ret != 2) {
+			DLB2_LOG_ERR("[%s()] failed to write the pcie config space at offset %d\n",
+				__func__, (int)off);
+			return ret;
+		}
+	}
+
 	/* Disable PASID if it is enabled by default, which
 	 * breaks the DLB if enabled.
 	 */
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-12-11 17:56:26.949730200 +0800
+++ 0121-event-dlb2-fix-disable-PASID.patch	2023-12-11 17:56:23.247652300 +0800
@@ -1 +1 @@
-From 5a6878335b8179337ec2d9931debf1f46525e8fc Mon Sep 17 00:00:00 2001
+From 6c688dec84856bd68682f8f6b082b11868906132 Mon Sep 17 00:00:00 2001
@@ -3,2 +3,5 @@
-Date: Mon, 6 Nov 2023 11:05:21 -0600
-Subject: [PATCH] event/dlb2: disable PASID
+Date: Thu, 9 Nov 2023 13:45:44 -0600
+Subject: [PATCH] event/dlb2: fix disable PASID
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 5a6878335b8179337ec2d9931debf1f46525e8fc ]
@@ -14 +16,0 @@
-Cc: stable@dpdk.org
@@ -18,2 +20,2 @@
- drivers/event/dlb2/pf/dlb2_main.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
+ drivers/event/dlb2/pf/dlb2_main.c | 27 +++++++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
@@ -22 +24 @@
-index aa03e4c311..61a7b39eef 100644
+index 64a59f7616..12b65c3b98 100644
@@ -25,4 +27,13 @@
-@@ -26,6 +26,7 @@
- #define PF_ID_ZERO 0	/* PF ONLY! */
- #define NO_OWNER_VF 0	/* PF ONLY! */
- #define NOT_VF_REQ false /* PF ONLY! */
+@@ -47,6 +47,7 @@
+ #define DLB2_PCI_CAP_ID_MSIX      0x11
+ #define DLB2_PCI_EXT_CAP_ID_PRI   0x13
+ #define DLB2_PCI_EXT_CAP_ID_ACS   0xD
++#define DLB2_PCI_EXT_CAP_ID_PASID 0x1B	/* Process Address Space ID */
+ 
+ #define DLB2_PCI_PRI_CTRL_ENABLE         0x1
+ #define DLB2_PCI_PRI_ALLOC_REQ           0xC
+@@ -65,6 +66,8 @@
+ #define DLB2_PCI_ACS_CR                  0x8
+ #define DLB2_PCI_ACS_UF                  0x10
+ #define DLB2_PCI_ACS_EC                  0x20
++#define DLB2_PCI_PASID_CTRL              0x06    /* PASID control register */
@@ -31,3 +42,18 @@
- static int
- dlb2_pf_init_driver_state(struct dlb2_dev *dlb2_dev)
-@@ -514,6 +515,16 @@ dlb2_pf_reset(struct dlb2_dev *dlb2_dev)
+ static int dlb2_pci_find_capability(struct rte_pci_device *pdev, uint32_t id)
+ {
+@@ -258,12 +261,14 @@ dlb2_pf_reset(struct dlb2_dev *dlb2_dev)
+ 	uint16_t rt_ctl_word;
+ 	uint32_t pri_reqs_dword;
+ 	uint16_t pri_ctrl_word;
++	uint16_t pasid_ctrl;
+ 
+ 	int pcie_cap_offset;
+ 	int pri_cap_offset;
+ 	int msix_cap_offset;
+ 	int err_cap_offset;
+ 	int acs_cap_offset;
++	int pasid_cap_offset;
+ 	int wait_count;
+ 
+ 	uint16_t devsta_busy_word;
+@@ -583,6 +588,28 @@ dlb2_pf_reset(struct dlb2_dev *dlb2_dev)
@@ -37,2 +63,3 @@
-+	/* Disable PASID if it is enabled by default, which
-+	 * breaks the DLB if enabled.
++	/* The current Linux kernel vfio driver does not expose PASID capability to
++	 * users. It also enables PASID by default, which breaks DLB PF PMD. We have
++	 * to use the hardcoded offset for now to disable PASID.
@@ -40,3 +67,13 @@
-+	off = DLB2_PCI_PASID_CAP_OFFSET + RTE_PCI_PASID_CTRL;
-+	if (rte_pci_pasid_set_state(pdev, off, false)) {
-+		DLB2_LOG_ERR("[%s()] failed to write the pcie config space at offset %d\n",
++	pasid_cap_offset = DLB2_PCI_PASID_CAP_OFFSET;
++
++	off = pasid_cap_offset + DLB2_PCI_PASID_CTRL;
++	if (rte_pci_read_config(pdev, &pasid_ctrl, 2, off) != 2)
++		pasid_ctrl = 0;
++
++	if (pasid_ctrl) {
++		DLB2_INFO(dlb2_dev, "DLB2 disabling pasid...\n");
++
++		pasid_ctrl = 0;
++		ret = rte_pci_write_config(pdev, &pasid_ctrl, 2, off);
++		if (ret != 2) {
++			DLB2_LOG_ERR("[%s()] failed to write the pcie config space at offset %d\n",
@@ -44 +81,2 @@
-+		return -1;
++			return ret;
++		}
@@ -47,3 +85,3 @@
- 	return 0;
- }
- 
+ 	/* Disable PASID if it is enabled by default, which
+ 	 * breaks the DLB if enabled.
+ 	 */

^ permalink raw reply	[flat|nested] 266+ messages in thread

end of thread, other threads:[~2023-12-11 10:23 UTC | newest]

Thread overview: 266+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-22 14:20 patch has been queued to stable release 22.11.4 Xueming Li
2023-10-22 14:20 ` patch 'ci: fix race on container image name' " Xueming Li
2023-10-22 14:20 ` patch 'mempool: fix default ops for an empty mempool' " Xueming Li
2023-10-22 14:20 ` patch 'eal/unix: fix firmware reading with external xz helper' " Xueming Li
2023-10-22 14:20 ` patch 'rawdev: fix device class in log message' " Xueming Li
2023-10-22 14:20 ` patch 'net/bonding: fix header for C++' " Xueming Li
2023-10-22 14:20 ` patch 'net/sfc: set max Rx packet length for representors' " Xueming Li
2023-10-22 14:20 ` patch 'net/sfc: account for data offset on Tx' " Xueming Li
2023-10-22 14:20 ` patch 'net/sfc: add missing error code indication to MAE init path' " Xueming Li
2023-10-22 14:20 ` patch 'net/nfp: fix control message packets' " Xueming Li
2023-10-22 14:20 ` patch 'net/hns3: fix VF default MAC modified when set failed' " Xueming Li
2023-10-22 14:20 ` patch 'net/hns3: fix error code for multicast resource' " Xueming Li
2023-10-22 14:20 ` patch 'net/hns3: fix flushing multicast MAC address' " Xueming Li
2023-10-22 14:20 ` patch 'net/hns3: fix traffic management thread safety' " Xueming Li
2023-10-22 14:20 ` patch 'net/hns3: fix traffic management dump text alignment' " Xueming Li
2023-10-22 14:20 ` patch 'app/test: fix reference to master in bonding test' " Xueming Li
2023-10-22 14:20 ` patch 'net/mana: enable 32-bit build' " Xueming Li
2023-10-22 14:20 ` patch 'net/mana: add 32-bit short doorbell' " Xueming Li
2023-10-22 14:20 ` patch 'net/hns3: fix order in NEON Rx' " Xueming Li
2023-10-22 14:20 ` patch 'random: initialize state for unregistered non-EAL threads' " Xueming Li
2023-10-22 14:20 ` patch 'bus/dpaa: fix build with asserts for GCC 13' " Xueming Li
2023-10-22 14:20 ` patch 'gpu/cuda: fix build with external GDRCopy' " Xueming Li
2023-10-22 14:20 ` patch 'mem: fix deadlock with multiprocess' " Xueming Li
2023-10-22 14:20 ` patch 'hash: align SSE lookup to scalar implementation' " Xueming Li
2023-10-22 14:20 ` patch 'net/netvsc: increase VSP response timeout to 60 seconds' " Xueming Li
2023-10-22 14:20 ` patch 'net/txgbe: add Tx queue maximum limit' " Xueming Li
2023-10-22 14:20 ` patch 'net/txgbe: fix GRE tunnel packet checksum' " Xueming Li
2023-10-22 14:20 ` patch 'net/ngbe: fix flow control' " Xueming Li
2023-10-22 14:20 ` patch 'net/ngbe: prevent NIC from slowing down link speed' " Xueming Li
2023-10-22 14:20 ` patch 'net/txgbe: reconfigure MAC Rx when link update' " Xueming Li
2023-10-22 14:20 ` patch 'net/ngbe: " Xueming Li
2023-10-22 14:21 ` patch 'net/txgbe: keep link down after device close' " Xueming Li
2023-10-22 14:21 ` patch 'net/ngbe: " Xueming Li
2023-10-22 14:21 ` patch 'net/txgbe: check process type in close operation' " Xueming Li
2023-10-22 14:21 ` patch 'net/ngbe: " Xueming Li
2023-10-22 14:21 ` patch 'net/tap: use MAC address parse API instead of local parser' " Xueming Li
2023-10-22 14:21 ` patch 'net/gve: fix max MTU limit' " Xueming Li
2023-10-23 22:01   ` Joshua Washington
2023-10-24  7:51     ` Xueming(Steven) Li
2023-10-22 14:21 ` patch 'app/testpmd: fix help string' " Xueming Li
2023-10-22 14:21 ` patch 'test: fix named test macro' " Xueming Li
2023-10-22 14:21 ` patch 'cryptodev: add missing doc for security context' " Xueming Li
2023-10-22 14:21 ` patch 'crypto/dpaa2_sec: fix debug prints' " Xueming Li
2023-10-22 14:21 ` patch 'crypto/dpaa_sec: " Xueming Li
2023-10-22 14:21 ` patch 'doc: replace code blocks with includes in security guide' " Xueming Li
2023-10-22 14:21 ` patch 'test/security: fix IPv6 next header field' " Xueming Li
2023-10-22 14:21 ` patch 'test/crypto: fix IV in some vectors' " Xueming Li
2023-10-22 14:21 ` patch 'test/crypto: skip some synchronous tests with CPU crypto' " Xueming Li
2023-10-22 14:21 ` patch 'test/crypto: fix return value for GMAC case' " Xueming Li
2023-10-22 14:21 ` patch 'test/crypto: fix typo in asym tests' " Xueming Li
2023-10-22 14:21 ` patch 'crypto/qat: fix raw API null algorithm digest' " Xueming Li
2023-10-22 14:21 ` patch 'crypto/cnxk: fix IPsec CCM and GCM capabilities' " Xueming Li
2023-10-22 14:21 ` patch 'crypto/ipsec_mb: add dependency check for cross build' " Xueming Li
2023-10-22 14:21 ` patch 'eventdev: fix symbol export for port maintenance' " Xueming Li
2023-10-22 14:21 ` patch 'bus/pci: fix device ID log' " Xueming Li
2023-10-22 14:21 ` patch 'eventdev: fix alignment padding' " Xueming Li
2023-10-22 14:21 ` patch 'event/cnxk: fix getwork mode devargs parsing' " Xueming Li
2023-10-22 14:21 ` patch 'event/cnxk: fix CASP usage for clang' " Xueming Li
2023-10-22 14:21 ` patch 'eventdev/crypto: fix circular buffer full case' " Xueming Li
2023-10-22 14:21 ` patch 'event/cnxk: fix return values for capability API' " Xueming Li
2023-10-22 14:21 ` patch 'test/event: fix crypto null device creation' " Xueming Li
2023-10-22 14:21 ` patch 'event/sw: remove obsolete comment' " Xueming Li
2023-10-22 14:21 ` patch 'event/cnxk: fix context flush in port cleanup' " Xueming Li
2023-10-22 14:21 ` patch 'eventdev/eth_rx: fix timestamp field register in mbuf' " Xueming Li
2023-10-22 14:21 ` patch 'event/sw: fix ordering corruption with op release' " Xueming Li
2023-10-22 14:21 ` patch 'common/cnxk: fix default flow action setting' " Xueming Li
2023-10-22 14:21 ` patch 'common/cnxk: fix xstats for different packet sizes' " Xueming Li
2023-10-22 14:21 ` patch 'common/cnxk: fix different size bit operations' " Xueming Li
2023-10-22 14:21 ` patch 'common/cnxk: fix incorrect aura ID' " Xueming Li
2023-10-22 14:21 ` patch 'net/cnxk: fix uninitialized variable' " Xueming Li
2023-10-22 14:21 ` patch 'common/cnxk: fix DPI memzone name' " Xueming Li
2023-10-22 14:21 ` patch 'dma/cnxk: fix device state' " Xueming Li
2023-10-22 14:21 ` patch 'dma/cnxk: fix device reconfigure' " Xueming Li
2023-10-22 14:21 ` patch 'dma/cnxk: fix chunk buffer failure return code' " Xueming Li
2023-10-22 14:21 ` patch 'mempool/cnxk: fix free from non-EAL threads' " Xueming Li
2023-10-22 14:21 ` patch 'mempool/cnxk: fix alloc " Xueming Li
2023-10-22 14:21 ` patch 'common/cnxk: fix aura disable handling' " Xueming Li
2023-10-22 14:21 ` patch 'common/cnxk: fix RSS key configuration' " Xueming Li
2023-10-22 14:21 ` patch 'common/cnxk: remove dead Meson code' " Xueming Li
2023-10-22 14:21 ` patch 'common/cnxk: replace direct API usage in REE' " Xueming Li
2023-10-22 14:21 ` patch 'vdpa/mlx5: fix unregister kick handler order' " Xueming Li
2023-10-22 14:21 ` patch 'baseband/acc: fix ACC100 HARQ input alignment' " Xueming Li
2023-10-22 14:21 ` patch 'app/bbdev: fix link with NXP LA12XX' " Xueming Li
2023-10-22 14:21 ` patch 'net/i40e: fix FDIR queue receives broadcast packets' " Xueming Li
2023-10-22 14:21 ` patch 'net/ice: write timestamp to first segment in scattered Rx' " Xueming Li
2023-10-22 14:21 ` patch 'net/iavf: fix VLAN offload strip flag' " Xueming Li
2023-10-22 14:21 ` patch 'net/iavf: fix checksum offloading' " Xueming Li
2023-10-22 14:21 ` patch 'net/i40e: fix buffer leak on Rx reconfiguration' " Xueming Li
2023-10-22 14:21 ` patch 'net/ice: fix TM configuration clearing' " Xueming Li
2023-10-22 14:21 ` patch 'net/iavf: fix port stats " Xueming Li
2023-10-22 14:21 ` patch 'net/iavf: unregister interrupt handler before FD close' " Xueming Li
2023-10-22 14:21 ` patch 'net/iavf: fix ESN session update' " Xueming Li
2023-10-22 14:21 ` patch 'net/ice: fix initial link status' " Xueming Li
2023-10-22 14:22 ` patch 'net/iavf: fix Tx debug' " Xueming Li
2023-10-22 14:22 ` patch 'net/iavf: remove log from Tx prepare function' " Xueming Li
2023-10-22 14:22 ` patch 'net/iavf: fix TSO with big segments' " Xueming Li
2023-10-22 14:22 ` patch 'net/ice: remove log from Tx prepare function' " Xueming Li
2023-10-22 14:22 ` patch 'net/ice: fix TSO with big segments' " Xueming Li
2023-10-22 14:22 ` patch 'net/axgbe: identify CPU with cpuid' " Xueming Li
2023-10-22 14:22 ` patch 'net/ark: support single function with multiple port' " Xueming Li
2023-10-22 14:22 ` patch 'net/nfp: fix initialization of physical representors' " Xueming Li
2023-10-22 14:22 ` patch 'net/mlx5: fix leak in sysfs port name translation' " Xueming Li
2023-10-22 14:22 ` patch 'common/mlx5: replace use of PMD log type' " Xueming Li
2023-10-22 14:22 ` patch 'net/mlx5: fix jump ipool entry size' " Xueming Li
2023-10-22 14:22 ` patch 'net/mlx5/hws: fix field copy bind' " Xueming Li
2023-10-22 14:22 ` patch 'fib: fix adding default route overwriting entire table' " Xueming Li
2023-10-22 14:22 ` patch 'fib6: fix adding default route as first route' " Xueming Li
2023-10-22 14:22 ` patch 'net/mana: add missing new line to data path logs' " Xueming Li
2023-10-22 14:22 ` patch 'net/af_packet: fix Rx and Tx queue state' " Xueming Li
2023-10-22 14:22 ` patch 'net/af_xdp: " Xueming Li
2023-10-22 14:22 ` patch 'net/avp: " Xueming Li
2023-10-22 14:22 ` patch 'net/bnx2x: " Xueming Li
2023-10-22 14:22 ` patch 'net/bnxt: " Xueming Li
2023-10-22 14:22 ` patch 'net/bonding: " Xueming Li
2023-10-22 14:22 ` patch 'net/cxgbe: " Xueming Li
2023-10-22 14:22 ` patch 'net/dpaa: " Xueming Li
2023-10-22 14:22 ` patch 'net/dpaa2: " Xueming Li
2023-10-22 14:22 ` patch 'net/e1000: " Xueming Li
2023-10-22 14:22 ` patch 'net/ena: " Xueming Li
2023-10-22 14:22 ` patch 'net/enetc: " Xueming Li
2023-10-22 14:22 ` patch 'net/enic: " Xueming Li
2023-10-22 14:22 ` patch 'net/hinic: " Xueming Li
2023-10-22 14:22 ` patch 'net/ipn3ke: " Xueming Li
2023-10-22 14:22 ` patch 'net/memif: " Xueming Li
2023-10-22 14:22 ` patch 'net/mlx4: " Xueming Li
2023-10-22 14:22 ` patch 'net/mvneta: " Xueming Li
2023-10-22 14:22 ` patch 'net/mvpp2: " Xueming Li
2023-10-22 14:22 ` patch 'net/nfp: " Xueming Li
2023-10-22 14:22 ` patch 'net/ngbe: " Xueming Li
2023-10-22 14:22 ` patch 'net/null: " Xueming Li
2023-10-22 14:22 ` patch 'net/octeon_ep: " Xueming Li
2023-10-22 14:22 ` patch 'net/octeontx: " Xueming Li
2023-10-22 14:22 ` patch 'net/pfe: " Xueming Li
2023-10-22 14:22 ` patch 'net/ring: " Xueming Li
2023-10-22 14:22 ` patch 'net/sfc: " Xueming Li
2023-10-22 14:22 ` patch 'net/softnic: " Xueming Li
2023-10-22 14:22 ` patch 'net/txgbe: " Xueming Li
2023-10-22 14:22 ` patch 'net/vhost: " Xueming Li
2023-10-22 14:22 ` patch 'net/virtio: " Xueming Li
2023-10-22 14:22 ` patch 'net/vmxnet3: " Xueming Li
2023-10-22 14:22 ` patch 'app/testpmd: fix primary process not polling all queues' " Xueming Li
2023-10-22 14:22 ` patch 'net/bonding: fix link status callback stop' " Xueming Li
2023-10-22 14:22 ` patch 'ethdev: add check in async flow action query' " Xueming Li
2023-10-22 14:22 ` patch 'app/procinfo: remove unnecessary rte_malloc' " Xueming Li
2023-12-11 10:10 ` patch " Xueming Li
2023-12-11 10:10   ` patch 'bus/ifpga: fix driver header dependency' " Xueming Li
2023-12-11 10:10   ` patch 'malloc: remove return from void functions' " Xueming Li
2023-12-11 10:10   ` patch 'eventdev: fix device pointer for vdev-based devices' " Xueming Li
2023-12-11 10:10   ` patch 'eventdev: fix missing driver names in info struct' " Xueming Li
2023-12-11 10:10   ` patch 'net/virtio: fix missing next flag in Tx packed ring' " Xueming Li
2023-12-11 10:10   ` patch 'net/virtio: fix link state interrupt vector setting' " Xueming Li
2023-12-11 10:10   ` patch 'vhost: fix missing vring call check on virtqueue access' " Xueming Li
2023-12-11 10:10   ` patch 'vhost: fix missing " Xueming Li
2023-12-11 10:10   ` patch 'vhost: fix check on virtqueue access in async registration' " Xueming Li
2023-12-11 10:10   ` patch 'vhost: fix check on virtqueue access in in-flight getter' " Xueming Li
2023-12-11 10:10   ` patch 'vhost: fix missing lock protection in power monitor API' " Xueming Li
2023-12-11 10:10   ` patch 'vhost: fix checking virtqueue access in stats " Xueming Li
2023-12-11 10:10   ` patch 'common/cnxk: fix pool buffer size in opaque mode' " Xueming Li
2023-12-11 10:10   ` patch 'net/cnxk: fix data offset in vector Tx' " Xueming Li
2023-12-11 10:10   ` patch 'net/nfp: fix crash on close' " Xueming Li
2023-12-11 10:10   ` patch 'ethdev: fix function name in comment' " Xueming Li
2023-12-11 10:10   ` patch 'net/gve: update max Rx packet length to be based on MTU' " Xueming Li
2023-12-11 10:10   ` patch 'app/testpmd: fix early exit from signal' " Xueming Li
2023-12-11 10:10   ` patch 'net/hns3: fix typo in function name' " Xueming Li
2023-12-11 10:10   ` patch 'net/hns3: fix unchecked Rx free threshold' " Xueming Li
2023-12-11 10:10   ` patch 'net/hns3: fix double stats for IMP and global reset' " Xueming Li
2023-12-11 10:10   ` patch 'net/hns3: remove reset log in secondary' " Xueming Li
2023-12-11 10:10   ` patch 'net/hns3: fix multiple reset detected log' " Xueming Li
2023-12-11 10:10   ` patch 'net/hns3: fix IMP or global reset' " Xueming Li
2023-12-11 10:10   ` patch 'net/hns3: refactor interrupt state query' " Xueming Li
2023-12-11 10:10   ` patch 'net/nfp: fix reconfigure logic in PF initialization' " Xueming Li
2023-12-11 10:10   ` patch 'net/nfp: fix reconfigure logic in VF " Xueming Li
2023-12-11 10:10   ` patch 'test/bonding: remove unreachable statement' " Xueming Li
2023-12-11 10:10   ` patch 'test/bonding: add missing check' " Xueming Li
2023-12-11 10:10   ` patch 'net/bonding: fix possible overrun' " Xueming Li
2023-12-11 10:10   ` patch 'net/txgbe: add proper memory barriers in Rx' " Xueming Li
2023-12-11 10:10   ` patch 'net/ngbe: " Xueming Li
2023-12-11 10:10   ` patch 'ethdev: fix 32-bit build with GCC 13' " Xueming Li
2023-12-11 10:10   ` patch 'net/enic: avoid extra unlock in MTU set' " Xueming Li
2023-12-11 10:11   ` patch 'net/hns3: fix setting DCB capability' " Xueming Li
2023-12-11 10:11   ` patch 'net/hns3: fix LRO offload to report' " Xueming Li
2023-12-11 10:11   ` patch 'net/hns3: fix some return values' " Xueming Li
2023-12-11 10:11   ` patch 'net/hns3: fix some error logs' " Xueming Li
2023-12-11 10:11   ` patch 'net/hns3: keep set/get algo key functions local' " Xueming Li
2023-12-11 10:11   ` patch 'net/hns3: fix uninitialized hash algo value' " Xueming Li
2023-12-11 10:11   ` patch 'net/tap: fix L4 checksum offloading' " Xueming Li
2023-12-11 10:11   ` patch 'net/tap: fix IPv4 " Xueming Li
2023-12-11 10:11   ` patch 'app/procinfo: fix RSS info' " Xueming Li
2023-12-11 10:11   ` patch 'app/procinfo: adjust format of " Xueming Li
2023-12-11 10:11   ` patch 'net/nfp: fix DMA error after abnormal exit' " Xueming Li
2023-12-11 10:11   ` patch 'net/tap: fix RSS for fragmented packets' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix decap action checking in sample flow' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix NIC flow capability query' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix E-Switch mirror flow rule validation' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix flow thread safety flag for HWS' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5/hws: fix integrity bits level' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix flow workspace double free in Windows' " Xueming Li
2023-12-11 10:11   ` patch 'common/mlx5: fix controller index parsing' " Xueming Li
2023-12-11 10:11   ` patch 'net/ice: fix L1 check interval' " Xueming Li
2023-12-11 10:11   ` patch 'net/iavf: fix Tx offload mask' " Xueming Li
2023-12-11 10:11   ` patch 'net/iavf: fix indent in Tx path' " Xueming Li
2023-12-11 10:11   ` patch 'net/iavf: fix Tx offload flags check' " Xueming Li
2023-12-11 10:11   ` patch 'net/ice: fix DCF port statistics' " Xueming Li
2023-12-11 10:11   ` patch 'doc: update kernel module entry in QAT guide' " Xueming Li
2023-12-11 10:11   ` patch 'crypto/nitrox: fix panic with high number of segments' " Xueming Li
2023-12-11 10:11   ` patch 'net/iavf: fix Tx preparation' " Xueming Li
2023-12-11 10:11   ` patch 'net/ice: " Xueming Li
2023-12-11 10:11   ` patch 'config/arm: fix aarch32 build with GCC 13' " Xueming Li
2023-12-11 10:11   ` patch 'build: add libarchive to optional external dependencies' " Xueming Li
2023-12-11 10:11   ` patch 'bus/pci: add PASID control' " Xueming Li
2023-12-11 10:11   ` patch 'event/dlb2: disable PASID' " Xueming Li
2023-12-11 10:11   ` patch 'app/dumpcap: fix mbuf pool ring type' " Xueming Li
2023-12-11 10:11   ` patch 'event/dlb2: fix name check in self-test' " Xueming Li
2023-12-11 10:11   ` patch 'baseband/acc: fix TB mode on VRB1' " Xueming Li
2023-12-11 10:11   ` patch 'test/bbdev: fix Python script subprocess' " Xueming Li
2023-12-11 10:11   ` patch 'test/bbdev: assert failed test for queue configure' " Xueming Li
2023-12-11 10:11   ` patch 'net/ice: fix crash on closing representor ports' " Xueming Li
2023-12-11 10:11   ` patch 'common/cnxk: fix SDP channel mask' " Xueming Li
2023-12-11 10:11   ` patch 'event/dlb2: fix missing queue ordering capability flag' " Xueming Li
2023-12-11 10:11   ` patch 'meter: fix RFC4115 trTCM API Doxygen' " Xueming Li
2023-12-11 10:11   ` patch 'net/sfc: remove null dereference in log' " Xueming Li
2023-12-11 10:11   ` patch 'app/testpmd: remove useless check in TSO command' " Xueming Li
2023-12-11 10:11   ` patch 'ethdev: account for smaller MTU when setting default' " Xueming Li
2023-12-11 10:11   ` patch 'test/bonding: fix uninitialized RSS configuration' " Xueming Li
2023-12-11 10:11   ` patch 'net/hns3: fix mailbox sync' " Xueming Li
2023-12-11 10:11   ` patch 'app/testpmd: fix tunnel TSO capability check' " Xueming Li
2023-12-11 10:11   ` patch 'app/testpmd: add explicit check for tunnel TSO' " Xueming Li
2023-12-11 10:11   ` patch 'app/testpmd: fix tunnel TSO configuration' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix unlock mismatch' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix validation of sample encap flow action' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix counter query during port close' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix missing flow rules for external SQ' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix destroying external representor flow' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix use after free on Rx queue start' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix hairpin queue unbind' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix hairpin queue states' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix multi-segment Tx inline data length' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: fix shared Rx queue list management' " Xueming Li
2023-12-11 10:11   ` patch 'net/mlx5: zero UDP checksum over IPv4 in encapsulation' " Xueming Li
2023-12-11 10:12   ` patch 'net/mlx5: fix MPRQ stride size check' " Xueming Li
2023-12-11 10:12   ` patch 'eal/riscv: fix vector type alignment' " Xueming Li
2023-12-11 10:12   ` patch 'net/txgbe: fix out of bound access' " Xueming Li
2023-12-11 10:12   ` patch 'doc: fix hns3 build option about max queue number' " Xueming Li
2023-12-11 10:12   ` patch 'doc: update features in hns3 guide' " Xueming Li
2023-12-11 10:12   ` patch 'doc: fix RSS flow description " Xueming Li
2023-12-11 10:12   ` patch 'doc: update versions recommendations for i40e and ice' " Xueming Li
2023-12-11 10:12   ` patch 'net/mlx5: fix offset size in conntrack flow action' " Xueming Li
2023-12-11 10:12   ` patch 'examples/ipsec-secgw: fix partial overflow' " Xueming Li
2023-12-11 10:12   ` patch 'config: fix RISC-V native build' " Xueming Li
2023-12-11 10:12   ` patch 'eal/windows: fix build with recent MinGW' " Xueming Li
2023-12-11 10:12   ` patch 'pdump: fix error number on IPC response' " Xueming Li
2023-12-11 10:12   ` patch 'app/dumpcap: allow multiple invocations' " Xueming Li
2023-12-11 10:12   ` patch 'examples/ethtool: fix pause configuration' " Xueming Li
2023-12-11 10:12   ` patch 'usertools/pmdinfo: fix usage typos' " Xueming Li
2023-12-11 10:12   ` patch 'test/hash: fix creation error log' " Xueming Li
2023-12-11 10:12   ` patch 'app/pipeline: add sigint handler' " Xueming Li
2023-12-11 10:12   ` patch 'doc: remove restriction on ixgbe vector support' " Xueming Li
2023-12-11 10:12   ` patch 'doc: fix some ordered lists' " Xueming Li
2023-12-11 10:12   ` patch 'doc: remove number of commands in vDPA guide' " Xueming Li
2023-12-11 10:12   ` patch 'mempool: fix get function documentation' " Xueming Li
2023-12-11 10:12   ` patch 'mempool: clarify enqueue/dequeue ops " Xueming Li
2023-12-11 10:12   ` patch 'ethdev: fix ESP packet type description' " Xueming Li
2023-12-11 10:12   ` patch 'net/hns3: fix ignored reset event' " Xueming Li
2023-12-11 10:12   ` patch 'net/hns3: fix reset event status' " Xueming Li
2023-12-11 10:12   ` patch 'net/hns3: fix VF reset handler interruption' " Xueming Li
2023-12-11 10:12   ` patch 'event/dlb2: fix disable PASID' " Xueming Li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).