Instead of making assumptions in comments move them into code.
Be also more precise, RTNL must be locked only when there is
NAPI, and we have VSIs w/o NAPI that call ice_vsi_clear_napi_queues()
during rmmod.

Signed-off-by: Przemek Kitszel <[email protected]>
---
CC:Larysa Zaremba <[email protected]>
---
 drivers/net/ethernet/intel/ice/ice_lib.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c 
b/drivers/net/ethernet/intel/ice/ice_lib.c
index a439b5a61a56..3f1b2158be59 100644
--- a/drivers/net/ethernet/intel/ice/ice_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_lib.c
@@ -2769,16 +2769,16 @@ void ice_dis_vsi(struct ice_vsi *vsi, bool locked)
  * @vsi: VSI pointer
  *
  * Associate queue[s] with napi for all vectors.
- * The caller must hold rtnl_lock.
  */
 void ice_vsi_set_napi_queues(struct ice_vsi *vsi)
 {
        struct net_device *netdev = vsi->netdev;
        int q_idx, v_idx;
 
        if (!netdev)
                return;
 
+       ASSERT_RTNL();
        ice_for_each_rxq(vsi, q_idx)
                netif_queue_set_napi(netdev, q_idx, NETDEV_QUEUE_TYPE_RX,
                                     &vsi->rx_rings[q_idx]->q_vector->napi);
@@ -2799,16 +2799,16 @@ void ice_vsi_set_napi_queues(struct ice_vsi *vsi)
  * @vsi: VSI pointer
  *
  * Clear the association between all VSI queues queue[s] and napi.
- * The caller must hold rtnl_lock.
  */
 void ice_vsi_clear_napi_queues(struct ice_vsi *vsi)
 {
        struct net_device *netdev = vsi->netdev;
        int q_idx, v_idx;
 
        if (!netdev)
                return;
 
+       ASSERT_RTNL();
        /* Clear the NAPI's interrupt number */
        ice_for_each_q_vector(vsi, v_idx) {
                struct ice_q_vector *q_vector = vsi->q_vectors[v_idx];
-- 
2.39.3

Reply via email to