Lines Matching refs:bnapi

701 static void bnxt_tx_int(struct bnxt *bp, struct bnxt_napi *bnapi, int nr_pkts)  in bnxt_tx_int()  argument
703 struct bnxt_tx_ring_info *txr = bnapi->tx_ring; in bnxt_tx_int()
956 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_reuse_rx_agg_bufs() local
957 struct bnxt *bp = bnapi->bp; in bnxt_reuse_rx_agg_bufs()
958 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_reuse_rx_agg_bufs()
1037 skb = napi_alloc_skb(&rxr->bnapi->napi, payload); in bnxt_rx_page_skb()
1091 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_rx_pages() local
1093 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_rx_pages()
1176 static inline struct sk_buff *bnxt_copy_skb(struct bnxt_napi *bnapi, u8 *data, in bnxt_copy_skb() argument
1180 struct bnxt *bp = bnapi->bp; in bnxt_copy_skb()
1184 skb = napi_alloc_skb(&bnapi->napi, len); in bnxt_copy_skb()
1252 if (!rxr->bnapi->in_reset) { in bnxt_sched_reset()
1253 rxr->bnapi->in_reset = true; in bnxt_sched_reset()
1592 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_tpa_end() local
1593 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_tpa_end()
1603 if (unlikely(bnapi->in_reset)) { in bnxt_tpa_end()
1655 skb = bnxt_copy_skb(bnapi, data_ptr, len, mapping); in bnxt_tpa_end()
1745 static void bnxt_deliver_skb(struct bnxt *bp, struct bnxt_napi *bnapi, in bnxt_deliver_skb() argument
1753 skb_record_rx_queue(skb, bnapi->index); in bnxt_deliver_skb()
1754 napi_gro_receive(&bnapi->napi, skb); in bnxt_deliver_skb()
1767 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_rx_pkt() local
1768 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_rx_pkt()
1824 bnxt_deliver_skb(bp, bnapi, skb); in bnxt_rx_pkt()
1872 bnapi->cp_ring.sw_stats.rx.rx_buf_errors++; in bnxt_rx_pkt()
1893 skb = bnxt_copy_skb(bnapi, data_ptr, len, dma_addr); in bnxt_rx_pkt()
1966 bnapi->cp_ring.sw_stats.rx.rx_l4_csum_errors++; in bnxt_rx_pkt()
1988 bnxt_deliver_skb(bp, bnapi, skb); in bnxt_rx_pkt()
2084 u16 grp_idx = bp->rx_ring[i].bnapi->index; in bnxt_agg_ring_id_to_grp_idx()
2257 rxr = bp->bnapi[grp_idx]->rx_ring; in bnxt_async_event_process()
2340 struct bnxt_napi *bnapi = dev_instance; in bnxt_msix() local
2341 struct bnxt *bp = bnapi->bp; in bnxt_msix()
2342 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_msix()
2347 napi_schedule(&bnapi->napi); in bnxt_msix()
2364 struct bnxt_napi *bnapi = dev_instance; in bnxt_inta() local
2365 struct bnxt *bp = bnapi->bp; in bnxt_inta()
2366 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_inta()
2386 napi_schedule(&bnapi->napi); in bnxt_inta()
2393 struct bnxt_napi *bnapi = cpr->bnapi; in __bnxt_poll_work() local
2463 struct bnxt_tx_ring_info *txr = bnapi->tx_ring; in __bnxt_poll_work()
2473 bnapi->tx_pkts += tx_pkts; in __bnxt_poll_work()
2474 bnapi->events |= event; in __bnxt_poll_work()
2478 static void __bnxt_poll_work_done(struct bnxt *bp, struct bnxt_napi *bnapi) in __bnxt_poll_work_done() argument
2480 if (bnapi->tx_pkts) { in __bnxt_poll_work_done()
2481 bnapi->tx_int(bp, bnapi, bnapi->tx_pkts); in __bnxt_poll_work_done()
2482 bnapi->tx_pkts = 0; in __bnxt_poll_work_done()
2485 if ((bnapi->events & BNXT_RX_EVENT) && !(bnapi->in_reset)) { in __bnxt_poll_work_done()
2486 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in __bnxt_poll_work_done()
2488 if (bnapi->events & BNXT_AGG_EVENT) in __bnxt_poll_work_done()
2492 bnapi->events = 0; in __bnxt_poll_work_done()
2498 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_poll_work() local
2509 __bnxt_poll_work_done(bp, bnapi); in bnxt_poll_work()
2515 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi); in bnxt_poll_nitroa0() local
2516 struct bnxt *bp = bnapi->bp; in bnxt_poll_nitroa0()
2517 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_poll_nitroa0()
2518 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_poll_nitroa0()
2586 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi); in bnxt_poll() local
2587 struct bnxt *bp = bnapi->bp; in bnxt_poll()
2588 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_poll()
2622 static int __bnxt_poll_cqs(struct bnxt *bp, struct bnxt_napi *bnapi, int budget) in __bnxt_poll_cqs() argument
2624 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in __bnxt_poll_cqs()
2639 static void __bnxt_poll_cqs_done(struct bnxt *bp, struct bnxt_napi *bnapi, in __bnxt_poll_cqs_done() argument
2642 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in __bnxt_poll_cqs_done()
2656 __bnxt_poll_work_done(bp, bnapi); in __bnxt_poll_cqs_done()
2661 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi); in bnxt_poll_p5() local
2662 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_poll_p5()
2664 struct bnxt *bp = bnapi->bp; in bnxt_poll_p5()
2675 work_done = __bnxt_poll_cqs(bp, bnapi, budget); in bnxt_poll_p5()
2685 __bnxt_poll_cqs_done(bp, bnapi, DBR_TYPE_CQ_ARMALL); in bnxt_poll_p5()
2711 __bnxt_poll_cqs_done(bp, bnapi, DBR_TYPE_CQ); in bnxt_poll_p5()
3216 ring->grp_idx = txr->bnapi->index; in bnxt_alloc_tx_rings()
3273 if (!bp->bnapi) in bnxt_free_all_cp_arrays()
3276 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_free_all_cp_arrays() local
3278 if (!bnapi) in bnxt_free_all_cp_arrays()
3280 bnxt_free_cp_arrays(&bnapi->cp_ring); in bnxt_free_all_cp_arrays()
3289 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_alloc_all_cp_arrays() local
3292 if (!bnapi) in bnxt_alloc_all_cp_arrays()
3294 rc = bnxt_alloc_cp_arrays(&bnapi->cp_ring, n); in bnxt_alloc_all_cp_arrays()
3305 if (!bp->bnapi) in bnxt_free_cp_rings()
3309 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_free_cp_rings() local
3314 if (!bnapi) in bnxt_free_cp_rings()
3317 cpr = &bnapi->cp_ring; in bnxt_free_cp_rings()
3378 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_alloc_cp_rings() local
3382 if (!bnapi) in bnxt_alloc_cp_rings()
3385 cpr = &bnapi->cp_ring; in bnxt_alloc_cp_rings()
3386 cpr->bnapi = bnapi; in bnxt_alloc_cp_rings()
3408 cpr2->bnapi = bnapi; in bnxt_alloc_cp_rings()
3418 cpr2->bnapi = bnapi; in bnxt_alloc_cp_rings()
3429 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_init_ring_struct() local
3436 if (!bnapi) in bnxt_init_ring_struct()
3439 cpr = &bnapi->cp_ring; in bnxt_init_ring_struct()
3448 rxr = bnapi->rx_ring; in bnxt_init_ring_struct()
3471 txr = bnapi->tx_ring; in bnxt_init_ring_struct()
3597 struct bnxt_cp_ring_info *cpr = &bp->bnapi[i]->cp_ring; in bnxt_init_cp_rings()
4105 struct bnxt_napi *bnapi = bp->bnapi[0]; in bnxt_init_stats() local
4114 cpr = &bnapi->cp_ring; in bnxt_init_stats()
4188 if (!bp->bnapi) in bnxt_free_ring_stats()
4192 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_free_ring_stats() local
4193 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_free_ring_stats()
4207 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_alloc_stats() local
4208 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_alloc_stats()
4266 if (!bp->bnapi) in bnxt_clear_ring_indices()
4270 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_clear_ring_indices() local
4275 if (!bnapi) in bnxt_clear_ring_indices()
4278 cpr = &bnapi->cp_ring; in bnxt_clear_ring_indices()
4281 txr = bnapi->tx_ring; in bnxt_clear_ring_indices()
4287 rxr = bnapi->rx_ring; in bnxt_clear_ring_indices()
4370 kfree(bp->bnapi); in bnxt_free_mem()
4371 bp->bnapi = NULL; in bnxt_free_mem()
4380 void *bnapi; in bnxt_alloc_mem() local
4389 bnapi = kzalloc(arr_size + size * bp->cp_nr_rings, GFP_KERNEL); in bnxt_alloc_mem()
4390 if (!bnapi) in bnxt_alloc_mem()
4393 bp->bnapi = bnapi; in bnxt_alloc_mem()
4394 bnapi += arr_size; in bnxt_alloc_mem()
4395 for (i = 0; i < bp->cp_nr_rings; i++, bnapi += size) { in bnxt_alloc_mem()
4396 bp->bnapi[i] = bnapi; in bnxt_alloc_mem()
4397 bp->bnapi[i]->index = i; in bnxt_alloc_mem()
4398 bp->bnapi[i]->bp = bp; in bnxt_alloc_mem()
4401 &bp->bnapi[i]->cp_ring; in bnxt_alloc_mem()
4423 rxr->bnapi = bp->bnapi[i]; in bnxt_alloc_mem()
4424 bp->bnapi[i]->rx_ring = &bp->rx_ring[i]; in bnxt_alloc_mem()
4450 txr->bnapi = bp->bnapi[j]; in bnxt_alloc_mem()
4451 bp->bnapi[j]->tx_ring = txr; in bnxt_alloc_mem()
4455 bp->bnapi[j]->tx_int = bnxt_tx_int; in bnxt_alloc_mem()
4457 bp->bnapi[j]->flags |= BNXT_NAPI_FLAG_XDP; in bnxt_alloc_mem()
4458 bp->bnapi[j]->tx_int = bnxt_tx_int_xdp; in bnxt_alloc_mem()
4510 if (!bp->bnapi) in bnxt_disable_int()
4514 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_disable_int() local
4515 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_disable_int()
4525 struct bnxt_napi *bnapi = bp->bnapi[n]; in bnxt_cp_num_to_irq_num() local
4528 cpr = &bnapi->cp_ring; in bnxt_cp_num_to_irq_num()
4555 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_enable_int() local
4556 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_enable_int()
5006 struct bnxt_napi *bnapi = rxr->bnapi; in bnxt_cp_ring_for_rx() local
5009 cpr = bnapi->cp_ring.cp_ring_arr[BNXT_RX_HDL]; in bnxt_cp_ring_for_rx()
5019 struct bnxt_napi *bnapi = txr->bnapi; in bnxt_cp_ring_for_tx() local
5022 cpr = bnapi->cp_ring.cp_ring_arr[BNXT_TX_HDL]; in bnxt_cp_ring_for_tx()
5332 grp_idx = bp->rx_ring[ring].bnapi->index; in bnxt_hwrm_vnic_cfg()
5394 grp_idx = bp->rx_ring[i].bnapi->index; in bnxt_hwrm_vnic_alloc()
5479 unsigned int grp_idx = bp->rx_ring[i].bnapi->index; in bnxt_hwrm_ring_grp_alloc()
5721 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_ring_alloc() local
5722 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_ring_alloc()
5753 struct bnxt_napi *bnapi = txr->bnapi; in bnxt_hwrm_ring_alloc() local
5757 cpr = &bnapi->cp_ring; in bnxt_hwrm_ring_alloc()
5761 map_idx = bnapi->index; in bnxt_hwrm_ring_alloc()
5781 struct bnxt_napi *bnapi = rxr->bnapi; in bnxt_hwrm_ring_alloc() local
5782 u32 map_idx = bnapi->index; in bnxt_hwrm_ring_alloc()
5793 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_ring_alloc()
5871 if (!bp->bnapi) in bnxt_hwrm_ring_free()
5892 u32 grp_idx = rxr->bnapi->index; in bnxt_hwrm_ring_free()
5914 u32 grp_idx = rxr->bnapi->index; in bnxt_hwrm_ring_free()
5939 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_ring_free() local
5940 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_ring_free()
6568 static int __bnxt_hwrm_set_coal_nq(struct bnxt *bp, struct bnxt_napi *bnapi, in __bnxt_hwrm_set_coal_nq() argument
6572 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in __bnxt_hwrm_set_coal_nq()
6596 int bnxt_hwrm_set_ring_coal(struct bnxt *bp, struct bnxt_napi *bnapi) in bnxt_hwrm_set_ring_coal() argument
6599 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_set_ring_coal()
6611 if (!bnapi->rx_ring) in bnxt_hwrm_set_ring_coal()
6620 req_rx->ring_id = cpu_to_le16(bnxt_cp_ring_for_rx(bp, bnapi->rx_ring)); in bnxt_hwrm_set_ring_coal()
6647 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_set_coal() local
6652 if (!bnapi->rx_ring) { in bnxt_hwrm_set_coal()
6653 ring_id = bnxt_cp_ring_for_tx(bp, bnapi->tx_ring); in bnxt_hwrm_set_coal()
6656 ring_id = bnxt_cp_ring_for_rx(bp, bnapi->rx_ring); in bnxt_hwrm_set_coal()
6667 if (bnapi->rx_ring && bnapi->tx_ring) { in bnxt_hwrm_set_coal()
6669 ring_id = bnxt_cp_ring_for_tx(bp, bnapi->tx_ring); in bnxt_hwrm_set_coal()
6675 if (bnapi->rx_ring) in bnxt_hwrm_set_coal()
6679 __bnxt_hwrm_set_coal_nq(bp, bnapi, hw_coal); in bnxt_hwrm_set_coal()
6692 if (!bp->bnapi) in bnxt_hwrm_stat_ctx_free()
6709 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_stat_ctx_free() local
6710 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_stat_ctx_free()
6746 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_stat_ctx_alloc() local
6747 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_stat_ctx_alloc()
8120 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_accumulate_all_stats() local
8124 cpr = &bnapi->cp_ring; in bnxt_accumulate_all_stats()
9027 if (!bp->irq_tbl || !bp->bnapi) in bnxt_free_irq()
9040 free_irq(irq->vector, bp->bnapi[i]); in bnxt_free_irq()
9072 if (rmap && bp->bnapi[i]->rx_ring) { in bnxt_request_irq()
9081 bp->bnapi[i]); in bnxt_request_irq()
9109 if (!bp->bnapi) in bnxt_del_napi()
9113 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_del_napi() local
9115 __netif_napi_del(&bnapi->napi); in bnxt_del_napi()
9127 struct bnxt_napi *bnapi; in bnxt_init_napi() local
9137 bnapi = bp->bnapi[i]; in bnxt_init_napi()
9138 netif_napi_add(bp->dev, &bnapi->napi, poll_fn, 64); in bnxt_init_napi()
9141 bnapi = bp->bnapi[cp_nr_rings]; in bnxt_init_napi()
9142 netif_napi_add(bp->dev, &bnapi->napi, in bnxt_init_napi()
9146 bnapi = bp->bnapi[0]; in bnxt_init_napi()
9147 netif_napi_add(bp->dev, &bnapi->napi, bnxt_poll, 64); in bnxt_init_napi()
9155 if (!bp->bnapi || in bnxt_disable_napi()
9160 struct bnxt_cp_ring_info *cpr = &bp->bnapi[i]->cp_ring; in bnxt_disable_napi()
9162 napi_disable(&bp->bnapi[i]->napi); in bnxt_disable_napi()
9163 if (bp->bnapi[i]->rx_ring) in bnxt_disable_napi()
9174 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_enable_napi() local
9177 cpr = &bnapi->cp_ring; in bnxt_enable_napi()
9178 if (bnapi->in_reset) in bnxt_enable_napi()
9180 bnapi->in_reset = false; in bnxt_enable_napi()
9182 if (bnapi->rx_ring) { in bnxt_enable_napi()
9186 napi_enable(&bnapi->napi); in bnxt_enable_napi()
10403 if (bp->bnapi && irq_re_init) in __bnxt_close_nic()
10561 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_get_ring_stats() local
10562 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_get_ring_stats()
11182 static void bnxt_dump_tx_sw_state(struct bnxt_napi *bnapi) in bnxt_dump_tx_sw_state() argument
11184 struct bnxt_tx_ring_info *txr = bnapi->tx_ring; in bnxt_dump_tx_sw_state()
11185 int i = bnapi->index; in bnxt_dump_tx_sw_state()
11190 netdev_info(bnapi->bp->dev, "[%d]: tx{fw_ring: %d prod: %x cons: %x}\n", in bnxt_dump_tx_sw_state()
11195 static void bnxt_dump_rx_sw_state(struct bnxt_napi *bnapi) in bnxt_dump_rx_sw_state() argument
11197 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_dump_rx_sw_state()
11198 int i = bnapi->index; in bnxt_dump_rx_sw_state()
11203 …netdev_info(bnapi->bp->dev, "[%d]: rx{fw_ring: %d prod: %x} rx_agg{fw_ring: %d agg_prod: %x sw_agg… in bnxt_dump_rx_sw_state()
11209 static void bnxt_dump_cp_sw_state(struct bnxt_napi *bnapi) in bnxt_dump_cp_sw_state() argument
11211 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_dump_cp_sw_state()
11212 int i = bnapi->index; in bnxt_dump_cp_sw_state()
11214 netdev_info(bnapi->bp->dev, "[%d]: cp{fw_ring: %d raw_cons: %x}\n", in bnxt_dump_cp_sw_state()
11221 struct bnxt_napi *bnapi; in bnxt_dbg_dump_states() local
11224 bnapi = bp->bnapi[i]; in bnxt_dbg_dump_states()
11226 bnxt_dump_tx_sw_state(bnapi); in bnxt_dbg_dump_states()
11227 bnxt_dump_rx_sw_state(bnapi); in bnxt_dbg_dump_states()
11228 bnxt_dump_cp_sw_state(bnapi); in bnxt_dbg_dump_states()
11237 struct bnxt_napi *bnapi = rxr->bnapi; in bnxt_hwrm_rx_ring_reset() local
11246 cpr = &bnapi->cp_ring; in bnxt_hwrm_rx_ring_reset()
11250 req->ring_id = cpu_to_le16(bp->grp_info[bnapi->index].fw_grp_id); in bnxt_hwrm_rx_ring_reset()
11409 if (!rxr->bnapi->in_reset) in bnxt_rx_ring_reset()
11427 rxr->bnapi->in_reset = false; in bnxt_rx_ring_reset()
11429 cpr = &rxr->bnapi->cp_ring; in bnxt_rx_ring_reset()
11615 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_chk_missed_irq() local
11620 if (!bnapi) in bnxt_chk_missed_irq()
11623 cpr = &bnapi->cp_ring; in bnxt_chk_missed_irq()