Lines Matching defs:bnapi

323 	if (!rxr->bnapi->in_reset) {
324 rxr->bnapi->in_reset = true;
337 struct bnxt_napi *bnapi = txr->bnapi;
339 if (bnapi->tx_fault)
343 txr->txq_index, bnapi->tx_pkts,
346 bnapi->tx_fault = 1;
690 static void bnxt_tx_int(struct bnxt *bp, struct bnxt_napi *bnapi, int budget)
692 struct bnxt_tx_ring_info *txr = bnapi->tx_ring;
696 int nr_pkts = bnapi->tx_pkts;
751 bnapi->tx_pkts = 0;
923 struct bnxt_napi *bnapi = cpr->bnapi;
924 struct bnxt *bp = bnapi->bp;
925 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
1035 skb = napi_alloc_skb(&rxr->bnapi->napi, payload);
1091 struct bnxt_napi *bnapi = cpr->bnapi;
1093 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
1212 static inline struct sk_buff *bnxt_copy_skb(struct bnxt_napi *bnapi, u8 *data,
1216 struct bnxt *bp = bnapi->bp;
1220 skb = napi_alloc_skb(&bnapi->napi, len);
1596 struct bnxt_napi *bnapi = cpr->bnapi;
1597 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
1607 if (unlikely(bnapi->in_reset)) {
1659 skb = bnxt_copy_skb(bnapi, data_ptr, len, mapping);
1749 static void bnxt_deliver_skb(struct bnxt *bp, struct bnxt_napi *bnapi,
1759 skb_record_rx_queue(skb, bnapi->index);
1760 napi_gro_receive(&bnapi->napi, skb);
1788 struct bnxt_napi *bnapi = cpr->bnapi;
1789 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
1848 bnxt_deliver_skb(bp, bnapi, skb);
1896 bnapi->cp_ring.sw_stats.rx.rx_buf_errors++;
1934 skb = bnxt_copy_skb(bnapi, data_ptr, len, dma_addr);
2022 bnapi->cp_ring.sw_stats.rx.rx_l4_csum_errors++;
2042 bnxt_deliver_skb(bp, bnapi, skb);
2138 u16 grp_idx = bp->rx_ring[i].bnapi->index;
2345 rxr = bp->bnapi[grp_idx]->rx_ring;
2447 struct bnxt_napi *bnapi = dev_instance;
2448 struct bnxt *bp = bnapi->bp;
2449 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2454 napi_schedule(&bnapi->napi);
2471 struct bnxt_napi *bnapi = dev_instance;
2472 struct bnxt *bp = bnapi->bp;
2473 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2493 napi_schedule(&bnapi->napi);
2500 struct bnxt_napi *bnapi = cpr->bnapi;
2570 struct bnxt_tx_ring_info *txr = bnapi->tx_ring;
2580 bnapi->tx_pkts += tx_pkts;
2581 bnapi->events |= event;
2585 static void __bnxt_poll_work_done(struct bnxt *bp, struct bnxt_napi *bnapi,
2588 if (bnapi->tx_pkts && !bnapi->tx_fault)
2589 bnapi->tx_int(bp, bnapi, budget);
2591 if ((bnapi->events & BNXT_RX_EVENT) && !(bnapi->in_reset)) {
2592 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
2596 if (bnapi->events & BNXT_AGG_EVENT) {
2597 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
2601 bnapi->events = 0;
2607 struct bnxt_napi *bnapi = cpr->bnapi;
2618 __bnxt_poll_work_done(bp, bnapi, budget);
2624 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi);
2625 struct bnxt *bp = bnapi->bp;
2626 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2627 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
2700 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi);
2701 struct bnxt *bp = bnapi->bp;
2702 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2736 static int __bnxt_poll_cqs(struct bnxt *bp, struct bnxt_napi *bnapi, int budget)
2738 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2753 static void __bnxt_poll_cqs_done(struct bnxt *bp, struct bnxt_napi *bnapi,
2756 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2770 __bnxt_poll_work_done(bp, bnapi, budget);
2775 struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi);
2776 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
2779 struct bnxt *bp = bnapi->bp;
2790 work_done = __bnxt_poll_cqs(bp, bnapi, budget);
2800 __bnxt_poll_cqs_done(bp, bnapi, DBR_TYPE_CQ_ARMALL,
2831 __bnxt_poll_cqs_done(bp, bnapi, DBR_TYPE_CQ, budget);
3212 pp.napi = &rxr->bnapi->napi;
3343 ring->grp_idx = txr->bnapi->index;
3401 if (!bp->bnapi)
3404 struct bnxt_napi *bnapi = bp->bnapi[i];
3406 if (!bnapi)
3408 bnxt_free_cp_arrays(&bnapi->cp_ring);
3417 struct bnxt_napi *bnapi = bp->bnapi[i];
3420 if (!bnapi)
3422 rc = bnxt_alloc_cp_arrays(&bnapi->cp_ring, n);
3433 if (!bp->bnapi)
3437 struct bnxt_napi *bnapi = bp->bnapi[i];
3442 if (!bnapi)
3445 cpr = &bnapi->cp_ring;
3506 struct bnxt_napi *bnapi = bp->bnapi[i];
3510 if (!bnapi)
3513 cpr = &bnapi->cp_ring;
3514 cpr->bnapi = bnapi;
3536 cpr2->bnapi = bnapi;
3546 cpr2->bnapi = bnapi;
3557 struct bnxt_napi *bnapi = bp->bnapi[i];
3564 if (!bnapi)
3567 cpr = &bnapi->cp_ring;
3576 rxr = bnapi->rx_ring;
3599 txr = bnapi->tx_ring;
3725 struct bnxt_cp_ring_info *cpr = &bp->bnapi[i]->cp_ring;
4251 struct bnxt_napi *bnapi = bp->bnapi[0];
4260 cpr = &bnapi->cp_ring;
4334 if (!bp->bnapi)
4338 struct bnxt_napi *bnapi = bp->bnapi[i];
4339 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
4353 struct bnxt_napi *bnapi = bp->bnapi[i];
4354 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
4412 if (!bp->bnapi)
4416 struct bnxt_napi *bnapi = bp->bnapi[i];
4421 if (!bnapi)
4424 cpr = &bnapi->cp_ring;
4427 txr = bnapi->tx_ring;
4433 rxr = bnapi->rx_ring;
4514 kfree(bp->bnapi);
4515 bp->bnapi = NULL;
4524 void *bnapi;
4527 /* Allocate bnapi mem pointer array and mem block for
4533 bnapi = kzalloc(arr_size + size * bp->cp_nr_rings, GFP_KERNEL);
4534 if (!bnapi)
4537 bp->bnapi = bnapi;
4538 bnapi += arr_size;
4539 for (i = 0; i < bp->cp_nr_rings; i++, bnapi += size) {
4540 bp->bnapi[i] = bnapi;
4541 bp->bnapi[i]->index = i;
4542 bp->bnapi[i]->bp = bp;
4545 &bp->bnapi[i]->cp_ring;
4567 rxr->bnapi = bp->bnapi[i];
4568 bp->bnapi[i]->rx_ring = &bp->rx_ring[i];
4594 txr->bnapi = bp->bnapi[j];
4595 bp->bnapi[j]->tx_ring = txr;
4599 bp->bnapi[j]->tx_int = bnxt_tx_int;
4601 bp->bnapi[j]->flags |= BNXT_NAPI_FLAG_XDP;
4602 bp->bnapi[j]->tx_int = bnxt_tx_int_xdp;
4654 if (!bp->bnapi)
4658 struct bnxt_napi *bnapi = bp->bnapi[i];
4659 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
4669 struct bnxt_napi *bnapi = bp->bnapi[n];
4672 cpr = &bnapi->cp_ring;
4699 struct bnxt_napi *bnapi = bp->bnapi[i];
4700 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
5155 struct bnxt_napi *bnapi = rxr->bnapi;
5158 cpr = bnapi->cp_ring.cp_ring_arr[BNXT_RX_HDL];
5168 struct bnxt_napi *bnapi = txr->bnapi;
5171 cpr = bnapi->cp_ring.cp_ring_arr[BNXT_TX_HDL];
5511 grp_idx = bp->rx_ring[ring].bnapi->index;
5573 grp_idx = bp->rx_ring[i].bnapi->index;
5660 unsigned int grp_idx = bp->rx_ring[i].bnapi->index;
5902 struct bnxt_napi *bnapi = bp->bnapi[i];
5903 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
5934 struct bnxt_napi *bnapi = txr->bnapi;
5938 cpr = &bnapi->cp_ring;
5942 map_idx = bnapi->index;
5962 struct bnxt_napi *bnapi = rxr->bnapi;
5963 u32 map_idx = bnapi->index;
5974 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
6052 if (!bp->bnapi)
6073 u32 grp_idx = rxr->bnapi->index;
6095 u32 grp_idx = rxr->bnapi->index;
6120 struct bnxt_napi *bnapi = bp->bnapi[i];
6121 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
6747 static int __bnxt_hwrm_set_coal_nq(struct bnxt *bp, struct bnxt_napi *bnapi,
6751 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
6775 int bnxt_hwrm_set_ring_coal(struct bnxt *bp, struct bnxt_napi *bnapi)
6778 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
6790 if (!bnapi->rx_ring)
6799 req_rx->ring_id = cpu_to_le16(bnxt_cp_ring_for_rx(bp, bnapi->rx_ring));
6826 struct bnxt_napi *bnapi = bp->bnapi[i];
6831 if (!bnapi->rx_ring) {
6832 ring_id = bnxt_cp_ring_for_tx(bp, bnapi->tx_ring);
6835 ring_id = bnxt_cp_ring_for_rx(bp, bnapi->rx_ring);
6846 if (bnapi->rx_ring && bnapi->tx_ring) {
6848 ring_id = bnxt_cp_ring_for_tx(bp, bnapi->tx_ring);
6854 if (bnapi->rx_ring)
6858 __bnxt_hwrm_set_coal_nq(bp, bnapi, hw_coal);
6871 if (!bp->bnapi)
6888 struct bnxt_napi *bnapi = bp->bnapi[i];
6889 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
6925 struct bnxt_napi *bnapi = bp->bnapi[i];
6926 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
8356 struct bnxt_napi *bnapi = bp->bnapi[i];
8360 cpr = &bnapi->cp_ring;
9283 if (!bp->irq_tbl || !bp->bnapi)
9296 free_irq(irq->vector, bp->bnapi[i]);
9328 if (rmap && bp->bnapi[i]->rx_ring) {
9337 bp->bnapi[i]);
9365 if (!bp->bnapi)
9369 struct bnxt_napi *bnapi = bp->bnapi[i];
9371 __netif_napi_del(&bnapi->napi);
9383 struct bnxt_napi *bnapi;
9393 bnapi = bp->bnapi[i];
9394 netif_napi_add(bp->dev, &bnapi->napi, poll_fn);
9397 bnapi = bp->bnapi[cp_nr_rings];
9398 netif_napi_add(bp->dev, &bnapi->napi,
9402 bnapi = bp->bnapi[0];
9403 netif_napi_add(bp->dev, &bnapi->napi, bnxt_poll);
9411 if (!bp->bnapi ||
9416 struct bnxt_napi *bnapi = bp->bnapi[i];
9419 cpr = &bnapi->cp_ring;
9420 if (bnapi->tx_fault)
9422 if (bnapi->in_reset)
9424 napi_disable(&bnapi->napi);
9425 if (bnapi->rx_ring)
9436 struct bnxt_napi *bnapi = bp->bnapi[i];
9439 bnapi->tx_fault = 0;
9441 cpr = &bnapi->cp_ring;
9442 bnapi->in_reset = false;
9444 bnapi->tx_pkts = 0;
9446 if (bnapi->rx_ring) {
9450 napi_enable(&bnapi->napi);
10713 if (bp->bnapi && irq_re_init) {
10874 struct bnxt_napi *bnapi = bp->bnapi[i];
10875 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
10992 bnxt_get_one_ring_err_stats(bp, stats, &bp->bnapi[i]->cp_ring);
11552 static void bnxt_dump_tx_sw_state(struct bnxt_napi *bnapi)
11554 struct bnxt_tx_ring_info *txr = bnapi->tx_ring;
11555 int i = bnapi->index;
11560 netdev_info(bnapi->bp->dev, "[%d]: tx{fw_ring: %d prod: %x cons: %x}\n",
11565 static void bnxt_dump_rx_sw_state(struct bnxt_napi *bnapi)
11567 struct bnxt_rx_ring_info *rxr = bnapi->rx_ring;
11568 int i = bnapi->index;
11573 netdev_info(bnapi->bp->dev, "[%d]: rx{fw_ring: %d prod: %x} rx_agg{fw_ring: %d agg_prod: %x sw_agg_prod: %x}\n",
11579 static void bnxt_dump_cp_sw_state(struct bnxt_napi *bnapi)
11581 struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring;
11582 int i = bnapi->index;
11584 netdev_info(bnapi->bp->dev, "[%d]: cp{fw_ring: %d raw_cons: %x}\n",
11591 struct bnxt_napi *bnapi;
11594 bnapi = bp->bnapi[i];
11596 bnxt_dump_tx_sw_state(bnapi);
11597 bnxt_dump_rx_sw_state(bnapi);
11598 bnxt_dump_cp_sw_state(bnapi);
11607 struct bnxt_napi *bnapi = rxr->bnapi;
11616 cpr = &bnapi->cp_ring;
11620 req->ring_id = cpu_to_le16(bp->grp_info[bnapi->index].fw_grp_id);
11777 if (!rxr->bnapi->in_reset)
11795 rxr->bnapi->in_reset = false;
11797 cpr = &rxr->bnapi->cp_ring;
11983 struct bnxt_napi *bnapi = bp->bnapi[i];
11988 if (!bnapi)
11991 cpr = &bnapi->cp_ring;