patch 'net/ice/base: fix integer types in comparisons' has been queued to stable release 23.11.7
Shani Peretz
shperetz at nvidia.com
Wed Apr 15 11:59:13 CEST 2026
Hi,
FYI, your patch has been queued to stable release 23.11.7
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/19/26. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for 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/shanipr/dpdk-stable
This queued commit can be viewed at:
https://github.com/shanipr/dpdk-stable/commit/710108e1c27a0d01fe4e239db886b9df15843abf
Thanks.
Shani
---
>From 710108e1c27a0d01fe4e239db886b9df15843abf Mon Sep 17 00:00:00 2001
From: Maciej Paczkowski <maciej.paczkowski at intel.com>
Date: Tue, 10 Mar 2026 05:52:09 -0400
Subject: [PATCH] net/ice/base: fix integer types in comparisons
[ upstream commit 29e53e34ca2fbdf6f0df246582dda7aad40bb360 ]
- This patch resolves violations raised by Windows CodeQL
tool related to comparison-with-wider-type error.
- Added data type casting to resolve these errors.
Fixes: f3202a097f12 ("net/ice/base: add ACL module")
Fixes: c9e37832c95f ("net/ice/base: rework on bit ops")
Fixes: 18a6dd522289 ("net/ice/base: improve switch advanced rule")
Fixes: 88824213be8a ("net/ice/base: enable RSS for PFCP/L2TP/ESP/AH")
Fixes: d647871c50ab ("net/ice/base: fix bitmap set function")
Fixes: 1082f786547e ("net/ice/base: support DCB")
Fixes: 93e84b1bfc92 ("net/ice/base: add basic Tx scheduler")
Fixes: fed0c5ca5f19 ("net/ice/base: support programming a new switch recipe")
Signed-off-by: Maciej Paczkowski <maciej.paczkowski at intel.com>
Signed-off-by: Soumyadeep Hore <soumyadeep.hore at intel.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
---
drivers/net/ice/base/ice_acl_ctrl.c | 6 +++---
drivers/net/ice/base/ice_bitops.h | 14 +++++++-------
drivers/net/ice/base/ice_dcb.c | 8 ++++----
drivers/net/ice/base/ice_sched.c | 3 ++-
drivers/net/ice/base/ice_switch.c | 2 +-
5 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/drivers/net/ice/base/ice_acl_ctrl.c b/drivers/net/ice/base/ice_acl_ctrl.c
index 2223a8313b..3d8c1abc91 100644
--- a/drivers/net/ice/base/ice_acl_ctrl.c
+++ b/drivers/net/ice/base/ice_acl_ctrl.c
@@ -494,7 +494,7 @@ ice_acl_alloc_partition(struct ice_hw *hw, struct ice_acl_scen *req)
* is available.
*/
p = dir > 0 ? i : ICE_AQC_MAX_TCAM_ALLOC_UNITS - i - 1;
- for (w = row; w < row + width && avail; w++) {
+ for (w = row; w < (u16)(row + width) && avail; w++) {
u16 b;
b = (w * ICE_AQC_MAX_TCAM_ALLOC_UNITS) + p;
@@ -644,7 +644,7 @@ ice_acl_set_scen_chnk_msk(struct ice_aqc_acl_scen *scen_buf,
* For each TCAM, there will be (ICE_AQC_ACL_TCAM_DEPTH
* / ICE_ACL_ENTRY_ALLOC_UNIT) or 8 chunks.
*/
- for (i = tcam_idx; i < tcam_idx + num_cscd; i++)
+ for (i = tcam_idx; i < (u16)(tcam_idx + num_cscd); i++)
scen_buf->tcam_cfg[i].chnk_msk |= BIT(chnk_offst);
chnk_offst = (chnk_offst + 1) % ICE_AQC_MAX_TCAM_ALLOC_UNITS;
@@ -799,7 +799,7 @@ ice_acl_create_scen(struct ice_hw *hw, u16 match_width, u16 num_entries,
ICE_AQC_ACL_ALLOC_SCE_START_CMP;
/* cascade TCAMs up to the width of the scenario */
- for (i = k; i < cascade_cnt + k; i++) {
+ for (i = k; i < (u8)(cascade_cnt + k); i++) {
ice_acl_fill_tcam_select(&scen_buf, scen, i, i - k);
ice_acl_assign_act_mem_for_scen(hw->acl_tbl, scen,
&scen_buf,
diff --git a/drivers/net/ice/base/ice_bitops.h b/drivers/net/ice/base/ice_bitops.h
index 5c17bcb674..8c3c2c1174 100644
--- a/drivers/net/ice/base/ice_bitops.h
+++ b/drivers/net/ice/base/ice_bitops.h
@@ -188,7 +188,7 @@ ice_and_bitmap(ice_bitmap_t *dst, const ice_bitmap_t *bmp1,
u16 i;
/* Handle all but the last chunk */
- for (i = 0; i < BITS_TO_CHUNKS(size) - 1; i++) {
+ for (i = 0; i < (u16)(BITS_TO_CHUNKS(size) - 1); i++) {
dst[i] = bmp1[i] & bmp2[i];
res |= dst[i];
}
@@ -225,7 +225,7 @@ ice_or_bitmap(ice_bitmap_t *dst, const ice_bitmap_t *bmp1,
u16 i;
/* Handle all but last chunk */
- for (i = 0; i < BITS_TO_CHUNKS(size) - 1; i++)
+ for (i = 0; i < (u16)(BITS_TO_CHUNKS(size) - 1); i++)
dst[i] = bmp1[i] | bmp2[i];
/* We want to only OR bits within the size. Furthermore, we also do
@@ -256,7 +256,7 @@ ice_xor_bitmap(ice_bitmap_t *dst, const ice_bitmap_t *bmp1,
u16 i;
/* Handle all but last chunk */
- for (i = 0; i < BITS_TO_CHUNKS(size) - 1; i++)
+ for (i = 0; i < (u16)(BITS_TO_CHUNKS(size) - 1); i++)
dst[i] = bmp1[i] ^ bmp2[i];
/* We want to only XOR bits within the size. Furthermore, we also do
@@ -287,7 +287,7 @@ ice_andnot_bitmap(ice_bitmap_t *dst, const ice_bitmap_t *bmp1,
u16 i;
/* Handle all but last chunk */
- for (i = 0; i < BITS_TO_CHUNKS(size) - 1; i++)
+ for (i = 0; i < (u16)(BITS_TO_CHUNKS(size) - 1); i++)
dst[i] = bmp1[i] & ~bmp2[i];
/* We want to only clear bits within the size. Furthermore, we also do
@@ -330,7 +330,7 @@ ice_find_next_bit(const ice_bitmap_t *bitmap, u16 size, u16 offset)
}
/* Now we handle the remaining chunks, if any */
- for (i++; i < BITS_TO_CHUNKS(size); i++) {
+ for (i++; i < (u16)BITS_TO_CHUNKS(size); i++) {
if (bitmap[i] != 0) {
u16 off = i * BITS_PER_CHUNK;
@@ -405,7 +405,7 @@ ice_bitmap_set(ice_bitmap_t *dst, u16 pos, u16 num_bits)
{
u16 i;
- for (i = pos; i < pos + num_bits; i++)
+ for (i = pos; i < (u16)(pos + num_bits); i++)
ice_set_bit(i, dst);
}
@@ -447,7 +447,7 @@ ice_cmp_bitmap(ice_bitmap_t *bmp1, ice_bitmap_t *bmp2, u16 size)
u16 i;
/* Handle all but last chunk */
- for (i = 0; i < BITS_TO_CHUNKS(size) - 1; i++)
+ for (i = 0; i < (u16)(BITS_TO_CHUNKS(size) - 1); i++)
if (bmp1[i] != bmp2[i])
return false;
diff --git a/drivers/net/ice/base/ice_dcb.c b/drivers/net/ice/base/ice_dcb.c
index cc4e28a702..55359a6050 100644
--- a/drivers/net/ice/base/ice_dcb.c
+++ b/drivers/net/ice/base/ice_dcb.c
@@ -465,7 +465,7 @@ ice_parse_cee_app_tlv(struct ice_cee_feat_tlv *tlv, struct ice_dcbx_cfg *dcbcfg)
{
u16 len, typelen, offset = 0;
struct ice_cee_app_prio *app;
- u8 i;
+ u32 i;
typelen = NTOHS(tlv->hdr.typelen);
len = ((typelen & ICE_LLDP_TLV_LEN_M) >> ICE_LLDP_TLV_LEN_S);
@@ -790,8 +790,8 @@ ice_cee_to_dcb_cfg(struct ice_aqc_get_cee_dcb_cfg_resp *cee_cfg,
struct ice_port_info *pi)
{
u32 status, tlv_status = LE32_TO_CPU(cee_cfg->tlv_status);
- u32 ice_aqc_cee_status_mask, ice_aqc_cee_status_shift;
- u8 i, j, err, sync, oper, app_index, ice_app_sel_type;
+ u32 j, ice_aqc_cee_status_mask, ice_aqc_cee_status_shift;
+ u8 i, err, sync, oper, app_index, ice_app_sel_type;
u16 app_prio = LE16_TO_CPU(cee_cfg->oper_app_prio);
u16 ice_aqc_cee_app_mask, ice_aqc_cee_app_shift;
struct ice_dcbx_cfg *cmp_dcbcfg, *dcbcfg;
@@ -1268,7 +1268,7 @@ ice_add_ieee_app_pri_tlv(struct ice_lldp_org_tlv *tlv,
* Bits:|23 21|20 19|18 16|15 0|
* -----------------------------------------
*/
- while (i < dcbcfg->numapps) {
+ while (i < (u8)dcbcfg->numapps) {
priority = dcbcfg->app[i].priority & 0x7;
selector = dcbcfg->app[i].selector & 0x7;
buf[offset] = (priority << ICE_IEEE_APP_PRIO_S) | selector;
diff --git a/drivers/net/ice/base/ice_sched.c b/drivers/net/ice/base/ice_sched.c
index 21cfe53a6d..ac568c46f6 100644
--- a/drivers/net/ice/base/ice_sched.c
+++ b/drivers/net/ice/base/ice_sched.c
@@ -1239,7 +1239,8 @@ enum ice_status ice_sched_init_port(struct ice_port_info *pi)
struct ice_hw *hw;
u8 num_branches;
u16 num_elems;
- u8 i, j;
+ u8 i;
+ u16 j;
if (!pi)
return ICE_ERR_PARAM;
diff --git a/drivers/net/ice/base/ice_switch.c b/drivers/net/ice/base/ice_switch.c
index 15247ca2f6..77bdf8c3fc 100644
--- a/drivers/net/ice/base/ice_switch.c
+++ b/drivers/net/ice/base/ice_switch.c
@@ -7307,7 +7307,7 @@ ice_fill_fv_word_index(struct ice_hw *hw, struct LIST_HEAD_TYPE *fv_list,
struct ice_fv_word *pr;
bool found = false;
u16 mask;
- u8 j;
+ u16 j;
pr = &rg->r_group.pairs[i];
mask = rg->r_group.mask[i];
--
2.43.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2026-04-14 14:44:30.071205118 +0300
+++ 0012-net-ice-base-fix-integer-types-in-comparisons.patch 2026-04-14 14:44:28.439477000 +0300
@@ -1 +1 @@
-From 29e53e34ca2fbdf6f0df246582dda7aad40bb360 Mon Sep 17 00:00:00 2001
+From 710108e1c27a0d01fe4e239db886b9df15843abf Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 29e53e34ca2fbdf6f0df246582dda7aad40bb360 ]
+
@@ -19 +20,0 @@
-Cc: stable at dpdk.org
@@ -25,5 +26,5 @@
- drivers/net/intel/ice/base/ice_acl_ctrl.c | 6 +++---
- drivers/net/intel/ice/base/ice_bitops.h | 14 +++++++-------
- drivers/net/intel/ice/base/ice_dcb.c | 8 ++++----
- drivers/net/intel/ice/base/ice_sched.c | 3 ++-
- drivers/net/intel/ice/base/ice_switch.c | 2 +-
+ drivers/net/ice/base/ice_acl_ctrl.c | 6 +++---
+ drivers/net/ice/base/ice_bitops.h | 14 +++++++-------
+ drivers/net/ice/base/ice_dcb.c | 8 ++++----
+ drivers/net/ice/base/ice_sched.c | 3 ++-
+ drivers/net/ice/base/ice_switch.c | 2 +-
@@ -32,4 +33,4 @@
-diff --git a/drivers/net/intel/ice/base/ice_acl_ctrl.c b/drivers/net/intel/ice/base/ice_acl_ctrl.c
-index 6cee2c98ea..6ec9f7f754 100644
---- a/drivers/net/intel/ice/base/ice_acl_ctrl.c
-+++ b/drivers/net/intel/ice/base/ice_acl_ctrl.c
+diff --git a/drivers/net/ice/base/ice_acl_ctrl.c b/drivers/net/ice/base/ice_acl_ctrl.c
+index 2223a8313b..3d8c1abc91 100644
+--- a/drivers/net/ice/base/ice_acl_ctrl.c
++++ b/drivers/net/ice/base/ice_acl_ctrl.c
@@ -63,4 +64,4 @@
-diff --git a/drivers/net/intel/ice/base/ice_bitops.h b/drivers/net/intel/ice/base/ice_bitops.h
-index 85e14a2358..829b2062c8 100644
---- a/drivers/net/intel/ice/base/ice_bitops.h
-+++ b/drivers/net/intel/ice/base/ice_bitops.h
+diff --git a/drivers/net/ice/base/ice_bitops.h b/drivers/net/ice/base/ice_bitops.h
+index 5c17bcb674..8c3c2c1174 100644
+--- a/drivers/net/ice/base/ice_bitops.h
++++ b/drivers/net/ice/base/ice_bitops.h
@@ -130,4 +131,4 @@
-diff --git a/drivers/net/intel/ice/base/ice_dcb.c b/drivers/net/intel/ice/base/ice_dcb.c
-index 607af03525..f5fbf535d5 100644
---- a/drivers/net/intel/ice/base/ice_dcb.c
-+++ b/drivers/net/intel/ice/base/ice_dcb.c
+diff --git a/drivers/net/ice/base/ice_dcb.c b/drivers/net/ice/base/ice_dcb.c
+index cc4e28a702..55359a6050 100644
+--- a/drivers/net/ice/base/ice_dcb.c
++++ b/drivers/net/ice/base/ice_dcb.c
@@ -154 +155 @@
-@@ -1324,7 +1324,7 @@ ice_add_ieee_app_pri_tlv(struct ice_lldp_org_tlv *tlv,
+@@ -1268,7 +1268,7 @@ ice_add_ieee_app_pri_tlv(struct ice_lldp_org_tlv *tlv,
@@ -163,5 +164,6 @@
-diff --git a/drivers/net/intel/ice/base/ice_sched.c b/drivers/net/intel/ice/base/ice_sched.c
-index 3a0907eda7..2b867b74de 100644
---- a/drivers/net/intel/ice/base/ice_sched.c
-+++ b/drivers/net/intel/ice/base/ice_sched.c
-@@ -1257,7 +1257,8 @@ int ice_sched_init_port(struct ice_port_info *pi)
+diff --git a/drivers/net/ice/base/ice_sched.c b/drivers/net/ice/base/ice_sched.c
+index 21cfe53a6d..ac568c46f6 100644
+--- a/drivers/net/ice/base/ice_sched.c
++++ b/drivers/net/ice/base/ice_sched.c
+@@ -1239,7 +1239,8 @@ enum ice_status ice_sched_init_port(struct ice_port_info *pi)
+ struct ice_hw *hw;
@@ -170 +171,0 @@
- int status;
@@ -177,5 +178,5 @@
-diff --git a/drivers/net/intel/ice/base/ice_switch.c b/drivers/net/intel/ice/base/ice_switch.c
-index fff61b89d7..94099c5215 100644
---- a/drivers/net/intel/ice/base/ice_switch.c
-+++ b/drivers/net/intel/ice/base/ice_switch.c
-@@ -7437,7 +7437,7 @@ ice_fill_fv_word_index(struct ice_hw *hw, struct LIST_HEAD_TYPE *fv_list,
+diff --git a/drivers/net/ice/base/ice_switch.c b/drivers/net/ice/base/ice_switch.c
+index 15247ca2f6..77bdf8c3fc 100644
+--- a/drivers/net/ice/base/ice_switch.c
++++ b/drivers/net/ice/base/ice_switch.c
+@@ -7307,7 +7307,7 @@ ice_fill_fv_word_index(struct ice_hw *hw, struct LIST_HEAD_TYPE *fv_list,
More information about the stable
mailing list