On Fri, Mar 01, 2024 at 01:20:29PM +0800, Wenwu Ma wrote: > This patch fixes two null pointer dereferences detected by > coverity scan. > > Coverity issue: 414096 > Fixes: 6ccef90ff5d3 ("net/ice: support VSI level bandwidth config") > > Signed-off-by: Wenwu Ma <wenwux...@intel.com> > --- > drivers/net/ice/ice_tm.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ice/ice_tm.c b/drivers/net/ice/ice_tm.c > index fbab0b8808..e10ac855f9 100644 > --- a/drivers/net/ice/ice_tm.c > +++ b/drivers/net/ice/ice_tm.c > @@ -616,7 +616,10 @@ static int ice_set_node_rate(struct ice_hw *hw, > ICE_MAX_BW, > rate); > if (status) { > - PMD_DRV_LOG(ERR, "Failed to set max bandwidth for node %u", > tm_node->id); > + if (tm_node != NULL) > + PMD_DRV_LOG(ERR, "Failed to set max bandwidth for node > %u", tm_node->id); > + else > + PMD_DRV_LOG(ERR, "Failed to set max bandwidth"); > return -EINVAL; > } > > @@ -630,7 +633,10 @@ static int ice_set_node_rate(struct ice_hw *hw, > ICE_MIN_BW, > rate); > if (status) { > - PMD_DRV_LOG(ERR, "Failed to set min bandwidth for node %u", > tm_node->id); > + if (tm_node != NULL) > + PMD_DRV_LOG(ERR, "Failed to set min bandwidth for node > %u", tm_node->id); > + else > + PMD_DRV_LOG(ERR, "Failed to set min bandwidth"); > return -EINVAL; > } > Hi Wenwu,
I'm not sure that this is the best fix here, since the error message doesn't seem particularly useful without the node id. Looking at the code, this is a static function, so non-public, and only called in three places in rte_tm.c: from ice_cfg_hw_node, ice_do_hierarchy_commit and ice_reset_nolead_nodes. In all three cases, failure of this function is immediately followed by a more specific error message from the calling function. Therefore, I think we can solve the coverity problem by just deleting the error prints from here completely, and let the callers manage error reporting. What do you think? /Bruce