patch 'compressdev: fix end of driver list' has been queued to stable release 20.11.8

luca.boccassi at gmail.com luca.boccassi at gmail.com
Thu Feb 23 10:36:26 CET 2023


Hi,

FYI, your patch has been queued to stable release 20.11.8

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

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

Queued patches are on a temporary branch at:
https://github.com/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/d734d76db5885a7c2399474ffb87b3077bd22158

Thanks.

Luca Boccassi

---
>From d734d76db5885a7c2399474ffb87b3077bd22158 Mon Sep 17 00:00:00 2001
From: Michael Baum <michaelba at nvidia.com>
Date: Wed, 1 Feb 2023 17:35:30 +0200
Subject: [PATCH] compressdev: fix end of driver list

[ upstream commit 33b84a2efca7ac188def108ba8b981daa7572b9a ]

The "rte_compressdev_info_get()" function retrieves the contextual
information of a device.
The output structure "dev_info" contains a list of devices supported
capabilities for each supported algorithm.

In this function description, it says the element after the last valid
element has op field set to "RTE_COMP_ALGO_LIST_END".
On the other hand, when this function used by
"rte_compressdev_capability_get()" function, it uses
"RTE_COMP_ALGO_UNSPECIFIED" as end of list as same as the
"RTE_COMP_END_OF_CAPABILITIES_LIST()".

The mlx5 and qat PMDs use "RTE_COMP_ALGO_LIST_END" as the end of
capabilities list. When "rte_compressdev_capability_get()" function is
called with unsupported algorithm, it might read memory out of bound.

This patch change the "rte_compressdev_info_get()" function description
to say using "RTE_COMP_ALGO_UNSPECIFIED" as the end of capabilities
list.
In addition, it moves both mlx5 and qat PMDs to use
"RTE_COMP_ALGO_UNSPECIFIED" through
"RTE_COMP_END_OF_CAPABILITIES_LIST()" macro.

Fixes: 5d432f364078 ("compressdev: add device capabilities")
Fixes: 2d148597ce76 ("compress/qat: add gen-specific implementation")
Fixes: 384bac8d6555 ("compress/mlx5: add supported capabilities")

Signed-off-by: Michael Baum <michaelba at nvidia.com>
Acked-by: Akhil Goyal <gakhil at marvell.com>
---
 drivers/compress/qat/qat_comp_pmd.c      | 2 +-
 lib/librte_compressdev/rte_compressdev.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/compress/qat/qat_comp_pmd.c b/drivers/compress/qat/qat_comp_pmd.c
index 4b8594d76c..31d561a808 100644
--- a/drivers/compress/qat/qat_comp_pmd.c
+++ b/drivers/compress/qat/qat_comp_pmd.c
@@ -30,7 +30,7 @@ static const struct rte_compressdev_capabilities qat_comp_gen_capabilities[] = {
 				RTE_COMP_FF_OOP_LB_IN_SGL_OUT |
 				RTE_COMP_FF_STATEFUL_DECOMPRESSION,
 	 .window_size = {.min = 15, .max = 15, .increment = 0} },
-	{RTE_COMP_ALGO_LIST_END, 0, {0, 0, 0} } };
+	 RTE_COMP_END_OF_CAPABILITIES_LIST() };
 
 static void
 qat_comp_stats_get(struct rte_compressdev *dev,
diff --git a/lib/librte_compressdev/rte_compressdev.h b/lib/librte_compressdev/rte_compressdev.h
index 2840c27c6c..d9b2fe40dc 100644
--- a/lib/librte_compressdev/rte_compressdev.h
+++ b/lib/librte_compressdev/rte_compressdev.h
@@ -353,7 +353,7 @@ rte_compressdev_stats_reset(uint8_t dev_id);
  * @note The capabilities field of dev_info is set to point to the first
  * element of an array of struct rte_compressdev_capabilities.
  * The element after the last valid element has it's op field set to
- * RTE_COMP_ALGO_LIST_END.
+ * RTE_COMP_ALGO_UNSPECIFIED.
  */
 __rte_experimental
 void
-- 
2.39.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-02-23 09:36:29.165615397 +0000
+++ 0022-compressdev-fix-end-of-driver-list.patch	2023-02-23 09:36:28.218169792 +0000
@@ -1 +1 @@
-From 33b84a2efca7ac188def108ba8b981daa7572b9a Mon Sep 17 00:00:00 2001
+From d734d76db5885a7c2399474ffb87b3077bd22158 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 33b84a2efca7ac188def108ba8b981daa7572b9a ]
+
@@ -32 +33,0 @@
-Cc: stable at dpdk.org
@@ -37,26 +38,9 @@
- drivers/compress/mlx5/mlx5_compress.c        | 4 +---
- drivers/compress/qat/dev/qat_comp_pmd_gen1.c | 2 +-
- drivers/compress/qat/dev/qat_comp_pmd_gen4.c | 2 +-
- lib/compressdev/rte_compressdev.h            | 2 +-
- 4 files changed, 4 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c
-index fb2bda9745..459e4b5e8a 100644
---- a/drivers/compress/mlx5/mlx5_compress.c
-+++ b/drivers/compress/mlx5/mlx5_compress.c
-@@ -96,9 +96,7 @@ static const struct rte_compressdev_capabilities mlx5_caps[] = {
- 				      RTE_COMP_FF_HUFFMAN_DYNAMIC,
- 		.window_size = {.min = 10, .max = 15, .increment = 1},
- 	},
--	{
--		.algo = RTE_COMP_ALGO_LIST_END,
--	}
-+	RTE_COMP_END_OF_CAPABILITIES_LIST()
- };
- 
- static void
-diff --git a/drivers/compress/qat/dev/qat_comp_pmd_gen1.c b/drivers/compress/qat/dev/qat_comp_pmd_gen1.c
-index 12d9d89072..3a8484eef1 100644
---- a/drivers/compress/qat/dev/qat_comp_pmd_gen1.c
-+++ b/drivers/compress/qat/dev/qat_comp_pmd_gen1.c
-@@ -26,7 +26,7 @@ const struct rte_compressdev_capabilities qat_gen1_comp_capabilities[] = {
+ drivers/compress/qat/qat_comp_pmd.c      | 2 +-
+ lib/librte_compressdev/rte_compressdev.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/compress/qat/qat_comp_pmd.c b/drivers/compress/qat/qat_comp_pmd.c
+index 4b8594d76c..31d561a808 100644
+--- a/drivers/compress/qat/qat_comp_pmd.c
++++ b/drivers/compress/qat/qat_comp_pmd.c
+@@ -30,7 +30,7 @@ static const struct rte_compressdev_capabilities qat_comp_gen_capabilities[] = {
@@ -69,19 +53,6 @@
- static int
- qat_comp_dev_config_gen1(struct rte_compressdev *dev,
-diff --git a/drivers/compress/qat/dev/qat_comp_pmd_gen4.c b/drivers/compress/qat/dev/qat_comp_pmd_gen4.c
-index 79b2ceb414..05906f13e0 100644
---- a/drivers/compress/qat/dev/qat_comp_pmd_gen4.c
-+++ b/drivers/compress/qat/dev/qat_comp_pmd_gen4.c
-@@ -25,7 +25,7 @@ qat_gen4_comp_capabilities[] = {
- 				RTE_COMP_FF_OOP_SGL_IN_LB_OUT |
- 				RTE_COMP_FF_OOP_LB_IN_SGL_OUT,
- 	 .window_size = {.min = 15, .max = 15, .increment = 0} },
--	{RTE_COMP_ALGO_LIST_END, 0, {0, 0, 0} } };
-+	 RTE_COMP_END_OF_CAPABILITIES_LIST() };
- 
- static int
- qat_comp_dev_config_gen4(struct rte_compressdev *dev,
-diff --git a/lib/compressdev/rte_compressdev.h b/lib/compressdev/rte_compressdev.h
-index 42bda9fc79..7eb5c58798 100644
---- a/lib/compressdev/rte_compressdev.h
-+++ b/lib/compressdev/rte_compressdev.h
+ static void
+ qat_comp_stats_get(struct rte_compressdev *dev,
+diff --git a/lib/librte_compressdev/rte_compressdev.h b/lib/librte_compressdev/rte_compressdev.h
+index 2840c27c6c..d9b2fe40dc 100644
+--- a/lib/librte_compressdev/rte_compressdev.h
++++ b/lib/librte_compressdev/rte_compressdev.h


More information about the stable mailing list