Subject: Re: linux-next: manual merge of the memblock tree with the origin tree

From: "Gowans, James" <[email-masked]>
Date: Thu, 20 Jun 2024 16:07:45 +0000

Hi Mark,

On Thu, 2024-06-20 at 16:54 +0100, Mark Brown wrote:
> Hi all,
> 
> Today's linux-next merge of the memblock tree got a conflict in:
> 
>   mm/memblock.c
> 
> between commit:
> 
>   e0eec24e2e199 ("memblock: make memblock_set_node() also warn about use of MAX_NUMNODES")
> 
> from the origin tree and commit:
> 
>   94ff46de4a738 ("memblock: Move late alloc warning down to phys alloc")
> 
> from the memblock 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 mm/memblock.c
> index e81fb68f7f888,692dc551c0fde..0000000000000
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@@ -1441,6 -1446,20 +1439,9 @@@ phys_addr_t __init memblock_alloc_range
>   	enum memblock_flags flags = choose_memblock_flags();
>   	phys_addr_t found;
>   
> + 	if (WARN_ONCE(nid == MAX_NUMNODES, "Usage of MAX_NUMNODES is deprecated. Use NUMA_NO_NODE instead\n"))
> + 		nid = NUMA_NO_NODE;
> + 
>  -	/*
>  -	 * Detect any accidental use of these APIs after slab is ready, as at
>  -	 * this moment memblock may be deinitialized already and its
>  -	 * internal data may be destroyed (after execution of memblock_free_all)
>  -	 */
>  -	if (WARN_ON_ONCE(slab_is_available())) {
>  -		void *vaddr = kzalloc_node(size, GFP_NOWAIT, nid);
>  -
>  -		return vaddr ? virt_to_phys(vaddr) : 0;
>  -	}
>  -

This looks like you're deleting the check from the
memblock_alloc_range()? The intention of
commit 94ff46de4a738 ("memblock: Move late alloc warning down to phys alloc")
was to *add* this check here.

Do you have a link where I can see the final repo?
I'm not seeing it here:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/mm/memblock.c

JG
>   	if (!align) {
>   		/* Can't use WARNs this early in boot on powerpc */
>   		dump_stack();