return -EBUSY;
                usleep_range(1000, 2000);
        }
+
+       ice_qvec_dis_irq(vsi, rx_ring, q_vector);
+       ice_qvec_toggle_napi(vsi, q_vector, false);
+
        netif_tx_stop_queue(netdev_get_tx_queue(vsi->netdev, q_idx));
 
        ice_fill_txq_meta(vsi, tx_ring, &txq_meta);
                if (err)
                        return err;
        }
-       ice_qvec_dis_irq(vsi, rx_ring, q_vector);
-
        err = ice_vsi_ctrl_one_rx_ring(vsi, false, q_idx, true);
        if (err)
                return err;
 
-       ice_qvec_toggle_napi(vsi, q_vector, false);
        ice_qp_clean_rings(vsi, q_idx);
        ice_qp_reset_stats(vsi, q_idx);
 
        if (err)
                return err;
 
-       clear_bit(ICE_CFG_BUSY, vsi->state);
        ice_qvec_toggle_napi(vsi, q_vector, true);
        ice_qvec_ena_irq(vsi, q_vector);
 
        netif_tx_start_queue(netdev_get_tx_queue(vsi->netdev, q_idx));
+       clear_bit(ICE_CFG_BUSY, vsi->state);
 
        return 0;
 }