diff options
author | Shannon Nelson <shannon.nelson@amd.com> | 2024-02-14 09:59:06 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2024-02-16 08:48:08 +0000 |
commit | 8eeed8373e1cca836799bf8e4a05cffa8e444908 (patch) | |
tree | a04a7e9dc513b153ff9dbad3a39b1a4ae561e2f1 /drivers/net/ethernet/pensando/ionic/ionic_lif.c | |
parent | f81da39bf4c0a544d057330d3c3c93336307ea51 (diff) | |
download | linux-stable-8eeed8373e1cca836799bf8e4a05cffa8e444908.tar.gz linux-stable-8eeed8373e1cca836799bf8e4a05cffa8e444908.tar.bz2 linux-stable-8eeed8373e1cca836799bf8e4a05cffa8e444908.zip |
ionic: Add XDP_TX support
The XDP_TX packets get fed back into the Rx queue's partnered
Tx queue as an xdp_frame.
Co-developed-by: Brett Creeley <brett.creeley@amd.com>
Signed-off-by: Brett Creeley <brett.creeley@amd.com>
Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/pensando/ionic/ionic_lif.c')
-rw-r--r-- | drivers/net/ethernet/pensando/ionic/ionic_lif.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c index d8c83ff47b66..72bbab1576ab 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c @@ -878,6 +878,9 @@ static int ionic_lif_rxq_init(struct ionic_lif *lif, struct ionic_qcq *qcq) }; int err; + q->partner = &lif->txqcqs[q->index]->q; + q->partner->partner = q; + if (!lif->xdp_prog) ctx.cmd.q_init.flags |= cpu_to_le16(IONIC_QINIT_F_SG); @@ -2926,6 +2929,7 @@ static void ionic_swap_queues(struct ionic_qcq *a, struct ionic_qcq *b) swap(a->q.base_pa, b->q.base_pa); swap(a->q.info, b->q.info); swap(a->q.xdp_rxq_info, b->q.xdp_rxq_info); + swap(a->q.partner, b->q.partner); swap(a->q_base, b->q_base); swap(a->q_base_pa, b->q_base_pa); swap(a->q_size, b->q_size); |