napi = &apc->tx_qp[i].tx_cq.napi;
                if (apc->tx_qp[i].txq.napi_initialized) {
                        napi_synchronize(napi);
-                       napi_disable(napi);
-                       netif_napi_del(napi);
+                       netdev_lock_ops_to_full(napi->dev);
+                       napi_disable_locked(napi);
+                       netif_napi_del_locked(napi);
+                       netdev_unlock_full_to_ops(napi->dev);
                        apc->tx_qp[i].txq.napi_initialized = false;
                }
                mana_destroy_wq_obj(apc, GDMA_SQ, apc->tx_qp[i].tx_object);
 
                mana_create_txq_debugfs(apc, i);
 
-               netif_napi_add_tx(net, &cq->napi, mana_poll);
-               napi_enable(&cq->napi);
+               set_bit(NAPI_STATE_NO_BUSY_POLL, &cq->napi.state);
+               netdev_lock_ops_to_full(net);
+               netif_napi_add_locked(net, &cq->napi, mana_poll);
+               napi_enable_locked(&cq->napi);
+               netdev_unlock_full_to_ops(net);
                txq->napi_initialized = true;
 
                mana_gd_ring_cq(cq->gdma_cq, SET_ARM_BIT);
        if (napi_initialized) {
                napi_synchronize(napi);
 
-               napi_disable(napi);
-
-               netif_napi_del(napi);
+               netdev_lock_ops_to_full(napi->dev);
+               napi_disable_locked(napi);
+               netif_napi_del_locked(napi);
+               netdev_unlock_full_to_ops(napi->dev);
        }
        xdp_rxq_info_unreg(&rxq->xdp_rxq);
 
 
        gc->cq_table[cq->gdma_id] = cq->gdma_cq;
 
-       netif_napi_add_weight(ndev, &cq->napi, mana_poll, 1);
+       netdev_lock_ops_to_full(ndev);
+       netif_napi_add_weight_locked(ndev, &cq->napi, mana_poll, 1);
+       netdev_unlock_full_to_ops(ndev);
 
        WARN_ON(xdp_rxq_info_reg(&rxq->xdp_rxq, ndev, rxq_idx,
                                 cq->napi.napi_id));
        WARN_ON(xdp_rxq_info_reg_mem_model(&rxq->xdp_rxq, MEM_TYPE_PAGE_POOL,
                                           rxq->page_pool));
 
-       napi_enable(&cq->napi);
+       netdev_lock_ops_to_full(ndev);
+       napi_enable_locked(&cq->napi);
+       netdev_unlock_full_to_ops(ndev);
 
        mana_gd_ring_cq(cq->gdma_cq, SET_ARM_BIT);
 out: