Use xdp_get_frame_len helper to ensure xdp frame size is calculated correctly in both single buffer and multi buffer configurations. Signed-off-by: Jon Kohler <jon@xxxxxxxxxxx> --- drivers/net/tun.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 7babd1e9a378..1c879467e696 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -1993,7 +1993,7 @@ static ssize_t tun_put_user_xdp(struct tun_struct *tun, struct iov_iter *iter) { int vnet_hdr_sz = 0; - size_t size = xdp_frame->len; + size_t size = xdp_get_frame_len(xdp_frame); ssize_t ret; if (tun->flags & IFF_VNET_HDR) { @@ -2579,7 +2579,7 @@ static int tun_ptr_peek_len(void *ptr) if (tun_is_xdp_frame(ptr)) { struct xdp_frame *xdpf = tun_ptr_to_xdp(ptr); - return xdpf->len; + return xdp_get_frame_len(xdpf); } return __skb_array_len_with_tag(ptr); } else { -- 2.43.0