[dpdk-stable] patch 'net/mlx4: optimize stack memory size in probe' has been queued to LTS release 18.11.10

Kevin Traynor ktraynor at redhat.com
Fri Aug 28 12:12:55 CEST 2020


Hi,

FYI, your patch has been queued to LTS release 18.11.10

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

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for 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/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/a1801c7bb86a0b24d5538aabb6af36100c78976c

Thanks.

Kevin.

---
>From a1801c7bb86a0b24d5538aabb6af36100c78976c Mon Sep 17 00:00:00 2001
From: Michael Baum <michaelba at mellanox.com>
Date: Tue, 21 Jul 2020 12:01:09 +0000
Subject: [PATCH] net/mlx4: optimize stack memory size in probe

[ upstream commit 4a28e831c97cd02e1646337ea6391288f7e8db05 ]

The mlx4_pci_probe function sets a pointer to the mlx4_priv structure,
and during that function fills its fields one by one with relevant
values.

It wants to put a value in the intr_handle field that has all its fields
zero except 2. To do so, it initializes a local struct rte_intr_handle
type variable and updates it only 2 fields and assigns it into the
appropriate field. However, it initializes a very large structure on the
stack while not at all certain that this place exists and in any case it
is very wasteful.

Reset all fields directly to the pointer by memset, then format the 2
fields to the relevant values.

Fixes: 63c2f23c852a ("net/mlx4: use a single interrupt handle")

Signed-off-by: Michael Baum <michaelba at mellanox.com>
Acked-by: Matan Azrad <matan at mellanox.com>
---
 drivers/net/mlx4/mlx4.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index 5e22ee4381..58152bb97a 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -795,8 +795,7 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
 		rte_eth_copy_pci_info(eth_dev, pci_dev);
 		/* Initialize local interrupt handle for current port. */
-		priv->intr_handle = (struct rte_intr_handle){
-			.fd = -1,
-			.type = RTE_INTR_HANDLE_EXT,
-		};
+		memset(&priv->intr_handle, 0, sizeof(struct rte_intr_handle));
+		priv->intr_handle.fd = -1;
+		priv->intr_handle.type = RTE_INTR_HANDLE_EXT;
 		/*
 		 * Override ethdev interrupt handle pointer with private
-- 
2.26.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-08-28 11:03:26.619864219 +0100
+++ 0029-net-mlx4-optimize-stack-memory-size-in-probe.patch	2020-08-28 11:03:25.957955716 +0100
@@ -1 +1 @@
-From 4a28e831c97cd02e1646337ea6391288f7e8db05 Mon Sep 17 00:00:00 2001
+From a1801c7bb86a0b24d5538aabb6af36100c78976c Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4a28e831c97cd02e1646337ea6391288f7e8db05 ]
+
@@ -21 +22,0 @@
-Cc: stable at dpdk.org
@@ -30 +31 @@
-index e619a749d9..71061a720f 100644
+index 5e22ee4381..58152bb97a 100644
@@ -33 +34 @@
-@@ -1030,8 +1030,7 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
+@@ -795,8 +795,7 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)



More information about the stable mailing list