Lines Matching refs:xdpqs

407 static void free_xdpqs(struct funeth_txq **xdpqs, unsigned int nqs,  in free_xdpqs()  argument
412 for (i = start; i < nqs && xdpqs[i]; i++) in free_xdpqs()
413 xdpqs[i] = funeth_txq_free(xdpqs[i], state); in free_xdpqs()
416 kfree(xdpqs); in free_xdpqs()
423 struct funeth_txq **xdpqs; in alloc_xdpqs() local
427 xdpqs = kcalloc(nqs, sizeof(*xdpqs), GFP_KERNEL); in alloc_xdpqs()
428 if (!xdpqs) in alloc_xdpqs()
432 err = funeth_txq_create(dev, i, depth, NULL, state, &xdpqs[i]); in alloc_xdpqs()
434 free_xdpqs(xdpqs, nqs, start, FUN_QSTATE_DESTROYED); in alloc_xdpqs()
438 return xdpqs; in alloc_xdpqs()
444 struct funeth_txq **xdpqs = qset->xdpqs; in fun_free_rings() local
452 xdpqs = rtnl_dereference(fp->xdpqs); in fun_free_rings()
463 rcu_assign_pointer(fp->xdpqs, NULL); in fun_free_rings()
470 free_xdpqs(xdpqs, qset->nxdpqs, qset->xdpq_start, qset->state); in fun_free_rings()
476 qset->xdpqs = xdpqs; in fun_free_rings()
481 struct funeth_txq **xdpqs = NULL, **txqs; in fun_alloc_rings() local
494 xdpqs = alloc_xdpqs(netdev, qset->nxdpqs, qset->sq_depth, in fun_alloc_rings()
496 if (IS_ERR(xdpqs)) { in fun_alloc_rings()
497 err = PTR_ERR(xdpqs); in fun_alloc_rings()
515 qset->xdpqs = xdpqs; in fun_alloc_rings()
521 free_xdpqs(xdpqs, qset->nxdpqs, qset->xdpq_start, FUN_QSTATE_DESTROYED); in fun_alloc_rings()
550 err = fun_txq_create_dev(qset->xdpqs[i], NULL); in fun_advance_ring_state()
798 rcu_assign_pointer(fp->xdpqs, qset->xdpqs); in fun_up()
873 struct funeth_txq **xdpqs; in fun_get_stats64() local
908 xdpqs = rcu_dereference(fp->xdpqs); in fun_get_stats64()
909 if (!xdpqs) in fun_get_stats64()
915 FUN_QSTAT_READ(xdpqs[i], start, txs); in fun_get_stats64()
1081 struct funeth_txq **xdpqs; in fun_enter_xdp() local
1085 xdpqs = alloc_xdpqs(dev, nqs, fp->sq_depth, 0, FUN_QSTATE_INIT_FULL); in fun_enter_xdp()
1086 if (IS_ERR(xdpqs)) in fun_enter_xdp()
1087 return PTR_ERR(xdpqs); in fun_enter_xdp()
1097 rcu_assign_pointer(fp->xdpqs, xdpqs); in fun_enter_xdp()
1103 free_xdpqs(xdpqs, nqs, 0, FUN_QSTATE_DESTROYED); in fun_enter_xdp()
1111 struct funeth_txq **xdpqs; in fun_end_xdp() local
1115 xdpqs = rtnl_dereference(fp->xdpqs); in fun_end_xdp()
1116 rcu_assign_pointer(fp->xdpqs, NULL); in fun_end_xdp()
1120 free_xdpqs(xdpqs, fp->num_xdpqs, 0, FUN_QSTATE_DESTROYED); in fun_end_xdp()