Thread (3 messages) flat view 3 messages, 2 authors, 2022-02-10

Re: [PATCH bpf-next] net: veth: account total xdp_frame len running ndo_xdp_xmit

From: Alexei Starovoitov <hidden>
Date: 2022-02-08 02:40:38
Also in: bpf

On Tue, Feb 1, 2022 at 2:46 AM Lorenzo Bianconi [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Introduce xdp_get_frame_len utility routine to get the xdp_frame full
length and account total frame size running XDP_REDIRECT of a
non-linear xdp frame into a veth device.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
 drivers/net/veth.c |  4 ++--
 include/net/xdp.h  | 14 ++++++++++++++
 2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index 354a963075c5..22ecaf8b8f98 100644
--- a/drivers/net/veth.c
+++ b/drivers/net/veth.c
@@ -493,7 +493,7 @@ static int veth_xdp_xmit(struct net_device *dev, int n,
                struct xdp_frame *frame = frames[i];
                void *ptr = veth_xdp_to_ptr(frame);

-               if (unlikely(frame->len > max_len ||
+               if (unlikely(xdp_get_frame_len(frame) > max_len ||
                             __ptr_ring_produce(&rq->xdp_ring, ptr)))
                        break;
Looks correct, but could you explain what happens without this fix?

Any other drivers might have the same issue?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help