| /linux/drivers/net/wwan/t7xx/ |
| H A D | t7xx_hif_dpmaif_rx.c | 84 struct dpmaif_rx_queue *rxq = &dpmaif_ctrl->rxq[q_num]; in t7xx_dpmaif_update_bat_wr_idx() local 85 struct dpmaif_bat_request *bat_req = rxq->bat_req; in t7xx_dpmaif_update_bat_wr_idx() 88 if (!rxq->que_started) { in t7xx_dpmaif_update_bat_wr_idx() 89 dev_err(dpmaif_ctrl->dev, "RX queue %d has not been started\n", rxq->index); in t7xx_dpmaif_update_bat_wr_idx() 236 static int t7xx_dpmaifq_release_pit_entry(struct dpmaif_rx_queue *rxq, in t7xx_dpmaifq_release_pit_entry() argument 239 struct dpmaif_hw_info *hw_info = &rxq->dpmaif_ctrl->hw_info; in t7xx_dpmaifq_release_pit_entry() 243 if (!rxq->que_started) in t7xx_dpmaifq_release_pit_entry() 246 if (rel_entry_num >= rxq->pit_size_cnt) { in t7xx_dpmaifq_release_pit_entry() 247 dev_err(rxq->dpmaif_ctrl->dev, "Invalid PIT release index\n"); in t7xx_dpmaifq_release_pit_entry() 251 old_rel_idx = rxq->pit_release_rd_idx; in t7xx_dpmaifq_release_pit_entry() [all …]
|
| H A D | t7xx_hif_dpmaif.c | 227 rx_q = &dpmaif_ctrl->rxq[rx_idx]; in t7xx_dpmaif_rxtx_sw_allocs() 267 rx_q = &dpmaif_ctrl->rxq[i]; in t7xx_dpmaif_rxtx_sw_allocs() 294 rx_q = &dpmaif_ctrl->rxq[i]; in t7xx_dpmaif_sw_release() 303 struct dpmaif_rx_queue *rxq; in t7xx_dpmaif_start() local 314 rxq = &dpmaif_ctrl->rxq[i]; in t7xx_dpmaif_start() 315 rxq->que_started = true; in t7xx_dpmaif_start() 316 rxq->index = i; in t7xx_dpmaif_start() 317 rxq->budget = rxq->bat_req->bat_size_cnt - 1; in t7xx_dpmaif_start() 319 hw_init_para.pkt_bat_base_addr[i] = rxq->bat_req->bat_bus_addr; in t7xx_dpmaif_start() 320 hw_init_para.pkt_bat_size_cnt[i] = rxq->bat_req->bat_size_cnt; in t7xx_dpmaif_start() [all …]
|
| /linux/drivers/net/ethernet/huawei/hinic/ |
| H A D | hinic_rx.c | 53 static void hinic_rxq_clean_stats(struct hinic_rxq *rxq) in hinic_rxq_clean_stats() argument 55 struct hinic_rxq_stats *rxq_stats = &rxq->rxq_stats; in hinic_rxq_clean_stats() 71 void hinic_rxq_get_stats(struct hinic_rxq *rxq, struct hinic_rxq_stats *stats) in hinic_rxq_get_stats() argument 73 struct hinic_rxq_stats *rxq_stats = &rxq->rxq_stats; in hinic_rxq_get_stats() 91 static void rxq_stats_init(struct hinic_rxq *rxq) in rxq_stats_init() argument 93 struct hinic_rxq_stats *rxq_stats = &rxq->rxq_stats; in rxq_stats_init() 96 hinic_rxq_clean_stats(rxq); in rxq_stats_init() 99 static void rx_csum(struct hinic_rxq *rxq, u32 status, in rx_csum() argument 102 struct net_device *netdev = rxq->netdev; in rx_csum() 115 rxq->rxq_stats.csum_errors++; in rx_csum() [all …]
|
| H A D | hinic_rx.h | 44 void hinic_rxq_get_stats(struct hinic_rxq *rxq, struct hinic_rxq_stats *stats); 46 int hinic_init_rxq(struct hinic_rxq *rxq, struct hinic_rq *rq, 49 void hinic_clean_rxq(struct hinic_rxq *rxq);
|
| /linux/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/ |
| H A D | rx.c | 120 static int iwl_rxq_space(const struct iwl_rxq *rxq) in iwl_rxq_space() argument 123 WARN_ON(rxq->queue_size & (rxq->queue_size - 1)); in iwl_rxq_space() 131 return (rxq->read - rxq->write - 1) & (rxq->queue_size - 1); in iwl_rxq_space() 168 struct iwl_rxq *rxq) in iwl_pcie_rxq_inc_wr_ptr() argument 172 lockdep_assert_held(&rxq->lock); in iwl_pcie_rxq_inc_wr_ptr() 188 rxq->need_update = true; in iwl_pcie_rxq_inc_wr_ptr() 193 rxq->write_actual = round_down(rxq->write, 8); in iwl_pcie_rxq_inc_wr_ptr() 195 iwl_write32(trans, FH_RSCSR_CHNL0_WPTR, rxq->write_actual); in iwl_pcie_rxq_inc_wr_ptr() 197 iwl_write32(trans, HBUS_TARG_WRPTR, rxq->write_actual | in iwl_pcie_rxq_inc_wr_ptr() 198 HBUS_TARG_WRPTR_RX_Q(rxq->id)); in iwl_pcie_rxq_inc_wr_ptr() [all …]
|
| /linux/drivers/net/ethernet/qlogic/qede/ |
| H A D | qede_fp.c | 28 int qede_alloc_rx_buffer(struct qede_rx_queue *rxq, bool allow_lazy) in qede_alloc_rx_buffer() argument 39 if (allow_lazy && likely(rxq->filled_buffers > 12)) { in qede_alloc_rx_buffer() 40 rxq->filled_buffers--; in qede_alloc_rx_buffer() 51 mapping = dma_map_page(rxq->dev, data, 0, in qede_alloc_rx_buffer() 52 PAGE_SIZE, rxq->data_direction); in qede_alloc_rx_buffer() 53 if (unlikely(dma_mapping_error(rxq->dev, mapping))) { in qede_alloc_rx_buffer() 58 sw_rx_data = &rxq->sw_rx_ring[rxq->sw_rx_prod & NUM_RX_BDS_MAX]; in qede_alloc_rx_buffer() 64 rx_bd = (struct eth_rx_bd *)qed_chain_produce(&rxq->rx_bd_ring); in qede_alloc_rx_buffer() 68 rxq->rx_headroom); in qede_alloc_rx_buffer() 70 rxq->sw_rx_prod++; in qede_alloc_rx_buffer() [all …]
|
| /linux/drivers/net/ethernet/intel/idpf/ |
| H A D | xdp.c | 11 int (*fn)(struct idpf_rx_queue *rxq, void *arg), in idpf_rxq_for_each() argument 33 q = &rx_qgrp->splitq.rxq_sets[j]->rxq; in idpf_rxq_for_each() 46 static int __idpf_xdp_rxq_info_init(struct idpf_rx_queue *rxq, void *arg) in __idpf_xdp_rxq_info_init() argument 48 const struct idpf_vport *vport = rxq->q_vector->vport; in __idpf_xdp_rxq_info_init() 54 if (idpf_queue_has(XSK, rxq)) in __idpf_xdp_rxq_info_init() 55 frag_size = rxq->bufq_sets[0].bufq.truesize; in __idpf_xdp_rxq_info_init() 57 err = __xdp_rxq_info_reg(&rxq->xdp_rxq, vport->netdev, rxq->idx, in __idpf_xdp_rxq_info_init() 58 rxq->q_vector->napi.napi_id, in __idpf_xdp_rxq_info_init() 66 if (idpf_queue_has(XSK, rxq)) { in __idpf_xdp_rxq_info_init() 67 err = xdp_rxq_info_reg_mem_model(&rxq->xdp_rxq, in __idpf_xdp_rxq_info_init() [all …]
|
| H A D | xsk.c | 13 struct idpf_rx_queue *rxq) in idpf_xsk_setup_rxq() argument 17 pool = xsk_get_pool_from_qid(vport->netdev, rxq->idx); in idpf_xsk_setup_rxq() 21 rxq->pool = pool; in idpf_xsk_setup_rxq() 23 idpf_queue_set(XSK, rxq); in idpf_xsk_setup_rxq() 38 qid = grp->splitq.rxq_sets[0]->rxq.idx; in idpf_xsk_setup_bufq() 128 struct idpf_rx_queue *rxq; in idpf_xsk_clear_queue() local 133 rxq = q; in idpf_xsk_clear_queue() 134 if (!idpf_queue_has_clear(XSK, rxq)) in idpf_xsk_clear_queue() 137 rxq->pool = NULL; in idpf_xsk_clear_queue() 467 int idpf_xskrq_poll(struct idpf_rx_queue *rxq, u32 budget) in idpf_xskrq_poll() argument [all …]
|
| /linux/drivers/net/ethernet/huawei/hinic3/ |
| H A D | hinic3_irq.c | 19 struct hinic3_rxq *rxq = irq_cfg->rxq; in hinic3_net_dim() local 26 dim_update_sample(irq_cfg->total_events, rxq->rxq_stats.packets, in hinic3_net_dim() 27 rxq->rxq_stats.bytes, &sample); in hinic3_net_dim() 28 net_dim(&rxq->dim, &sample); in hinic3_net_dim() 46 work_done = hinic3_rx_poll(irq_cfg->rxq, budget); in hinic3_poll() 184 struct hinic3_rxq *rxq; in hinic3_rx_dim_work() local 188 rxq = container_of(dim, struct hinic3_rxq, dim); in hinic3_rx_dim_work() 192 hinic3_update_queue_coal(rxq->netdev, rxq->q_id, in hinic3_rx_dim_work() 216 irq_cfg->rxq = &nic_dev->rxqs[q_id]; in hinic3_qps_irq_init() 231 INIT_WORK(&irq_cfg->rxq->dim.work, hinic3_rx_dim_work); in hinic3_qps_irq_init() [all …]
|
| /linux/drivers/net/ethernet/atheros/alx/ |
| H A D | main.c | 73 struct alx_rx_queue *rxq = alx->qnapi[0]->rxq; in alx_refill_rx_ring() local 79 next = cur = rxq->write_idx; in alx_refill_rx_ring() 82 cur_buf = &rxq->bufs[cur]; in alx_refill_rx_ring() 84 while (!cur_buf->skb && next != rxq->read_idx) { in alx_refill_rx_ring() 85 struct alx_rfd *rfd = &rxq->rfd[cur]; in alx_refill_rx_ring() 127 cur_buf = &rxq->bufs[cur]; in alx_refill_rx_ring() 134 rxq->write_idx = cur; in alx_refill_rx_ring() 216 static int alx_clean_rx_irq(struct alx_rx_queue *rxq, int budget) in alx_clean_rx_irq() argument 225 alx = netdev_priv(rxq->netdev); in alx_clean_rx_irq() 228 rrd = &rxq->rrd[rxq->rrd_read_idx]; in alx_clean_rx_irq() [all …]
|
| /linux/tools/testing/selftests/bpf/ |
| H A D | xdp_hw_metadata.c | 73 int rxq; variable 444 static int verify_metadata(struct xsk *rx_xsk, int rxq, int server_fd, clockid_t clock_id) in verify_metadata() argument 447 struct pollfd fds[rxq + 1]; in verify_metadata() 455 for (i = 0; i < rxq; i++) { in verify_metadata() 461 fds[rxq].fd = server_fd; in verify_metadata() 462 fds[rxq].events = POLLIN; in verify_metadata() 463 fds[rxq].revents = 0; in verify_metadata() 468 for (i = 0; i < rxq; i++) { in verify_metadata() 474 ret = poll(fds, rxq + 1, 1000); in verify_metadata() 483 if (fds[rxq].revents) in verify_metadata() [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/ |
| H A D | en_arfs.c | 90 int rxq; member 436 arfs_rule->rxq, arfs_rule->flow_id, in arfs_may_expire_flow() 448 priv->channel_stats[arfs_rule->rxq]->rq.arfs_expired++; in arfs_may_expire_flow() 527 priv->channel_stats[arfs_rule->rxq]->rq.arfs_err++; in arfs_add_rule() 596 dest.tir_num = mlx5e_rx_res_get_tirn_direct(priv->rx_res, arfs_rule->rxq); in arfs_add_rule() 600 priv->channel_stats[arfs_rule->rxq]->rq.arfs_err++; in arfs_add_rule() 603 __func__, arfs_rule->filter_id, arfs_rule->rxq, in arfs_add_rule() 613 struct mlx5_flow_handle *rule, u16 rxq) in arfs_modify_rule_rq() argument 619 dst.tir_num = mlx5e_rx_res_get_tirn_direct(priv->rx_res, rxq); in arfs_modify_rule_rq() 622 priv->channel_stats[rxq]->rq.arfs_err++; in arfs_modify_rule_rq() [all …]
|
| /linux/tools/testing/selftests/bpf/progs/ |
| H A D | test_xdp_bpf2bpf.c | 29 struct xdp_rxq_info *rxq; member 49 meta.ifindex = xdp->rxq->dev->ifindex; in BPF_PROG() 56 test_result_fentry = xdp->rxq->dev->ifindex; in BPF_PROG()
|
| /linux/drivers/net/ethernet/intel/ice/virt/ |
| H A D | queues.c | 781 if (!qci->qpair[i].rxq.crc_disable) in ice_vc_cfg_qs_msg() 792 qpi->rxq.vsi_id != qci->vsi_id || in ice_vc_cfg_qs_msg() 793 qpi->rxq.queue_id != qpi->txq.queue_id || in ice_vc_cfg_qs_msg() 796 !ice_vc_isvalid_ring_len(qpi->rxq.ring_len) || in ice_vc_cfg_qs_msg() 801 q_idx = qpi->rxq.queue_id; in ice_vc_cfg_qs_msg() 828 if (qpi->rxq.ring_len > 0) { in ice_vc_cfg_qs_msg() 833 ring->dma = qpi->rxq.dma_ring_addr; in ice_vc_cfg_qs_msg() 834 ring->count = qpi->rxq.ring_len; in ice_vc_cfg_qs_msg() 836 if (qpi->rxq.crc_disable) in ice_vc_cfg_qs_msg() 841 if (qpi->rxq.databuffer_size != 0 && in ice_vc_cfg_qs_msg() [all …]
|
| /linux/drivers/net/ethernet/chelsio/cxgb4vf/ |
| H A D | sge.c | 1564 static void do_gro(struct sge_eth_rxq *rxq, const struct pkt_gl *gl, in do_gro() argument 1567 struct adapter *adapter = rxq->rspq.adapter; in do_gro() 1573 skb = napi_get_frags(&rxq->rspq.napi); in do_gro() 1576 rxq->stats.rx_drops++; in do_gro() 1585 skb_record_rx_queue(skb, rxq->rspq.idx); in do_gro() 1591 rxq->stats.vlan_ex++; in do_gro() 1593 ret = napi_gro_frags(&rxq->rspq.napi); in do_gro() 1596 rxq->stats.lro_pkts++; in do_gro() 1598 rxq->stats.lro_merged++; in do_gro() 1599 rxq->stats.pkts++; in do_gro() [all …]
|
| /linux/drivers/net/ethernet/alacritech/ |
| H A D | slicoss.c | 120 static unsigned int slic_get_free_rx_descs(struct slic_rx_queue *rxq) in slic_get_free_rx_descs() argument 122 return slic_get_free_queue_descs(rxq->put_idx, rxq->done_idx, rxq->len); in slic_get_free_rx_descs() 396 struct slic_rx_queue *rxq = &sdev->rxq; in slic_refill_rx_queue() local 405 while (slic_get_free_rx_descs(rxq) > SLIC_MAX_REQ_RX_DESCS) { in slic_refill_rx_queue() 437 buff = &rxq->rxbuffs[rxq->put_idx]; in slic_refill_rx_queue() 446 rxq->put_idx = slic_next_queue_idx(rxq->put_idx, rxq->len); in slic_refill_rx_queue() 549 struct slic_rx_queue *rxq = &sdev->rxq; in slic_handle_receive() local 559 while (todo && (rxq->done_idx != rxq->put_idx)) { in slic_handle_receive() 560 buff = &rxq->rxbuffs[rxq->done_idx]; in slic_handle_receive() 613 rxq->done_idx = slic_next_queue_idx(rxq->done_idx, rxq->len); in slic_handle_receive() [all …]
|
| /linux/drivers/net/ethernet/chelsio/cxgb4/ |
| H A D | cudbg_lib.h | 253 static inline void cudbg_fill_qdesc_rxq(const struct sge_rspq *rxq, in cudbg_fill_qdesc_rxq() argument 258 entry->qid = rxq->cntxt_id; in cudbg_fill_qdesc_rxq() 259 entry->desc_size = rxq->iqe_len; in cudbg_fill_qdesc_rxq() 260 entry->num_desc = rxq->size; in cudbg_fill_qdesc_rxq() 261 entry->data_size = rxq->size * rxq->iqe_len; in cudbg_fill_qdesc_rxq() 262 memcpy(entry->data, rxq->desc, entry->data_size); in cudbg_fill_qdesc_rxq()
|
| /linux/drivers/net/ethernet/freescale/ |
| H A D | gianfar.h | 1319 static inline int gfar_rxbd_unused(struct gfar_priv_rx_q *rxq) in gfar_rxbd_unused() argument 1321 if (rxq->next_to_clean > rxq->next_to_use) in gfar_rxbd_unused() 1322 return rxq->next_to_clean - rxq->next_to_use - 1; in gfar_rxbd_unused() 1324 return rxq->rx_ring_size + rxq->next_to_clean - rxq->next_to_use - 1; in gfar_rxbd_unused() 1327 static inline u32 gfar_rxbd_dma_lastfree(struct gfar_priv_rx_q *rxq) in gfar_rxbd_dma_lastfree() argument 1333 i = rxq->next_to_use ? rxq->next_to_use - 1 : rxq->rx_ring_size - 1; in gfar_rxbd_dma_lastfree() 1334 bdp = &rxq->rx_bd_base[i]; in gfar_rxbd_dma_lastfree() 1335 bdp_dma = lower_32_bits(rxq->rx_bd_dma_base); in gfar_rxbd_dma_lastfree() 1336 bdp_dma += (uintptr_t)bdp - (uintptr_t)rxq->rx_bd_base; in gfar_rxbd_dma_lastfree()
|
| /linux/drivers/net/ethernet/samsung/sxgbe/ |
| H A D | sxgbe_main.c | 326 priv->hw->desc->init_rx_desc(&priv->rxq[j]->dma_rx[i], in sxgbe_clear_descriptors() 584 priv->rxq[queue_num], rx_rsize); in init_dma_desc_rings() 593 priv->rxq[queue_num]->priv_ptr = priv; in init_dma_desc_rings() 607 free_rx_ring(priv->device, priv->rxq[queue_num], rx_rsize); in init_dma_desc_rings() 659 free_rx_ring(priv->device, priv->rxq[queue_num], rx_rsize); in free_dma_desc_resources() 682 priv->rxq[queue_num] = devm_kmalloc(priv->device, in rxring_mem_alloc() 684 if (!priv->rxq[queue_num]) in rxring_mem_alloc() 968 (priv->rxq[queue_num])->dma_rx_phy, in sxgbe_init_dma_engine() 1142 (priv->rxq[queue_num])->irq_no, in sxgbe_open() 1144 dev->name, priv->rxq[queue_num]); in sxgbe_open() [all …]
|
| /linux/drivers/net/ethernet/broadcom/bnx2x/ |
| H A D | bnx2x_vfpf.c | 636 req->rxq.rcq_addr = fp->rx_comp_mapping; in bnx2x_vfpf_setup_q() 637 req->rxq.rcq_np_addr = fp->rx_comp_mapping + BCM_PAGE_SIZE; in bnx2x_vfpf_setup_q() 638 req->rxq.rxq_addr = fp->rx_desc_mapping; in bnx2x_vfpf_setup_q() 639 req->rxq.sge_addr = fp->rx_sge_mapping; in bnx2x_vfpf_setup_q() 640 req->rxq.vf_sb = fp_idx; in bnx2x_vfpf_setup_q() 641 req->rxq.sb_index = HC_INDEX_ETH_RX_CQ_CONS; in bnx2x_vfpf_setup_q() 642 req->rxq.hc_rate = bp->rx_ticks ? 1000000/bp->rx_ticks : 0; in bnx2x_vfpf_setup_q() 643 req->rxq.mtu = bp->dev->mtu; in bnx2x_vfpf_setup_q() 644 req->rxq.buf_sz = fp->rx_buf_size; in bnx2x_vfpf_setup_q() 645 req->rxq.sge_buf_sz = BCM_PAGE_SIZE * PAGES_PER_SGE; in bnx2x_vfpf_setup_q() [all …]
|
| /linux/drivers/target/iscsi/cxgbit/ |
| H A D | cxgbit_main.c | 108 spin_lock_bh(&csk->rxq.lock); in cxgbit_close_conn() 109 __skb_queue_tail(&csk->rxq, skb); in cxgbit_close_conn() 110 if (skb_queue_len(&csk->rxq) == 1) in cxgbit_close_conn() 112 spin_unlock_bh(&csk->rxq.lock); in cxgbit_close_conn() 344 spin_lock(&csk->rxq.lock); in cxgbit_queue_lro_skb() 345 __skb_queue_tail(&csk->rxq, skb); in cxgbit_queue_lro_skb() 346 if (skb_queue_len(&csk->rxq) == 1) in cxgbit_queue_lro_skb() 348 spin_unlock(&csk->rxq.lock); in cxgbit_queue_lro_skb() 573 spin_lock(&csk->rxq.lock); in cxgbit_update_dcb_priority() 574 __skb_queue_tail(&csk->rxq, skb); in cxgbit_update_dcb_priority() [all …]
|
| /linux/net/core/ |
| H A D | page_pool_priv.h | 44 struct netdev_rx_queue *rxq); 54 struct netdev_rx_queue *rxq) in page_pool_check_memory_provider() argument
|
| H A D | xdp.c | 545 __xdp_return(netmem, xdp->rxq->mem.type, true, NULL); in xdp_return_frag() 559 xdp->rxq->mem.type, true, xdp); in xdp_return_buff() 562 __xdp_return(virt_to_netmem(xdp->data), xdp->rxq->mem.type, true, xdp); in xdp_return_buff() 635 const struct xdp_rxq_info *rxq = xdp->rxq; in xdp_build_skb_from_buff() local 657 if (rxq->mem.type == MEM_TYPE_PAGE_POOL) in xdp_build_skb_from_buff() 660 skb_record_rx_queue(skb, rxq->queue_index); in xdp_build_skb_from_buff() 670 skb->protocol = eth_type_trans(skb, rxq->dev); in xdp_build_skb_from_buff() 741 const struct xdp_rxq_info *rxq = xdp->rxq; in xdp_build_skb_from_zc() local 775 skb_record_rx_queue(skb, rxq->queue_index); in xdp_build_skb_from_zc() 786 skb->protocol = eth_type_trans(skb, rxq->dev); in xdp_build_skb_from_zc()
|
| /linux/drivers/net/ethernet/brocade/bna/ |
| H A D | bnad_ethtool.c | 644 bnad->rx_info[i].rx_ctrl[j].ccb->rcb[1]->rxq) in bnad_get_strings() 691 bnad->rx_info[i].rx_ctrl[j].ccb->rcb[1]->rxq) in bnad_get_stats_count_locked() 716 bnad->rx_info[i].rx_ctrl[j].ccb->rcb[0]->rxq) { in bnad_per_q_stats_fill() 742 rcb[0]->rxq) { in bnad_per_q_stats_fill() 745 buf[bi++] = rcb->rxq->rx_packets; in bnad_per_q_stats_fill() 746 buf[bi++] = rcb->rxq->rx_bytes; in bnad_per_q_stats_fill() 747 buf[bi++] = rcb->rxq-> in bnad_per_q_stats_fill() 749 buf[bi++] = rcb->rxq-> in bnad_per_q_stats_fill() 751 buf[bi++] = rcb->rxq->rxbuf_map_failed; in bnad_per_q_stats_fill() 757 rcb[1]->rxq) { in bnad_per_q_stats_fill() [all …]
|
| /linux/include/trace/events/ |
| H A D | xdp.h | 334 const struct xdp_rxq_info *rxq), 336 TP_ARGS(xa, rxq), 343 __field(const struct xdp_rxq_info *, rxq) 352 __entry->rxq = rxq; 353 __entry->ifindex = rxq->dev->ifindex;
|