* [PATCH net-next] net: netmem: remove NET_IOV_MAX from net_iov_type enum
@ 2025-10-24 18:02 Bobby Eshleman
2025-10-28 0:32 ` Mina Almasry
2025-10-29 1:20 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 3+ messages in thread
From: Bobby Eshleman @ 2025-10-24 18:02 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Simon Horman
Cc: netdev, linux-kernel, Mina Almasry, Byungchul Park,
Stanislav Fomichev, Bobby Eshleman
From: Bobby Eshleman <bobbyeshleman@meta.com>
Remove the NET_IOV_MAX workaround from the net_iov_type enum. This entry
was previously added to force the enum size to unsigned long to satisfy
the NET_IOV_ASSERT_OFFSET static assertions.
After commit f3d85c9ee510 ("netmem: introduce struct netmem_desc
mirroring struct page") this approach became unnecessary by placing the
net_iov_type after the netmem_desc. Placing the net_iov_type after
netmem_desc results in the net_iov_type size having no effect on the
position or layout of the fields that mirror the struct page.
The layout before this patch:
struct net_iov {
union {
struct netmem_desc desc; /* 0 48 */
struct {
long unsigned int _flags; /* 0 8 */
long unsigned int pp_magic; /* 8 8 */
struct page_pool * pp; /* 16 8 */
long unsigned int _pp_mapping_pad; /* 24 8 */
long unsigned int dma_addr; /* 32 8 */
atomic_long_t pp_ref_count; /* 40 8 */
}; /* 0 48 */
}; /* 0 48 */
struct net_iov_area * owner; /* 48 8 */
enum net_iov_type type; /* 56 8 */
/* size: 64, cachelines: 1, members: 3 */
};
The layout after this patch:
struct net_iov {
union {
struct netmem_desc desc; /* 0 48 */
struct {
long unsigned int _flags; /* 0 8 */
long unsigned int pp_magic; /* 8 8 */
struct page_pool * pp; /* 16 8 */
long unsigned int _pp_mapping_pad; /* 24 8 */
long unsigned int dma_addr; /* 32 8 */
atomic_long_t pp_ref_count; /* 40 8 */
}; /* 0 48 */
}; /* 0 48 */
struct net_iov_area * owner; /* 48 8 */
enum net_iov_type type; /* 56 4 */
/* size: 64, cachelines: 1, members: 3 */
/* padding: 4 */
};
Signed-off-by: Bobby Eshleman <bobbyeshleman@meta.com>
---
include/net/netmem.h | 4 ----
1 file changed, 4 deletions(-)
diff --git a/include/net/netmem.h b/include/net/netmem.h
index 651e2c62d1dd..9e10f4ac50c3 100644
--- a/include/net/netmem.h
+++ b/include/net/netmem.h
@@ -68,10 +68,6 @@ DECLARE_STATIC_KEY_FALSE(page_pool_mem_providers);
enum net_iov_type {
NET_IOV_DMABUF,
NET_IOV_IOURING,
-
- /* Force size to unsigned long to make the NET_IOV_ASSERTS below pass.
- */
- NET_IOV_MAX = ULONG_MAX
};
/* A memory descriptor representing abstract networking I/O vectors,
---
base-commit: f0a24b2547cfdd5ec85a131e386a2ce4ff9179cb
change-id: 20251024-b4-devmem-remove-niov-max-0d377187c9cb
Best regards,
--
Bobby Eshleman <bobbyeshleman@meta.com>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH net-next] net: netmem: remove NET_IOV_MAX from net_iov_type enum
2025-10-24 18:02 [PATCH net-next] net: netmem: remove NET_IOV_MAX from net_iov_type enum Bobby Eshleman
@ 2025-10-28 0:32 ` Mina Almasry
2025-10-29 1:20 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: Mina Almasry @ 2025-10-28 0:32 UTC (permalink / raw)
To: Bobby Eshleman
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, netdev, linux-kernel, Byungchul Park,
Stanislav Fomichev, Bobby Eshleman
On Fri, Oct 24, 2025 at 11:03 AM Bobby Eshleman <bobbyeshleman@gmail.com> wrote:
>
> From: Bobby Eshleman <bobbyeshleman@meta.com>
>
> Remove the NET_IOV_MAX workaround from the net_iov_type enum. This entry
> was previously added to force the enum size to unsigned long to satisfy
> the NET_IOV_ASSERT_OFFSET static assertions.
>
> After commit f3d85c9ee510 ("netmem: introduce struct netmem_desc
> mirroring struct page") this approach became unnecessary by placing the
> net_iov_type after the netmem_desc. Placing the net_iov_type after
> netmem_desc results in the net_iov_type size having no effect on the
> position or layout of the fields that mirror the struct page.
>
> The layout before this patch:
>
> struct net_iov {
> union {
> struct netmem_desc desc; /* 0 48 */
> struct {
> long unsigned int _flags; /* 0 8 */
> long unsigned int pp_magic; /* 8 8 */
> struct page_pool * pp; /* 16 8 */
> long unsigned int _pp_mapping_pad; /* 24 8 */
> long unsigned int dma_addr; /* 32 8 */
> atomic_long_t pp_ref_count; /* 40 8 */
> }; /* 0 48 */
> }; /* 0 48 */
> struct net_iov_area * owner; /* 48 8 */
> enum net_iov_type type; /* 56 8 */
>
> /* size: 64, cachelines: 1, members: 3 */
> };
>
> The layout after this patch:
>
> struct net_iov {
> union {
> struct netmem_desc desc; /* 0 48 */
> struct {
> long unsigned int _flags; /* 0 8 */
> long unsigned int pp_magic; /* 8 8 */
> struct page_pool * pp; /* 16 8 */
> long unsigned int _pp_mapping_pad; /* 24 8 */
> long unsigned int dma_addr; /* 32 8 */
> atomic_long_t pp_ref_count; /* 40 8 */
> }; /* 0 48 */
> }; /* 0 48 */
> struct net_iov_area * owner; /* 48 8 */
> enum net_iov_type type; /* 56 4 */
>
> /* size: 64, cachelines: 1, members: 3 */
> /* padding: 4 */
> };
>
> Signed-off-by: Bobby Eshleman <bobbyeshleman@meta.com>
Reviewed-by: Mina Almasry <almasrymina@google.com>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH net-next] net: netmem: remove NET_IOV_MAX from net_iov_type enum
2025-10-24 18:02 [PATCH net-next] net: netmem: remove NET_IOV_MAX from net_iov_type enum Bobby Eshleman
2025-10-28 0:32 ` Mina Almasry
@ 2025-10-29 1:20 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-10-29 1:20 UTC (permalink / raw)
To: Bobby Eshleman
Cc: davem, edumazet, kuba, pabeni, horms, netdev, linux-kernel,
almasrymina, byungchul, sdf, bobbyeshleman
Hello:
This patch was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Fri, 24 Oct 2025 11:02:56 -0700 you wrote:
> From: Bobby Eshleman <bobbyeshleman@meta.com>
>
> Remove the NET_IOV_MAX workaround from the net_iov_type enum. This entry
> was previously added to force the enum size to unsigned long to satisfy
> the NET_IOV_ASSERT_OFFSET static assertions.
>
> After commit f3d85c9ee510 ("netmem: introduce struct netmem_desc
> mirroring struct page") this approach became unnecessary by placing the
> net_iov_type after the netmem_desc. Placing the net_iov_type after
> netmem_desc results in the net_iov_type size having no effect on the
> position or layout of the fields that mirror the struct page.
>
> [...]
Here is the summary with links:
- [net-next] net: netmem: remove NET_IOV_MAX from net_iov_type enum
https://git.kernel.org/netdev/net-next/c/8443c3160858
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-10-29 1:20 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-10-24 18:02 [PATCH net-next] net: netmem: remove NET_IOV_MAX from net_iov_type enum Bobby Eshleman
2025-10-28 0:32 ` Mina Almasry
2025-10-29 1:20 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®