ring = &rxr->rx_ring_struct;
        bnxt_init_rxbd_pages(ring, type);
 
+       netif_queue_set_napi(bp->dev, ring_nr, NETDEV_QUEUE_TYPE_RX,
+                            &rxr->bnapi->napi);
+
        if (BNXT_RX_PAGE_MODE(bp) && bp->xdp_prog) {
                bpf_prog_add(bp->xdp_prog, 1);
                rxr->xdp_prog = bp->xdp_prog;
                struct bnxt_ring_struct *ring = &txr->tx_ring_struct;
 
                ring->fw_ring_id = INVALID_HW_RING_ID;
+
+               if (i >= bp->tx_nr_rings_xdp)
+                       netif_queue_set_napi(bp->dev, i - bp->tx_nr_rings_xdp,
+                                            NETDEV_QUEUE_TYPE_TX,
+                                            &txr->bnapi->napi);
        }
 
        return 0;
                if (rc)
                        break;
 
+               netif_napi_set_irq(&bp->bnapi[i]->napi, irq->vector);
                irq->requested = 1;
 
                if (zalloc_cpumask_var(&irq->cpu_mask, GFP_KERNEL)) {
        if (!bp->bnapi)
                return;
 
+       for (i = 0; i < bp->rx_nr_rings; i++)
+               netif_queue_set_napi(bp->dev, i, NETDEV_QUEUE_TYPE_RX, NULL);
+       for (i = 0; i < bp->tx_nr_rings - bp->tx_nr_rings_xdp; i++)
+               netif_queue_set_napi(bp->dev, i, NETDEV_QUEUE_TYPE_TX, NULL);
+
        for (i = 0; i < bp->cp_nr_rings; i++) {
                struct bnxt_napi *bnapi = bp->bnapi[i];