]> Gentwo Git Trees - linux/.git/commit
net: netmem: remove NET_IOV_MAX from net_iov_type enum
authorBobby Eshleman <bobbyeshleman@meta.com>
Fri, 24 Oct 2025 18:02:56 +0000 (11:02 -0700)
committerJakub Kicinski <kuba@kernel.org>
Wed, 29 Oct 2025 00:41:46 +0000 (17:41 -0700)
commit8443c3160858b860bfc2db6a8397c72c9f6b513e
treee63205a02cfc9bcc2e8b8a3492136d5043a407c0
parentc72568c21b97dbc48d02b769f4eec6667ad13d5a
net: netmem: remove NET_IOV_MAX from net_iov_type enum

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>
Link: https://patch.msgid.link/20251024-b4-devmem-remove-niov-max-v1-1-ba72c68bc869@meta.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/netmem.h