Lines Matching refs:bnapi

651 static void bnxt_tx_int(struct bnxt *bp, struct bnxt_napi *bnapi, int nr_pkts)  in bnxt_tx_int()  argument
653 struct bnxt_tx_ring_info *txr = bnapi->tx_ring; in bnxt_tx_int()
917 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_reuse_rx_agg_bufs() local
918 struct bnxt *bp = bnapi->bp; in bnxt_reuse_rx_agg_bufs()
919 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_reuse_rx_agg_bufs()
1030 skb = napi_alloc_skb(&rxr->bnapi->napi, payload); in bnxt_rx_page_skb()
1086 struct bnxt_napi *bnapi = cpr->bnapi; in __bnxt_rx_agg_pages() local
1088 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in __bnxt_rx_agg_pages()
1211 static inline struct sk_buff *bnxt_copy_skb(struct bnxt_napi *bnapi, u8 *data, in bnxt_copy_skb() argument
1215 struct bnxt *bp = bnapi->bp; in bnxt_copy_skb()
1219 skb = napi_alloc_skb(&bnapi->napi, len); in bnxt_copy_skb()
1287 if (!rxr->bnapi->in_reset) { in bnxt_sched_reset()
1288 rxr->bnapi->in_reset = true; in bnxt_sched_reset()
1627 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_tpa_end() local
1628 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_tpa_end()
1638 if (unlikely(bnapi->in_reset)) { in bnxt_tpa_end()
1690 skb = bnxt_copy_skb(bnapi, data_ptr, len, mapping); in bnxt_tpa_end()
1780 static void bnxt_deliver_skb(struct bnxt *bp, struct bnxt_napi *bnapi, in bnxt_deliver_skb() argument
1788 skb_record_rx_queue(skb, bnapi->index); in bnxt_deliver_skb()
1789 napi_gro_receive(&bnapi->napi, skb); in bnxt_deliver_skb()
1802 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_rx_pkt() local
1803 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_rx_pkt()
1861 bnxt_deliver_skb(bp, bnapi, skb); in bnxt_rx_pkt()
1909 bnapi->cp_ring.sw_stats.rx.rx_buf_errors++; in bnxt_rx_pkt()
1947 skb = bnxt_copy_skb(bnapi, data_ptr, len, dma_addr); in bnxt_rx_pkt()
2035 bnapi->cp_ring.sw_stats.rx.rx_l4_csum_errors++; in bnxt_rx_pkt()
2057 bnxt_deliver_skb(bp, bnapi, skb); in bnxt_rx_pkt()
2153 u16 grp_idx = bp->rx_ring[i].bnapi->index; in bnxt_agg_ring_id_to_grp_idx()
2360 rxr = bp->bnapi[grp_idx]->rx_ring; in bnxt_async_event_process()
2461 struct bnxt_napi *bnapi = dev_instance; in bnxt_msix() local
2462 struct bnxt *bp = bnapi->bp; in bnxt_msix()
2463 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_msix()
2468 napi_schedule(&bnapi->napi); in bnxt_msix()
2485 struct bnxt_napi *bnapi = dev_instance; in bnxt_inta() local
2486 struct bnxt *bp = bnapi->bp; in bnxt_inta()
2487 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_inta()
2507 napi_schedule(&bnapi->napi); in bnxt_inta()
2514 struct bnxt_napi *bnapi = cpr->bnapi; in __bnxt_poll_work() local
2584 struct bnxt_tx_ring_info *txr = bnapi->tx_ring; in __bnxt_poll_work()
2594 bnapi->tx_pkts += tx_pkts; in __bnxt_poll_work()
2595 bnapi->events |= event; in __bnxt_poll_work()
2599 static void __bnxt_poll_work_done(struct bnxt *bp, struct bnxt_napi *bnapi) in __bnxt_poll_work_done() argument
2601 if (bnapi->tx_pkts) { in __bnxt_poll_work_done()
2602 bnapi->tx_int(bp, bnapi, bnapi->tx_pkts); in __bnxt_poll_work_done()
2603 bnapi->tx_pkts = 0; in __bnxt_poll_work_done()
2606 if ((bnapi->events & BNXT_RX_EVENT) && !(bnapi->in_reset)) { in __bnxt_poll_work_done()
2607 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in __bnxt_poll_work_done()
2611 if (bnapi->events & BNXT_AGG_EVENT) { in __bnxt_poll_work_done()
2612 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in __bnxt_poll_work_done()
2616 bnapi->events = 0; in __bnxt_poll_work_done()
2622 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_poll_work() local
2633 __bnxt_poll_work_done(bp, bnapi); in bnxt_poll_work()
2639 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi); in bnxt_poll_nitroa0() local
2640 struct bnxt *bp = bnapi->bp; in bnxt_poll_nitroa0()
2641 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_poll_nitroa0()
2642 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_poll_nitroa0()
2710 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi); in bnxt_poll() local
2711 struct bnxt *bp = bnapi->bp; in bnxt_poll()
2712 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_poll()
2746 static int __bnxt_poll_cqs(struct bnxt *bp, struct bnxt_napi *bnapi, int budget) in __bnxt_poll_cqs() argument
2748 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in __bnxt_poll_cqs()
2763 static void __bnxt_poll_cqs_done(struct bnxt *bp, struct bnxt_napi *bnapi, in __bnxt_poll_cqs_done() argument
2766 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in __bnxt_poll_cqs_done()
2780 __bnxt_poll_work_done(bp, bnapi); in __bnxt_poll_cqs_done()
2785 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi); in bnxt_poll_p5() local
2786 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_poll_p5()
2789 struct bnxt *bp = bnapi->bp; in bnxt_poll_p5()
2800 work_done = __bnxt_poll_cqs(bp, bnapi, budget); in bnxt_poll_p5()
2810 __bnxt_poll_cqs_done(bp, bnapi, DBR_TYPE_CQ_ARMALL); in bnxt_poll_p5()
2840 __bnxt_poll_cqs_done(bp, bnapi, DBR_TYPE_CQ); in bnxt_poll_p5()
3365 ring->grp_idx = txr->bnapi->index; in bnxt_alloc_tx_rings()
3423 if (!bp->bnapi) in bnxt_free_all_cp_arrays()
3426 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_free_all_cp_arrays() local
3428 if (!bnapi) in bnxt_free_all_cp_arrays()
3430 bnxt_free_cp_arrays(&bnapi->cp_ring); in bnxt_free_all_cp_arrays()
3439 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_alloc_all_cp_arrays() local
3442 if (!bnapi) in bnxt_alloc_all_cp_arrays()
3444 rc = bnxt_alloc_cp_arrays(&bnapi->cp_ring, n); in bnxt_alloc_all_cp_arrays()
3455 if (!bp->bnapi) in bnxt_free_cp_rings()
3459 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_free_cp_rings() local
3464 if (!bnapi) in bnxt_free_cp_rings()
3467 cpr = &bnapi->cp_ring; in bnxt_free_cp_rings()
3528 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_alloc_cp_rings() local
3532 if (!bnapi) in bnxt_alloc_cp_rings()
3535 cpr = &bnapi->cp_ring; in bnxt_alloc_cp_rings()
3536 cpr->bnapi = bnapi; in bnxt_alloc_cp_rings()
3558 cpr2->bnapi = bnapi; in bnxt_alloc_cp_rings()
3568 cpr2->bnapi = bnapi; in bnxt_alloc_cp_rings()
3579 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_init_ring_struct() local
3586 if (!bnapi) in bnxt_init_ring_struct()
3589 cpr = &bnapi->cp_ring; in bnxt_init_ring_struct()
3598 rxr = bnapi->rx_ring; in bnxt_init_ring_struct()
3621 txr = bnapi->tx_ring; in bnxt_init_ring_struct()
3747 struct bnxt_cp_ring_info *cpr = &bp->bnapi[i]->cp_ring; in bnxt_init_cp_rings()
4268 struct bnxt_napi *bnapi = bp->bnapi[0]; in bnxt_init_stats() local
4277 cpr = &bnapi->cp_ring; in bnxt_init_stats()
4351 if (!bp->bnapi) in bnxt_free_ring_stats()
4355 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_free_ring_stats() local
4356 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_free_ring_stats()
4370 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_alloc_stats() local
4371 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_alloc_stats()
4429 if (!bp->bnapi) in bnxt_clear_ring_indices()
4433 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_clear_ring_indices() local
4438 if (!bnapi) in bnxt_clear_ring_indices()
4441 cpr = &bnapi->cp_ring; in bnxt_clear_ring_indices()
4444 txr = bnapi->tx_ring; in bnxt_clear_ring_indices()
4450 rxr = bnapi->rx_ring; in bnxt_clear_ring_indices()
4531 kfree(bp->bnapi); in bnxt_free_mem()
4532 bp->bnapi = NULL; in bnxt_free_mem()
4541 void *bnapi; in bnxt_alloc_mem() local
4550 bnapi = kzalloc(arr_size + size * bp->cp_nr_rings, GFP_KERNEL); in bnxt_alloc_mem()
4551 if (!bnapi) in bnxt_alloc_mem()
4554 bp->bnapi = bnapi; in bnxt_alloc_mem()
4555 bnapi += arr_size; in bnxt_alloc_mem()
4556 for (i = 0; i < bp->cp_nr_rings; i++, bnapi += size) { in bnxt_alloc_mem()
4557 bp->bnapi[i] = bnapi; in bnxt_alloc_mem()
4558 bp->bnapi[i]->index = i; in bnxt_alloc_mem()
4559 bp->bnapi[i]->bp = bp; in bnxt_alloc_mem()
4562 &bp->bnapi[i]->cp_ring; in bnxt_alloc_mem()
4584 rxr->bnapi = bp->bnapi[i]; in bnxt_alloc_mem()
4585 bp->bnapi[i]->rx_ring = &bp->rx_ring[i]; in bnxt_alloc_mem()
4611 txr->bnapi = bp->bnapi[j]; in bnxt_alloc_mem()
4612 bp->bnapi[j]->tx_ring = txr; in bnxt_alloc_mem()
4616 bp->bnapi[j]->tx_int = bnxt_tx_int; in bnxt_alloc_mem()
4618 bp->bnapi[j]->flags |= BNXT_NAPI_FLAG_XDP; in bnxt_alloc_mem()
4619 bp->bnapi[j]->tx_int = bnxt_tx_int_xdp; in bnxt_alloc_mem()
4671 if (!bp->bnapi) in bnxt_disable_int()
4675 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_disable_int() local
4676 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_disable_int()
4686 struct bnxt_napi *bnapi = bp->bnapi[n]; in bnxt_cp_num_to_irq_num() local
4689 cpr = &bnapi->cp_ring; in bnxt_cp_num_to_irq_num()
4716 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_enable_int() local
4717 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_enable_int()
5169 struct bnxt_napi *bnapi = rxr->bnapi; in bnxt_cp_ring_for_rx() local
5172 cpr = bnapi->cp_ring.cp_ring_arr[BNXT_RX_HDL]; in bnxt_cp_ring_for_rx()
5182 struct bnxt_napi *bnapi = txr->bnapi; in bnxt_cp_ring_for_tx() local
5185 cpr = bnapi->cp_ring.cp_ring_arr[BNXT_TX_HDL]; in bnxt_cp_ring_for_tx()
5498 grp_idx = bp->rx_ring[ring].bnapi->index; in bnxt_hwrm_vnic_cfg()
5560 grp_idx = bp->rx_ring[i].bnapi->index; in bnxt_hwrm_vnic_alloc()
5645 unsigned int grp_idx = bp->rx_ring[i].bnapi->index; in bnxt_hwrm_ring_grp_alloc()
5887 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_ring_alloc() local
5888 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_ring_alloc()
5919 struct bnxt_napi *bnapi = txr->bnapi; in bnxt_hwrm_ring_alloc() local
5923 cpr = &bnapi->cp_ring; in bnxt_hwrm_ring_alloc()
5927 map_idx = bnapi->index; in bnxt_hwrm_ring_alloc()
5947 struct bnxt_napi *bnapi = rxr->bnapi; in bnxt_hwrm_ring_alloc() local
5948 u32 map_idx = bnapi->index; in bnxt_hwrm_ring_alloc()
5959 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_ring_alloc()
6037 if (!bp->bnapi) in bnxt_hwrm_ring_free()
6058 u32 grp_idx = rxr->bnapi->index; in bnxt_hwrm_ring_free()
6080 u32 grp_idx = rxr->bnapi->index; in bnxt_hwrm_ring_free()
6105 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_ring_free() local
6106 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_ring_free()
6732 static int __bnxt_hwrm_set_coal_nq(struct bnxt *bp, struct bnxt_napi *bnapi, in __bnxt_hwrm_set_coal_nq() argument
6736 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in __bnxt_hwrm_set_coal_nq()
6760 int bnxt_hwrm_set_ring_coal(struct bnxt *bp, struct bnxt_napi *bnapi) in bnxt_hwrm_set_ring_coal() argument
6763 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_set_ring_coal()
6775 if (!bnapi->rx_ring) in bnxt_hwrm_set_ring_coal()
6784 req_rx->ring_id = cpu_to_le16(bnxt_cp_ring_for_rx(bp, bnapi->rx_ring)); in bnxt_hwrm_set_ring_coal()
6811 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_set_coal() local
6816 if (!bnapi->rx_ring) { in bnxt_hwrm_set_coal()
6817 ring_id = bnxt_cp_ring_for_tx(bp, bnapi->tx_ring); in bnxt_hwrm_set_coal()
6820 ring_id = bnxt_cp_ring_for_rx(bp, bnapi->rx_ring); in bnxt_hwrm_set_coal()
6831 if (bnapi->rx_ring && bnapi->tx_ring) { in bnxt_hwrm_set_coal()
6833 ring_id = bnxt_cp_ring_for_tx(bp, bnapi->tx_ring); in bnxt_hwrm_set_coal()
6839 if (bnapi->rx_ring) in bnxt_hwrm_set_coal()
6843 __bnxt_hwrm_set_coal_nq(bp, bnapi, hw_coal); in bnxt_hwrm_set_coal()
6856 if (!bp->bnapi) in bnxt_hwrm_stat_ctx_free()
6873 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_stat_ctx_free() local
6874 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_stat_ctx_free()
6910 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_stat_ctx_alloc() local
6911 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_stat_ctx_alloc()
8340 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_accumulate_all_stats() local
8344 cpr = &bnapi->cp_ring; in bnxt_accumulate_all_stats()
9258 if (!bp->irq_tbl || !bp->bnapi) in bnxt_free_irq()
9271 free_irq(irq->vector, bp->bnapi[i]); in bnxt_free_irq()
9303 if (rmap && bp->bnapi[i]->rx_ring) { in bnxt_request_irq()
9312 bp->bnapi[i]); in bnxt_request_irq()
9340 if (!bp->bnapi) in bnxt_del_napi()
9344 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_del_napi() local
9346 __netif_napi_del(&bnapi->napi); in bnxt_del_napi()
9358 struct bnxt_napi *bnapi; in bnxt_init_napi() local
9368 bnapi = bp->bnapi[i]; in bnxt_init_napi()
9369 netif_napi_add(bp->dev, &bnapi->napi, poll_fn); in bnxt_init_napi()
9372 bnapi = bp->bnapi[cp_nr_rings]; in bnxt_init_napi()
9373 netif_napi_add(bp->dev, &bnapi->napi, in bnxt_init_napi()
9377 bnapi = bp->bnapi[0]; in bnxt_init_napi()
9378 netif_napi_add(bp->dev, &bnapi->napi, bnxt_poll); in bnxt_init_napi()
9386 if (!bp->bnapi || in bnxt_disable_napi()
9391 struct bnxt_cp_ring_info *cpr = &bp->bnapi[i]->cp_ring; in bnxt_disable_napi()
9393 napi_disable(&bp->bnapi[i]->napi); in bnxt_disable_napi()
9394 if (bp->bnapi[i]->rx_ring) in bnxt_disable_napi()
9405 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_enable_napi() local
9408 cpr = &bnapi->cp_ring; in bnxt_enable_napi()
9409 if (bnapi->in_reset) in bnxt_enable_napi()
9411 bnapi->in_reset = false; in bnxt_enable_napi()
9413 if (bnapi->rx_ring) { in bnxt_enable_napi()
9417 napi_enable(&bnapi->napi); in bnxt_enable_napi()
10677 if (bp->bnapi && irq_re_init) in __bnxt_close_nic()
10835 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_get_ring_stats() local
10836 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_get_ring_stats()
11466 static void bnxt_dump_tx_sw_state(struct bnxt_napi *bnapi) in bnxt_dump_tx_sw_state() argument
11468 struct bnxt_tx_ring_info *txr = bnapi->tx_ring; in bnxt_dump_tx_sw_state()
11469 int i = bnapi->index; in bnxt_dump_tx_sw_state()
11474 netdev_info(bnapi->bp->dev, "[%d]: tx{fw_ring: %d prod: %x cons: %x}\n", in bnxt_dump_tx_sw_state()
11479 static void bnxt_dump_rx_sw_state(struct bnxt_napi *bnapi) in bnxt_dump_rx_sw_state() argument
11481 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_dump_rx_sw_state()
11482 int i = bnapi->index; in bnxt_dump_rx_sw_state()
11487 …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()
11493 static void bnxt_dump_cp_sw_state(struct bnxt_napi *bnapi) in bnxt_dump_cp_sw_state() argument
11495 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_dump_cp_sw_state()
11496 int i = bnapi->index; in bnxt_dump_cp_sw_state()
11498 netdev_info(bnapi->bp->dev, "[%d]: cp{fw_ring: %d raw_cons: %x}\n", in bnxt_dump_cp_sw_state()
11505 struct bnxt_napi *bnapi; in bnxt_dbg_dump_states() local
11508 bnapi = bp->bnapi[i]; in bnxt_dbg_dump_states()
11510 bnxt_dump_tx_sw_state(bnapi); in bnxt_dbg_dump_states()
11511 bnxt_dump_rx_sw_state(bnapi); in bnxt_dbg_dump_states()
11512 bnxt_dump_cp_sw_state(bnapi); in bnxt_dbg_dump_states()
11521 struct bnxt_napi *bnapi = rxr->bnapi; in bnxt_hwrm_rx_ring_reset() local
11530 cpr = &bnapi->cp_ring; in bnxt_hwrm_rx_ring_reset()
11534 req->ring_id = cpu_to_le16(bp->grp_info[bnapi->index].fw_grp_id); in bnxt_hwrm_rx_ring_reset()
11702 if (!rxr->bnapi->in_reset) in bnxt_rx_ring_reset()
11720 rxr->bnapi->in_reset = false; in bnxt_rx_ring_reset()
11722 cpr = &rxr->bnapi->cp_ring; in bnxt_rx_ring_reset()
11908 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_chk_missed_irq() local
11913 if (!bnapi) in bnxt_chk_missed_irq()
11916 cpr = &bnapi->cp_ring; in bnxt_chk_missed_irq()