lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 12 Dec 2022 18:36:02 -0800 From: Stanislav Fomichev <sdf@...gle.com> To: bpf@...r.kernel.org Cc: ast@...nel.org, daniel@...earbox.net, andrii@...nel.org, martin.lau@...ux.dev, song@...nel.org, yhs@...com, john.fastabend@...il.com, kpsingh@...nel.org, sdf@...gle.com, haoluo@...gle.com, jolsa@...nel.org, "Toke Høiland-Jørgensen" <toke@...hat.com>, David Ahern <dsahern@...il.com>, Jakub Kicinski <kuba@...nel.org>, Willem de Bruijn <willemb@...gle.com>, Jesper Dangaard Brouer <brouer@...hat.com>, Anatoly Burakov <anatoly.burakov@...el.com>, Alexander Lobakin <alexandr.lobakin@...el.com>, Magnus Karlsson <magnus.karlsson@...il.com>, Maryam Tahhan <mtahhan@...hat.com>, xdp-hints@...-project.net, netdev@...r.kernel.org Subject: [PATCH bpf-next v4 12/15] xsk: Add cb area to struct xdp_buff_xsk From: Toke Høiland-Jørgensen <toke@...hat.com> Add an area after the xdp_buff in struct xdp_buff_xsk that drivers can use to stash extra information to use in metadata kfuncs. The maximum size of 24 bytes means the full xdp_buff_xsk structure will take up exactly two cache lines (with the cb field spanning both). Also add a macro drivers can use to check their own wrapping structs against the available size. Cc: John Fastabend <john.fastabend@...il.com> Cc: David Ahern <dsahern@...il.com> Cc: Martin KaFai Lau <martin.lau@...ux.dev> Cc: Jakub Kicinski <kuba@...nel.org> Cc: Willem de Bruijn <willemb@...gle.com> Cc: Jesper Dangaard Brouer <brouer@...hat.com> Cc: Anatoly Burakov <anatoly.burakov@...el.com> Cc: Alexander Lobakin <alexandr.lobakin@...el.com> Cc: Magnus Karlsson <magnus.karlsson@...il.com> Cc: Maryam Tahhan <mtahhan@...hat.com> Cc: xdp-hints@...-project.net Cc: netdev@...r.kernel.org Suggested-by: Jakub Kicinski <kuba@...nel.org> Signed-off-by: Toke Høiland-Jørgensen <toke@...hat.com> Signed-off-by: Stanislav Fomichev <sdf@...gle.com> --- include/net/xsk_buff_pool.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/net/xsk_buff_pool.h b/include/net/xsk_buff_pool.h index f787c3f524b0..3e952e569418 100644 --- a/include/net/xsk_buff_pool.h +++ b/include/net/xsk_buff_pool.h @@ -19,8 +19,11 @@ struct xdp_sock; struct device; struct page; +#define XSK_PRIV_MAX 24 + struct xdp_buff_xsk { struct xdp_buff xdp; + u8 cb[XSK_PRIV_MAX]; dma_addr_t dma; dma_addr_t frame_dma; struct xsk_buff_pool *pool; @@ -28,6 +31,8 @@ struct xdp_buff_xsk { struct list_head free_list_node; }; +#define XSK_CHECK_PRIV_TYPE(t) BUILD_BUG_ON(sizeof(t) > offsetofend(struct xdp_buff_xsk, cb)) + struct xsk_dma_map { dma_addr_t *dma_pages; struct device *dev; -- 2.39.0.rc1.256.g54fd8350bd-goog
Powered by blists - more mailing lists