]> git.baikalelectronics.ru Git - kernel.git/commit
net/funeth: Fix fun_xdp_tx() and XDP packet reclaim
authorDimitris Michailidis <d.michailidis@fungible.com>
Tue, 26 Jul 2022 21:59:23 +0000 (14:59 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 28 Jul 2022 10:54:10 +0000 (12:54 +0200)
commitc4e35b1b69960f1665d23b49386c21c3e145163e
tree36686d10aaf8f1c24dac791cde91cb24e61b49dd
parenta62a2682edd58185fb160212c01388c9b48c15a5
net/funeth: Fix fun_xdp_tx() and XDP packet reclaim

The current implementation of fun_xdp_tx(), used for XPD_TX, is
incorrect in that it takes an address/length pair and later releases it
with page_frag_free(). It is OK for XDP_TX but the same code is used by
ndo_xdp_xmit. In that case it loses the XDP memory type and releases the
packet incorrectly for some of the types. Assorted breakage follows.

Change fun_xdp_tx() to take xdp_frame and rely on xdp_return_frame() in
reclaim.

Fixes: ebe6f8d20eeb ("net/funeth: add the data path")
Signed-off-by: Dimitris Michailidis <dmichail@fungible.com>
Link: https://lore.kernel.org/r/20220726215923.7887-1-dmichail@fungible.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/fungible/funeth/funeth_rx.c
drivers/net/ethernet/fungible/funeth/funeth_tx.c
drivers/net/ethernet/fungible/funeth/funeth_txrx.h