From 148fdf2d3537cfbb912e9c619ace7205741d9a25 Mon Sep 17 00:00:00 2001 From: Wenjun Wu Date: Mon, 21 Jun 2021 16:59:23 +0800 Subject: [PATCH] net/ice/base: fix first profile mask Since each PF does not share the same structure space, the first mask value should start at 0 instead of hw->pf_id * per_pf to avoid address overflow. Otherwise, address space will overlap when masks.first + masks.count > ICE_PROF_MASK_COUNT, and it may lead to unexpected variable assignment, which causes segmentation fault. Fixes: 9467486f179f ("net/ice/base: enable masking for RSS and FD field vectors") Cc: stable@dpdk.org Signed-off-by: Wenjun Wu Acked-by: Qi Zhang --- drivers/net/ice/base/ice_flex_pipe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ice/base/ice_flex_pipe.c b/drivers/net/ice/base/ice_flex_pipe.c index b3cea731f3..829d88bba6 100644 --- a/drivers/net/ice/base/ice_flex_pipe.c +++ b/drivers/net/ice/base/ice_flex_pipe.c @@ -3432,7 +3432,7 @@ static void ice_init_prof_masks(struct ice_hw *hw, enum ice_block blk) per_pf = ICE_PROF_MASK_COUNT / hw->dev_caps.num_funcs; hw->blk[blk].masks.count = per_pf; - hw->blk[blk].masks.first = hw->pf_id * per_pf; + hw->blk[blk].masks.first = 0; ice_memset(hw->blk[blk].masks.masks, 0, sizeof(hw->blk[blk].masks.masks), ICE_NONDMA_MEM); -- 2.20.1