From 3e87e12dc8bcb1d06dafcb302b056fee51deb090 Mon Sep 17 00:00:00 2001 From: Wenxuan Wu Date: Thu, 23 Jun 2022 17:01:05 +0800 Subject: [PATCH] net/ice/base: fix build with GCC 12 GCC 12 with -O2 flag would raise the following warning: ../drivers/net/ice/base/ice_switch.c:7220:61: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=] 7220 | buf[recps].content.lkup_indx[i + 1] = entry->fv_idx[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ This patch changed the type of fv_idx in struct ice_recp_grp_entry to align with its callers which are also u8 type. Fixes: 04b8ec1ea807 ("net/ice/base: add protocol structures and defines") Cc: stable@dpdk.org Signed-off-by: Wenxuan Wu Acked-by: Qi Zhang --- drivers/net/ice/base/ice_flex_pipe.c | 2 +- drivers/net/ice/base/ice_flex_pipe.h | 2 +- drivers/net/ice/base/ice_protocol_type.h | 2 +- drivers/net/ice/base/ice_switch.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/ice/base/ice_flex_pipe.c b/drivers/net/ice/base/ice_flex_pipe.c index f6a29f87c5..3918169001 100644 --- a/drivers/net/ice/base/ice_flex_pipe.c +++ b/drivers/net/ice/base/ice_flex_pipe.c @@ -2564,7 +2564,7 @@ ice_destroy_tunnel_end: * @off: variable to receive the protocol offset */ enum ice_status -ice_find_prot_off(struct ice_hw *hw, enum ice_block blk, u8 prof, u16 fv_idx, +ice_find_prot_off(struct ice_hw *hw, enum ice_block blk, u8 prof, u8 fv_idx, u8 *prot, u16 *off) { struct ice_fv_word *fv_ext; diff --git a/drivers/net/ice/base/ice_flex_pipe.h b/drivers/net/ice/base/ice_flex_pipe.h index 23ba45564a..ab897de4f3 100644 --- a/drivers/net/ice/base/ice_flex_pipe.h +++ b/drivers/net/ice/base/ice_flex_pipe.h @@ -25,7 +25,7 @@ enum ice_status ice_acquire_change_lock(struct ice_hw *hw, enum ice_aq_res_access_type access); void ice_release_change_lock(struct ice_hw *hw); enum ice_status -ice_find_prot_off(struct ice_hw *hw, enum ice_block blk, u8 prof, u16 fv_idx, +ice_find_prot_off(struct ice_hw *hw, enum ice_block blk, u8 prof, u8 fv_idx, u8 *prot, u16 *off); enum ice_status ice_find_label_value(struct ice_seg *ice_seg, char const *name, u32 type, diff --git a/drivers/net/ice/base/ice_protocol_type.h b/drivers/net/ice/base/ice_protocol_type.h index 8fb95a8a8d..74107de988 100644 --- a/drivers/net/ice/base/ice_protocol_type.h +++ b/drivers/net/ice/base/ice_protocol_type.h @@ -424,7 +424,7 @@ struct ice_recp_grp_entry { #define ICE_INVAL_CHAIN_IND 0xFF u16 rid; u8 chain_idx; - u16 fv_idx[ICE_NUM_WORDS_RECIPE]; + u8 fv_idx[ICE_NUM_WORDS_RECIPE]; u16 fv_mask[ICE_NUM_WORDS_RECIPE]; struct ice_pref_recipe_group r_group; }; diff --git a/drivers/net/ice/base/ice_switch.h b/drivers/net/ice/base/ice_switch.h index a2b3c80107..c67cd09d21 100644 --- a/drivers/net/ice/base/ice_switch.h +++ b/drivers/net/ice/base/ice_switch.h @@ -203,7 +203,7 @@ struct ice_fltr_info { struct ice_update_recipe_lkup_idx_params { u16 rid; - u16 fv_idx; + u8 fv_idx; bool ignore_valid; u16 mask; bool mask_valid; -- 2.39.5