Lines Matching refs:bnapi

664 static void bnxt_tx_int(struct bnxt *bp, struct bnxt_napi *bnapi, int nr_pkts)  in bnxt_tx_int()  argument
666 struct bnxt_tx_ring_info *txr = bnapi->tx_ring; in bnxt_tx_int()
909 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_reuse_rx_agg_bufs() local
910 struct bnxt *bp = bnapi->bp; in bnxt_reuse_rx_agg_bufs()
911 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_reuse_rx_agg_bufs()
990 skb = napi_alloc_skb(&rxr->bnapi->napi, payload); in bnxt_rx_page_skb()
1044 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_rx_pages() local
1046 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_rx_pages()
1129 static inline struct sk_buff *bnxt_copy_skb(struct bnxt_napi *bnapi, u8 *data, in bnxt_copy_skb() argument
1133 struct bnxt *bp = bnapi->bp; in bnxt_copy_skb()
1137 skb = napi_alloc_skb(&bnapi->napi, len); in bnxt_copy_skb()
1205 if (!rxr->bnapi->in_reset) { in bnxt_sched_reset()
1206 rxr->bnapi->in_reset = true; in bnxt_sched_reset()
1545 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_tpa_end() local
1546 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_tpa_end()
1556 if (unlikely(bnapi->in_reset)) { in bnxt_tpa_end()
1608 skb = bnxt_copy_skb(bnapi, data_ptr, len, mapping); in bnxt_tpa_end()
1694 static void bnxt_deliver_skb(struct bnxt *bp, struct bnxt_napi *bnapi, in bnxt_deliver_skb() argument
1702 skb_record_rx_queue(skb, bnapi->index); in bnxt_deliver_skb()
1703 napi_gro_receive(&bnapi->napi, skb); in bnxt_deliver_skb()
1716 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_rx_pkt() local
1717 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_rx_pkt()
1773 bnxt_deliver_skb(bp, bnapi, skb); in bnxt_rx_pkt()
1821 bnapi->cp_ring.sw_stats.rx.rx_buf_errors++; in bnxt_rx_pkt()
1841 skb = bnxt_copy_skb(bnapi, data_ptr, len, dma_addr); in bnxt_rx_pkt()
1911 bnapi->cp_ring.sw_stats.rx.rx_l4_csum_errors++; in bnxt_rx_pkt()
1915 bnxt_deliver_skb(bp, bnapi, skb); in bnxt_rx_pkt()
2007 u16 grp_idx = bp->rx_ring[i].bnapi->index; in bnxt_agg_ring_id_to_grp_idx()
2167 rxr = bp->bnapi[grp_idx]->rx_ring; in bnxt_async_event_process()
2224 struct bnxt_napi *bnapi = dev_instance; in bnxt_msix() local
2225 struct bnxt *bp = bnapi->bp; in bnxt_msix()
2226 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_msix()
2231 napi_schedule(&bnapi->napi); in bnxt_msix()
2248 struct bnxt_napi *bnapi = dev_instance; in bnxt_inta() local
2249 struct bnxt *bp = bnapi->bp; in bnxt_inta()
2250 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_inta()
2270 napi_schedule(&bnapi->napi); in bnxt_inta()
2277 struct bnxt_napi *bnapi = cpr->bnapi; in __bnxt_poll_work() local
2347 struct bnxt_tx_ring_info *txr = bnapi->tx_ring; in __bnxt_poll_work()
2357 bnapi->tx_pkts += tx_pkts; in __bnxt_poll_work()
2358 bnapi->events |= event; in __bnxt_poll_work()
2362 static void __bnxt_poll_work_done(struct bnxt *bp, struct bnxt_napi *bnapi) in __bnxt_poll_work_done() argument
2364 if (bnapi->tx_pkts) { in __bnxt_poll_work_done()
2365 bnapi->tx_int(bp, bnapi, bnapi->tx_pkts); in __bnxt_poll_work_done()
2366 bnapi->tx_pkts = 0; in __bnxt_poll_work_done()
2369 if ((bnapi->events & BNXT_RX_EVENT) && !(bnapi->in_reset)) { in __bnxt_poll_work_done()
2370 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in __bnxt_poll_work_done()
2372 if (bnapi->events & BNXT_AGG_EVENT) in __bnxt_poll_work_done()
2376 bnapi->events = 0; in __bnxt_poll_work_done()
2382 struct bnxt_napi *bnapi = cpr->bnapi; in bnxt_poll_work() local
2393 __bnxt_poll_work_done(bp, bnapi); in bnxt_poll_work()
2399 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi); in bnxt_poll_nitroa0() local
2400 struct bnxt *bp = bnapi->bp; in bnxt_poll_nitroa0()
2401 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_poll_nitroa0()
2402 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_poll_nitroa0()
2470 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi); in bnxt_poll() local
2471 struct bnxt *bp = bnapi->bp; in bnxt_poll()
2472 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_poll()
2502 static int __bnxt_poll_cqs(struct bnxt *bp, struct bnxt_napi *bnapi, int budget) in __bnxt_poll_cqs() argument
2504 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in __bnxt_poll_cqs()
2519 static void __bnxt_poll_cqs_done(struct bnxt *bp, struct bnxt_napi *bnapi, in __bnxt_poll_cqs_done() argument
2522 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in __bnxt_poll_cqs_done()
2536 __bnxt_poll_work_done(bp, bnapi); in __bnxt_poll_cqs_done()
2541 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi); in bnxt_poll_p5() local
2542 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_poll_p5()
2544 struct bnxt *bp = bnapi->bp; in bnxt_poll_p5()
2551 work_done = __bnxt_poll_cqs(bp, bnapi, budget); in bnxt_poll_p5()
2561 __bnxt_poll_cqs_done(bp, bnapi, DBR_TYPE_CQ_ARMALL); in bnxt_poll_p5()
2591 __bnxt_poll_cqs_done(bp, bnapi, DBR_TYPE_CQ); in bnxt_poll_p5()
3075 ring->grp_idx = txr->bnapi->index; in bnxt_alloc_tx_rings()
3108 if (!bp->bnapi) in bnxt_free_cp_rings()
3112 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_free_cp_rings() local
3117 if (!bnapi) in bnxt_free_cp_rings()
3120 cpr = &bnapi->cp_ring; in bnxt_free_cp_rings()
3173 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_alloc_cp_rings() local
3177 if (!bnapi) in bnxt_alloc_cp_rings()
3180 cpr = &bnapi->cp_ring; in bnxt_alloc_cp_rings()
3181 cpr->bnapi = bnapi; in bnxt_alloc_cp_rings()
3203 cpr2->bnapi = bnapi; in bnxt_alloc_cp_rings()
3213 cpr2->bnapi = bnapi; in bnxt_alloc_cp_rings()
3224 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_init_ring_struct() local
3231 if (!bnapi) in bnxt_init_ring_struct()
3234 cpr = &bnapi->cp_ring; in bnxt_init_ring_struct()
3243 rxr = bnapi->rx_ring; in bnxt_init_ring_struct()
3266 txr = bnapi->tx_ring; in bnxt_init_ring_struct()
3392 struct bnxt_cp_ring_info *cpr = &bp->bnapi[i]->cp_ring; in bnxt_init_cp_rings()
3944 struct bnxt_napi *bnapi = bp->bnapi[0]; in bnxt_init_stats() local
3953 cpr = &bnapi->cp_ring; in bnxt_init_stats()
4027 if (!bp->bnapi) in bnxt_free_ring_stats()
4031 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_free_ring_stats() local
4032 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_free_ring_stats()
4046 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_alloc_stats() local
4047 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_alloc_stats()
4105 if (!bp->bnapi) in bnxt_clear_ring_indices()
4109 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_clear_ring_indices() local
4114 if (!bnapi) in bnxt_clear_ring_indices()
4117 cpr = &bnapi->cp_ring; in bnxt_clear_ring_indices()
4120 txr = bnapi->tx_ring; in bnxt_clear_ring_indices()
4126 rxr = bnapi->rx_ring; in bnxt_clear_ring_indices()
4208 kfree(bp->bnapi); in bnxt_free_mem()
4209 bp->bnapi = NULL; in bnxt_free_mem()
4218 void *bnapi; in bnxt_alloc_mem() local
4227 bnapi = kzalloc(arr_size + size * bp->cp_nr_rings, GFP_KERNEL); in bnxt_alloc_mem()
4228 if (!bnapi) in bnxt_alloc_mem()
4231 bp->bnapi = bnapi; in bnxt_alloc_mem()
4232 bnapi += arr_size; in bnxt_alloc_mem()
4233 for (i = 0; i < bp->cp_nr_rings; i++, bnapi += size) { in bnxt_alloc_mem()
4234 bp->bnapi[i] = bnapi; in bnxt_alloc_mem()
4235 bp->bnapi[i]->index = i; in bnxt_alloc_mem()
4236 bp->bnapi[i]->bp = bp; in bnxt_alloc_mem()
4239 &bp->bnapi[i]->cp_ring; in bnxt_alloc_mem()
4261 rxr->bnapi = bp->bnapi[i]; in bnxt_alloc_mem()
4262 bp->bnapi[i]->rx_ring = &bp->rx_ring[i]; in bnxt_alloc_mem()
4288 txr->bnapi = bp->bnapi[j]; in bnxt_alloc_mem()
4289 bp->bnapi[j]->tx_ring = txr; in bnxt_alloc_mem()
4293 bp->bnapi[j]->tx_int = bnxt_tx_int; in bnxt_alloc_mem()
4295 bp->bnapi[j]->flags |= BNXT_NAPI_FLAG_XDP; in bnxt_alloc_mem()
4296 bp->bnapi[j]->tx_int = bnxt_tx_int_xdp; in bnxt_alloc_mem()
4344 if (!bp->bnapi) in bnxt_disable_int()
4348 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_disable_int() local
4349 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_disable_int()
4359 struct bnxt_napi *bnapi = bp->bnapi[n]; in bnxt_cp_num_to_irq_num() local
4362 cpr = &bnapi->cp_ring; in bnxt_cp_num_to_irq_num()
4386 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_enable_int() local
4387 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_enable_int()
5073 struct bnxt_napi *bnapi = rxr->bnapi; in bnxt_cp_ring_for_rx() local
5076 cpr = bnapi->cp_ring.cp_ring_arr[BNXT_RX_HDL]; in bnxt_cp_ring_for_rx()
5086 struct bnxt_napi *bnapi = txr->bnapi; in bnxt_cp_ring_for_tx() local
5089 cpr = bnapi->cp_ring.cp_ring_arr[BNXT_TX_HDL]; in bnxt_cp_ring_for_tx()
5380 grp_idx = bp->rx_ring[ring].bnapi->index; in bnxt_hwrm_vnic_cfg()
5436 grp_idx = bp->rx_ring[i].bnapi->index; in bnxt_hwrm_vnic_alloc()
5517 unsigned int grp_idx = bp->rx_ring[i].bnapi->index; in bnxt_hwrm_ring_grp_alloc()
5752 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_ring_alloc() local
5753 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_ring_alloc()
5784 struct bnxt_napi *bnapi = txr->bnapi; in bnxt_hwrm_ring_alloc() local
5788 cpr = &bnapi->cp_ring; in bnxt_hwrm_ring_alloc()
5792 map_idx = bnapi->index; in bnxt_hwrm_ring_alloc()
5812 struct bnxt_napi *bnapi = rxr->bnapi; in bnxt_hwrm_ring_alloc() local
5813 u32 map_idx = bnapi->index; in bnxt_hwrm_ring_alloc()
5824 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_ring_alloc()
5898 if (!bp->bnapi) in bnxt_hwrm_ring_free()
5919 u32 grp_idx = rxr->bnapi->index; in bnxt_hwrm_ring_free()
5941 u32 grp_idx = rxr->bnapi->index; in bnxt_hwrm_ring_free()
5966 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_ring_free() local
5967 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_ring_free()
6576 static int __bnxt_hwrm_set_coal_nq(struct bnxt *bp, struct bnxt_napi *bnapi, in __bnxt_hwrm_set_coal_nq() argument
6580 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in __bnxt_hwrm_set_coal_nq()
6601 int bnxt_hwrm_set_ring_coal(struct bnxt *bp, struct bnxt_napi *bnapi) in bnxt_hwrm_set_ring_coal() argument
6604 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_set_ring_coal()
6615 if (!bnapi->rx_ring) in bnxt_hwrm_set_ring_coal()
6623 req_rx.ring_id = cpu_to_le16(bnxt_cp_ring_for_rx(bp, bnapi->rx_ring)); in bnxt_hwrm_set_ring_coal()
6645 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_set_coal() local
6650 if (!bnapi->rx_ring) { in bnxt_hwrm_set_coal()
6651 ring_id = bnxt_cp_ring_for_tx(bp, bnapi->tx_ring); in bnxt_hwrm_set_coal()
6654 ring_id = bnxt_cp_ring_for_rx(bp, bnapi->rx_ring); in bnxt_hwrm_set_coal()
6666 if (bnapi->rx_ring && bnapi->tx_ring) { in bnxt_hwrm_set_coal()
6668 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()
6691 if (!bp->bnapi) in bnxt_hwrm_stat_ctx_free()
6702 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_stat_ctx_free() local
6703 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_stat_ctx_free()
6737 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_hwrm_stat_ctx_alloc() local
6738 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_hwrm_stat_ctx_alloc()
7897 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_accumulate_all_stats() local
7901 cpr = &bnapi->cp_ring; in bnxt_accumulate_all_stats()
8782 if (!bp->irq_tbl || !bp->bnapi) in bnxt_free_irq()
8795 free_irq(irq->vector, bp->bnapi[i]); in bnxt_free_irq()
8827 if (rmap && bp->bnapi[i]->rx_ring) { in bnxt_request_irq()
8836 bp->bnapi[i]); in bnxt_request_irq()
8864 if (!bp->bnapi) in bnxt_del_napi()
8868 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_del_napi() local
8870 __netif_napi_del(&bnapi->napi); in bnxt_del_napi()
8882 struct bnxt_napi *bnapi; in bnxt_init_napi() local
8892 bnapi = bp->bnapi[i]; in bnxt_init_napi()
8893 netif_napi_add(bp->dev, &bnapi->napi, poll_fn, 64); in bnxt_init_napi()
8896 bnapi = bp->bnapi[cp_nr_rings]; in bnxt_init_napi()
8897 netif_napi_add(bp->dev, &bnapi->napi, in bnxt_init_napi()
8901 bnapi = bp->bnapi[0]; in bnxt_init_napi()
8902 netif_napi_add(bp->dev, &bnapi->napi, bnxt_poll, 64); in bnxt_init_napi()
8910 if (!bp->bnapi) in bnxt_disable_napi()
8914 struct bnxt_cp_ring_info *cpr = &bp->bnapi[i]->cp_ring; in bnxt_disable_napi()
8916 napi_disable(&bp->bnapi[i]->napi); in bnxt_disable_napi()
8917 if (bp->bnapi[i]->rx_ring) in bnxt_disable_napi()
8927 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_enable_napi() local
8930 cpr = &bnapi->cp_ring; in bnxt_enable_napi()
8931 if (bnapi->in_reset) in bnxt_enable_napi()
8933 bnapi->in_reset = false; in bnxt_enable_napi()
8935 if (bnapi->rx_ring) { in bnxt_enable_napi()
8939 napi_enable(&bnapi->napi); in bnxt_enable_napi()
10021 if (bp->bnapi && irq_re_init) in __bnxt_close_nic()
10166 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_get_ring_stats() local
10167 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_get_ring_stats()
10649 static void bnxt_dump_tx_sw_state(struct bnxt_napi *bnapi) in bnxt_dump_tx_sw_state() argument
10651 struct bnxt_tx_ring_info *txr = bnapi->tx_ring; in bnxt_dump_tx_sw_state()
10652 int i = bnapi->index; in bnxt_dump_tx_sw_state()
10657 netdev_info(bnapi->bp->dev, "[%d]: tx{fw_ring: %d prod: %x cons: %x}\n", in bnxt_dump_tx_sw_state()
10662 static void bnxt_dump_rx_sw_state(struct bnxt_napi *bnapi) in bnxt_dump_rx_sw_state() argument
10664 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring; in bnxt_dump_rx_sw_state()
10665 int i = bnapi->index; in bnxt_dump_rx_sw_state()
10670 …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()
10676 static void bnxt_dump_cp_sw_state(struct bnxt_napi *bnapi) in bnxt_dump_cp_sw_state() argument
10678 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; in bnxt_dump_cp_sw_state()
10679 int i = bnapi->index; in bnxt_dump_cp_sw_state()
10681 netdev_info(bnapi->bp->dev, "[%d]: cp{fw_ring: %d raw_cons: %x}\n", in bnxt_dump_cp_sw_state()
10688 struct bnxt_napi *bnapi; in bnxt_dbg_dump_states() local
10691 bnapi = bp->bnapi[i]; in bnxt_dbg_dump_states()
10693 bnxt_dump_tx_sw_state(bnapi); in bnxt_dbg_dump_states()
10694 bnxt_dump_rx_sw_state(bnapi); in bnxt_dbg_dump_states()
10695 bnxt_dump_cp_sw_state(bnapi); in bnxt_dbg_dump_states()
10704 struct bnxt_napi *bnapi = rxr->bnapi; in bnxt_hwrm_rx_ring_reset() local
10708 cpr = &bnapi->cp_ring; in bnxt_hwrm_rx_ring_reset()
10712 req.ring_id = cpu_to_le16(bp->grp_info[bnapi->index].fw_grp_id); in bnxt_hwrm_rx_ring_reset()
10872 if (!rxr->bnapi->in_reset) in bnxt_rx_ring_reset()
10890 rxr->bnapi->in_reset = false; in bnxt_rx_ring_reset()
10892 cpr = &rxr->bnapi->cp_ring; in bnxt_rx_ring_reset()
11051 struct bnxt_napi *bnapi = bp->bnapi[i]; in bnxt_chk_missed_irq() local
11056 if (!bnapi) in bnxt_chk_missed_irq()
11059 cpr = &bnapi->cp_ring; in bnxt_chk_missed_irq()