Lines Matching refs:rxqs

182 	struct funeth_rxq **rxqs = rtnl_dereference(fp->rxqs);  in fun_config_rss()  local
214 *indir_tab++ = cpu_to_be32(rxqs[*qtable++]->hw_cqid); in fun_config_rss()
378 static void free_rxqs(struct funeth_rxq **rxqs, unsigned int nqs, in free_rxqs() argument
383 for (i = start; i < nqs && rxqs[i]; i++) in free_rxqs()
384 rxqs[i] = funeth_rxq_free(rxqs[i], state); in free_rxqs()
387 static int alloc_rxqs(struct net_device *dev, struct funeth_rxq **rxqs, in alloc_rxqs() argument
398 state, &rxqs[i]); in alloc_rxqs()
400 free_rxqs(rxqs, nqs, start, FUN_QSTATE_DESTROYED); in alloc_rxqs()
445 struct funeth_rxq **rxqs = qset->rxqs; in fun_free_rings() local
450 if (!rxqs) { in fun_free_rings()
451 rxqs = rtnl_dereference(fp->rxqs); in fun_free_rings()
458 if (!rxqs) in fun_free_rings()
461 if (rxqs == rtnl_dereference(fp->rxqs)) { in fun_free_rings()
462 rcu_assign_pointer(fp->rxqs, NULL); in fun_free_rings()
468 free_rxqs(rxqs, qset->nrxqs, qset->rxq_start, qset->state); in fun_free_rings()
472 kfree(rxqs); in fun_free_rings()
475 qset->rxqs = rxqs; in fun_free_rings()
482 struct funeth_rxq **rxqs; in fun_alloc_rings() local
489 rxqs = kcalloc(qset->ntxqs + qset->nrxqs, sizeof(*rxqs), GFP_KERNEL); in fun_alloc_rings()
490 if (!rxqs) in fun_alloc_rings()
502 txqs = (struct funeth_txq **)&rxqs[qset->nrxqs]; in fun_alloc_rings()
508 err = alloc_rxqs(netdev, rxqs, qset->nrxqs, qset->cq_depth, in fun_alloc_rings()
513 qset->rxqs = rxqs; in fun_alloc_rings()
523 kfree(rxqs); in fun_alloc_rings()
536 err = fun_rxq_create_dev(qset->rxqs[i], in fun_advance_ring_state()
748 if (!rcu_access_pointer(fp->rxqs)) in fun_down()
786 if (qset->rxqs[0]->init_state < FUN_QSTATE_INIT_FULL) { in fun_up()
797 rcu_assign_pointer(fp->rxqs, qset->rxqs); in fun_up()
811 qset->rxqs[0]->hw_cqid); in fun_up()
874 struct funeth_rxq **rxqs; in fun_get_stats64() local
886 rxqs = rcu_dereference(fp->rxqs); in fun_get_stats64()
887 if (!rxqs) in fun_get_stats64()
902 FUN_QSTAT_READ(rxqs[i], start, rxs); in fun_get_stats64()
1082 struct funeth_rxq **rxqs; in fun_enter_xdp() local
1089 rxqs = rtnl_dereference(fp->rxqs); in fun_enter_xdp()
1091 err = fun_rxq_set_bpf(rxqs[i], prog); in fun_enter_xdp()
1101 fun_rxq_set_bpf(rxqs[i], NULL); in fun_enter_xdp()
1112 struct funeth_rxq **rxqs; in fun_end_xdp() local
1123 rxqs = rtnl_dereference(fp->rxqs); in fun_end_xdp()
1125 fun_rxq_set_bpf(rxqs[i], NULL); in fun_end_xdp()
1157 struct funeth_rxq **rxqs = rtnl_dereference(fp->rxqs); in fun_xdp_setup() local
1160 WRITE_ONCE(rxqs[i]->xdp_prog, prog); in fun_xdp_setup()
1629 .rxqs = rtnl_dereference(fp->rxqs), in fun_change_num_queues()
1658 memcpy(newqs.rxqs, oldqs.rxqs, keep_rx * sizeof(*oldqs.rxqs)); in fun_change_num_queues()
1667 fun_disable_one_irq(container_of(oldqs.rxqs[i]->napi, in fun_change_num_queues()
1676 rcu_assign_pointer(fp->rxqs, newqs.rxqs); in fun_change_num_queues()