If there is no queue to disable, return appropriate configuration error
earlier without acquiring the lock.

Signed-off-by: Akeem G Abodunrin <akeem.g.abodun...@intel.com>
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell...@intel.com>
Signed-off-by: Qi Zhang <qi.z.zh...@intel.com>
---
 drivers/net/ice/base/ice_common.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ice/base/ice_common.c 
b/drivers/net/ice/base/ice_common.c
index 2362dd774..c35a2f91d 100644
--- a/drivers/net/ice/base/ice_common.c
+++ b/drivers/net/ice/base/ice_common.c
@@ -3654,14 +3654,17 @@ ice_dis_vsi_txq(struct ice_port_info *pi, u16 
vsi_handle, u8 tc, u8 num_queues,
        if (!pi || pi->port_state != ICE_SCHED_PORT_STATE_READY)
                return ICE_ERR_CFG;
 
-       /* if queue is disabled already yet the disable queue command has to be
-        * sent to complete the VF reset, then call ice_aq_dis_lan_txq without
-        * any queue information
-        */
 
-       if (!num_queues && rst_src)
-               return ice_aq_dis_lan_txq(pi->hw, 0, NULL, 0, rst_src, vmvf_num,
-                                         NULL);
+       if (!num_queues) {
+               /* if queue is disabled already yet the disable queue command
+                * has to be sent to complete the VF reset, then call
+                * ice_aq_dis_lan_txq without any queue information
+                */
+               if (rst_src)
+                       return ice_aq_dis_lan_txq(pi->hw, 0, NULL, 0, rst_src,
+                                                 vmvf_num, NULL);
+               return ICE_ERR_CFG;
+       }
 
        ice_acquire_lock(&pi->sched_lock);
 
-- 
2.13.6

Reply via email to