patch 'net/e1000/base: fix data type in MAC hash' has been queued to stable release 22.11.8

luca.boccassi at gmail.com luca.boccassi at gmail.com
Mon Feb 17 18:04:24 CET 2025


Hi,

FYI, your patch has been queued to stable release 22.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/19/25. So please
shout if anyone has objections.

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

Thanks.

Luca Boccassi

---
>From 40990fddbb7b3a80842cfa132bde384f0375e0df Mon Sep 17 00:00:00 2001
From: Barbara Skobiej <barbara.skobiej at intel.com>
Date: Thu, 6 Feb 2025 16:08:41 +0000
Subject: [PATCH] net/e1000/base: fix data type in MAC hash

[ upstream commit 458734aaac3225d98aeee5f4c45b3d39a7d82949 ]

One of the bit shifts in MAC hash calculation triggers a static analysis
warning about a potential overflow. Fix the data type to avoid this.

Fixes: af75078fece3 ("first public release")

Signed-off-by: Barbara Skobiej <barbara.skobiej at intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
---
 drivers/net/e1000/base/e1000_mac.c | 6 ++++--
 drivers/net/e1000/base/e1000_vf.c  | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/e1000/base/e1000_mac.c b/drivers/net/e1000/base/e1000_mac.c
index 2b8482e114..5bb77d9e09 100644
--- a/drivers/net/e1000/base/e1000_mac.c
+++ b/drivers/net/e1000/base/e1000_mac.c
@@ -541,8 +541,10 @@ u32 e1000_hash_mc_addr_generic(struct e1000_hw *hw, u8 *mc_addr)
 		break;
 	}
 
-	hash_value = hash_mask & (((mc_addr[4] >> (8 - bit_shift)) |
-				  (((u16) mc_addr[5]) << bit_shift)));
+	hash_value = (u32)mc_addr[4];
+	hash_value = hash_value >> (8 - bit_shift);
+	hash_value |= (((u32)mc_addr[5]) << bit_shift);
+	hash_value &= hash_mask;
 
 	return hash_value;
 }
diff --git a/drivers/net/e1000/base/e1000_vf.c b/drivers/net/e1000/base/e1000_vf.c
index 3d0383fcbb..fc30357c17 100644
--- a/drivers/net/e1000/base/e1000_vf.c
+++ b/drivers/net/e1000/base/e1000_vf.c
@@ -345,8 +345,10 @@ STATIC u32 e1000_hash_mc_addr_vf(struct e1000_hw *hw, u8 *mc_addr)
 	while (hash_mask >> bit_shift != 0xFF && bit_shift < 4)
 		bit_shift++;
 
-	hash_value = hash_mask & (((mc_addr[4] >> (8 - bit_shift)) |
-				  (((u16) mc_addr[5]) << bit_shift)));
+	hash_value = (u32)mc_addr[4];
+	hash_value = hash_value >> (8 - bit_shift);
+	hash_value |= (((u32)mc_addr[5]) << bit_shift);
+	hash_value &= hash_mask;
 
 	return hash_value;
 }
-- 
2.47.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-17 16:13:18.659792207 +0000
+++ 0051-net-e1000-base-fix-data-type-in-MAC-hash.patch	2025-02-17 16:13:16.846441592 +0000
@@ -1 +1 @@
-From 458734aaac3225d98aeee5f4c45b3d39a7d82949 Mon Sep 17 00:00:00 2001
+From 40990fddbb7b3a80842cfa132bde384f0375e0df Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 458734aaac3225d98aeee5f4c45b3d39a7d82949 ]
+
@@ -10 +11,0 @@
-Cc: stable at dpdk.org
@@ -16,2 +17,2 @@
- drivers/net/intel/e1000/base/e1000_mac.c | 6 ++++--
- drivers/net/intel/e1000/base/e1000_vf.c  | 6 ++++--
+ drivers/net/e1000/base/e1000_mac.c | 6 ++++--
+ drivers/net/e1000/base/e1000_vf.c  | 6 ++++--
@@ -20 +21 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_mac.c b/drivers/net/intel/e1000/base/e1000_mac.c
+diff --git a/drivers/net/e1000/base/e1000_mac.c b/drivers/net/e1000/base/e1000_mac.c
@@ -22,2 +23,2 @@
---- a/drivers/net/intel/e1000/base/e1000_mac.c
-+++ b/drivers/net/intel/e1000/base/e1000_mac.c
+--- a/drivers/net/e1000/base/e1000_mac.c
++++ b/drivers/net/e1000/base/e1000_mac.c
@@ -37 +38 @@
-diff --git a/drivers/net/intel/e1000/base/e1000_vf.c b/drivers/net/intel/e1000/base/e1000_vf.c
+diff --git a/drivers/net/e1000/base/e1000_vf.c b/drivers/net/e1000/base/e1000_vf.c
@@ -39,2 +40,2 @@
---- a/drivers/net/intel/e1000/base/e1000_vf.c
-+++ b/drivers/net/intel/e1000/base/e1000_vf.c
+--- a/drivers/net/e1000/base/e1000_vf.c
++++ b/drivers/net/e1000/base/e1000_vf.c


More information about the stable mailing list