From: Toshiaki Makita Date: Fri, 3 Aug 2018 07:58:12 +0000 (+0900) Subject: xdp: Helper function to clear kernel pointers in xdp_frame X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=a8d5b4ab353738e16e5f9d21ab1e3d44b37983d0;p=linux.git xdp: Helper function to clear kernel pointers in xdp_frame xdp_frame has kernel pointers which should not be readable from bpf programs. When we want to reuse xdp_frame region but it may be read by bpf programs later, we can use this helper to clear kernel pointers. This is more efficient than calling memset() for the entire struct. Signed-off-by: Toshiaki Makita Acked-by: Jesper Dangaard Brouer Signed-off-by: Daniel Borkmann --- diff --git a/include/net/xdp.h b/include/net/xdp.h index fcb033f51d8c3..76b95256c2664 100644 --- a/include/net/xdp.h +++ b/include/net/xdp.h @@ -84,6 +84,13 @@ struct xdp_frame { struct net_device *dev_rx; /* used by cpumap */ }; +/* Clear kernel pointers in xdp_frame */ +static inline void xdp_scrub_frame(struct xdp_frame *frame) +{ + frame->data = NULL; + frame->dev_rx = NULL; +} + /* Convert xdp_buff to xdp_frame */ static inline struct xdp_frame *convert_to_xdp_frame(struct xdp_buff *xdp)