net/ice: fix coverity issues

Message ID 1555551081-29524-1-git-send-email-wenzhuo.lu@intel.com
State Superseded, archived
Delegated to: Qi Zhang
Headers show
Series
  • net/ice: fix coverity issues
Related show

Checks

Context Check Description
ci/intel-Performance-Testing success Performance Testing PASS
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/checkpatch success coding style OK

Commit Message

Wenzhuo Lu April 18, 2019, 1:31 a.m.
Fix the issues reported by Coverity check, "Null-checking
vsi suggests that it may be null, but it has already been
dereferenced on all paths leading to the check."

Fixes: e0dcf94a0d7f ("net/ice: support VLAN ops")
Fixes: ff963bfa7cb1 ("net/ice: support RSS")
Cc: stable@dpdk.org

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
---
 drivers/net/ice/ice_ethdev.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

Comments

Yang, Qiming April 22, 2019, 6:57 a.m. | #1
-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Wenzhuo Lu
Sent: Thursday, April 18, 2019 9:31 AM
To: dev@dpdk.org
Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; stable@dpdk.org
Subject: [dpdk-dev] [PATCH] net/ice: fix coverity issues

Fix the issues reported by Coverity check, "Null-checking vsi suggests that it may be null, but it has already been dereferenced on all paths leading to the check."

Fixes: e0dcf94a0d7f ("net/ice: support VLAN ops")
Fixes: ff963bfa7cb1 ("net/ice: support RSS")
Cc: stable@dpdk.org

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
---
 drivers/net/ice/ice_ethdev.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index 0946b19..5cca4a8 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -645,12 +645,14 @@ struct ice_xstats_name_off {
 	struct ice_fltr_list_entry *v_list_itr = NULL;
 	struct ice_vlan_filter *f;
 	struct LIST_HEAD_TYPE list_head;
-	struct ice_hw *hw = ICE_VSI_TO_HW(vsi);
+	struct ice_hw *hw;
 	int ret = 0;
 
 	if (!vsi || vlan_id > ETHER_MAX_VLAN_ID)
 		return -EINVAL;
 
+	hw = ICE_VSI_TO_HW(vsi);
+
 	/* If it's added and configured, return. */
 	f = ice_find_vlan_filter(vsi, vlan_id);
 	if (f) {
@@ -710,7 +712,7 @@ struct ice_xstats_name_off {
 	struct ice_fltr_list_entry *v_list_itr = NULL;
 	struct ice_vlan_filter *f;
 	struct LIST_HEAD_TYPE list_head;
-	struct ice_hw *hw = ICE_VSI_TO_HW(vsi);
+	struct ice_hw *hw;
 	int ret = 0;
 
 	/**
@@ -720,6 +722,8 @@ struct ice_xstats_name_off {
 	if (!vsi || vlan_id == 0 || vlan_id > ETHER_MAX_VLAN_ID)
 		return -EINVAL;
 
+	hw = ICE_VSI_TO_HW(vsi);
+
 	/* Can't find it, return an error */
 	f = ice_find_vlan_filter(vsi, vlan_id);
 	if (!f)
@@ -2553,13 +2557,16 @@ static int ice_macaddr_set(struct rte_eth_dev *dev,  static int  ice_set_rss_lut(struct ice_vsi *vsi, uint8_t *lut, uint16_t lut_size)  {
-	struct ice_pf *pf = ICE_VSI_TO_PF(vsi);
-	struct ice_hw *hw = ICE_VSI_TO_HW(vsi);
+	struct ice_pf *pf;
+	struct ice_hw *hw;
 	int ret;
 
 	if (!vsi || !lut)
 		return -EINVAL;
 
+	pf = ICE_VSI_TO_PF(vsi);
+	hw = ICE_VSI_TO_HW(vsi);
+
 	if (pf->flags & ICE_FLAG_RSS_AQ_CAPABLE) {
 		ret = ice_aq_set_rss_lut(hw, vsi->idx, TRUE,
 					 lut, lut_size);
--
1.9.3

Acked-by: Qiming Yang <qiming.yang@intel.com>
Rami Rosen April 22, 2019, 7:14 a.m. | #2
Fix the issues reported by Coverity check, "Null-checking
vsi suggests that it may be null, but it has already been
dereferenced on all paths leading to the check."

Fixes: e0dcf94a0d7f ("net/ice: support VLAN ops")
Fixes: ff963bfa7cb1 ("net/ice: support RSS")
Cc: stable@dpdk.org

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
---
Reviewed-by: Rami Rosen <ramirose@gmail.com>
Zhang, Qi Z April 23, 2019, 3:29 a.m. | #3
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Yang, Qiming
> Sent: Monday, April 22, 2019 2:58 PM
> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] net/ice: fix coverity issues
> 
> 
> 
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Wenzhuo Lu
> Sent: Thursday, April 18, 2019 9:31 AM
> To: dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] net/ice: fix coverity issues
> 
> Fix the issues reported by Coverity check, "Null-checking vsi suggests that
> it may be null, but it has already been dereferenced on all paths leading to
> the check."
> 
> Fixes: e0dcf94a0d7f ("net/ice: support VLAN ops")
> Fixes: ff963bfa7cb1 ("net/ice: support RSS")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>

> Acked-by: Qiming Yang <qiming.yang@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi
Ferruh Yigit April 23, 2019, 10:40 a.m. | #4
On 4/18/2019 2:31 AM, Wenzhuo Lu wrote:
> Fix the issues reported by Coverity check, "Null-checking
> vsi suggests that it may be null, but it has already been
> dereferenced on all paths leading to the check."

Hi Wenzhuo,

Can you please list the coverity issues addressed, the format we have is:
Coverity issue: ####

Also the patch title doesn't say much, can you please put what exactly fixed,
"fix possible null pointer dereference" ?


> 
> Fixes: e0dcf94a0d7f ("net/ice: support VLAN ops")
> Fixes: ff963bfa7cb1 ("net/ice: support RSS")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>

<...>
Wenzhuo Lu April 24, 2019, 2:15 a.m. | #5
Hi Ferruh,

> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Tuesday, April 23, 2019 6:40 PM
> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; dev@dpdk.org
> Cc: stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] net/ice: fix coverity issues
> 
> On 4/18/2019 2:31 AM, Wenzhuo Lu wrote:
> > Fix the issues reported by Coverity check, "Null-checking vsi suggests
> > that it may be null, but it has already been dereferenced on all paths
> > leading to the check."
> 
> Hi Wenzhuo,
> 
> Can you please list the coverity issues addressed, the format we have is:
> Coverity issue: ####
> 
> Also the patch title doesn't say much, can you please put what exactly fixed,
> "fix possible null pointer dereference" ?
Thanks for the comments. Will send V2.

Patch

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 0946b19..5cca4a8 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -645,12 +645,14 @@  struct ice_xstats_name_off {
 	struct ice_fltr_list_entry *v_list_itr = NULL;
 	struct ice_vlan_filter *f;
 	struct LIST_HEAD_TYPE list_head;
-	struct ice_hw *hw = ICE_VSI_TO_HW(vsi);
+	struct ice_hw *hw;
 	int ret = 0;
 
 	if (!vsi || vlan_id > ETHER_MAX_VLAN_ID)
 		return -EINVAL;
 
+	hw = ICE_VSI_TO_HW(vsi);
+
 	/* If it's added and configured, return. */
 	f = ice_find_vlan_filter(vsi, vlan_id);
 	if (f) {
@@ -710,7 +712,7 @@  struct ice_xstats_name_off {
 	struct ice_fltr_list_entry *v_list_itr = NULL;
 	struct ice_vlan_filter *f;
 	struct LIST_HEAD_TYPE list_head;
-	struct ice_hw *hw = ICE_VSI_TO_HW(vsi);
+	struct ice_hw *hw;
 	int ret = 0;
 
 	/**
@@ -720,6 +722,8 @@  struct ice_xstats_name_off {
 	if (!vsi || vlan_id == 0 || vlan_id > ETHER_MAX_VLAN_ID)
 		return -EINVAL;
 
+	hw = ICE_VSI_TO_HW(vsi);
+
 	/* Can't find it, return an error */
 	f = ice_find_vlan_filter(vsi, vlan_id);
 	if (!f)
@@ -2553,13 +2557,16 @@  static int ice_macaddr_set(struct rte_eth_dev *dev,
 static int
 ice_set_rss_lut(struct ice_vsi *vsi, uint8_t *lut, uint16_t lut_size)
 {
-	struct ice_pf *pf = ICE_VSI_TO_PF(vsi);
-	struct ice_hw *hw = ICE_VSI_TO_HW(vsi);
+	struct ice_pf *pf;
+	struct ice_hw *hw;
 	int ret;
 
 	if (!vsi || !lut)
 		return -EINVAL;
 
+	pf = ICE_VSI_TO_PF(vsi);
+	hw = ICE_VSI_TO_HW(vsi);
+
 	if (pf->flags & ICE_FLAG_RSS_AQ_CAPABLE) {
 		ret = ice_aq_set_rss_lut(hw, vsi->idx, TRUE,
 					 lut, lut_size);