linux-next: manual merge of the net-next tree with the mm-unstable tree

Mark Brown posted 1 patch 1 month, 1 week ago
linux-next: manual merge of the net-next tree with the mm-unstable tree
Posted by Mark Brown 1 month, 1 week ago
Hi all,

Today's linux-next merge of the net-next tree got a conflict in:

  include/net/netmem.h

between commit:

  0a8a9198a887f ("mm: introduce a new page type for page pool in page type")

from the mm-unstable tree and commit:

  fd6dad4e1ae29 ("netmem: remove the pp fields from net_iov")

from the net-next tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

diff --cc include/net/netmem.h
index 85e3b26ec547f,a6d65ced52315..0000000000000
--- a/include/net/netmem.h
+++ b/include/net/netmem.h
@@@ -93,38 -93,11 +93,21 @@@ enum net_iov_type 
   *		supported.
   */
  struct net_iov {
- 	union {
- 		struct netmem_desc desc;
- 
- 		/* XXX: The following part should be removed once all
- 		 * the references to them are converted so as to be
- 		 * accessed via netmem_desc e.g. niov->desc.pp instead
- 		 * of niov->pp.
- 		 */
- 		struct {
- 			unsigned long _flags;
- 			unsigned long pp_magic;
- 			struct page_pool *pp;
- 			unsigned long _pp_mapping_pad;
- 			unsigned long dma_addr;
- 			atomic_long_t pp_ref_count;
- 		};
- 	};
- 
+ 	struct netmem_desc desc;
 -	struct net_iov_area *owner;
 +	unsigned int page_type;
  	enum net_iov_type type;
 +	struct net_iov_area *owner;
  };
  
 +/* Make sure 'the offset of page_type in struct page == the offset of
 + * type in struct net_iov'.
 + */
 +#define NET_IOV_ASSERT_OFFSET(pg, iov)			\
 +	static_assert(offsetof(struct page, pg) ==	\
 +		      offsetof(struct net_iov, iov))
 +NET_IOV_ASSERT_OFFSET(page_type, page_type);
 +#undef NET_IOV_ASSERT_OFFSET
 +
  struct net_iov_area {
  	/* Array of net_iovs for this area. */
  	struct net_iov *niovs;
Re: linux-next: manual merge of the net-next tree with the mm-unstable tree
Posted by Byungchul Park 1 month ago
On Fri, Feb 27, 2026 at 01:54:20PM +0000, Mark Brown wrote:
> Hi all,
> 
> Today's linux-next merge of the net-next tree got a conflict in:
> 
>   include/net/netmem.h
> 
> between commit:
> 
>   0a8a9198a887f ("mm: introduce a new page type for page pool in page type")
> 
> from the mm-unstable tree and commit:
> 
>   fd6dad4e1ae29 ("netmem: remove the pp fields from net_iov")
> 
> from the net-next tree.
> 
> I fixed it up (see below) and can carry the fix as necessary. This

Indeed.  Thanks for the fixing and informing that.  I should've paid
more attention.

To Andrew and Jakub,

Sorry about the confict.  Fortunately, this is a trivial conflict.
However, if I should drop one, commit fd6dad4e1ae29 ("netmem: remove the
pp fields from net_iov") should be dropped this time.  And then I will
re-work once net-next tree can see the mm's changes.

Or it'd be appreciated to tell me what I should do else for the issue.

	Byungchul

> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging.  You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
> 
> diff --cc include/net/netmem.h
> index 85e3b26ec547f,a6d65ced52315..0000000000000
> --- a/include/net/netmem.h
> +++ b/include/net/netmem.h
> @@@ -93,38 -93,11 +93,21 @@@ enum net_iov_type 
>    *		supported.
>    */
>   struct net_iov {
> - 	union {
> - 		struct netmem_desc desc;
> - 
> - 		/* XXX: The following part should be removed once all
> - 		 * the references to them are converted so as to be
> - 		 * accessed via netmem_desc e.g. niov->desc.pp instead
> - 		 * of niov->pp.
> - 		 */
> - 		struct {
> - 			unsigned long _flags;
> - 			unsigned long pp_magic;
> - 			struct page_pool *pp;
> - 			unsigned long _pp_mapping_pad;
> - 			unsigned long dma_addr;
> - 			atomic_long_t pp_ref_count;
> - 		};
> - 	};
> - 
> + 	struct netmem_desc desc;
>  -	struct net_iov_area *owner;
>  +	unsigned int page_type;
>   	enum net_iov_type type;
>  +	struct net_iov_area *owner;
>   };
>   
>  +/* Make sure 'the offset of page_type in struct page == the offset of
>  + * type in struct net_iov'.
>  + */
>  +#define NET_IOV_ASSERT_OFFSET(pg, iov)			\
>  +	static_assert(offsetof(struct page, pg) ==	\
>  +		      offsetof(struct net_iov, iov))
>  +NET_IOV_ASSERT_OFFSET(page_type, page_type);
>  +#undef NET_IOV_ASSERT_OFFSET
>  +
>   struct net_iov_area {
>   	/* Array of net_iovs for this area. */
>   	struct net_iov *niovs;