Patch "memblock: make memblock_set_node() also warn about use of MAX_NUMNODES" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    memblock: make memblock_set_node() also warn about use of MAX_NUMNODES

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     memblock-make-memblock_set_node-also-warn-about-use-.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 270445a91055004fc3c93507fb72aa18bc500622
Author: Jan Beulich <jbeulich@xxxxxxxx>
Date:   Wed May 29 09:39:10 2024 +0200

    memblock: make memblock_set_node() also warn about use of MAX_NUMNODES
    
    [ Upstream commit e0eec24e2e199873f43df99ec39773ad3af2bff7 ]
    
    On an (old) x86 system with SRAT just covering space above 4Gb:
    
        ACPI: SRAT: Node 0 PXM 0 [mem 0x100000000-0xfffffffff] hotplug
    
    the commit referenced below leads to this NUMA configuration no longer
    being refused by a CONFIG_NUMA=y kernel (previously
    
        NUMA: nodes only cover 6144MB of your 8185MB e820 RAM. Not used.
        No NUMA configuration found
        Faking a node at [mem 0x0000000000000000-0x000000027fffffff]
    
    was seen in the log directly after the message quoted above), because of
    memblock_validate_numa_coverage() checking for NUMA_NO_NODE (only). This
    in turn led to memblock_alloc_range_nid()'s warning about MAX_NUMNODES
    triggering, followed by a NULL deref in memmap_init() when trying to
    access node 64's (NODE_SHIFT=6) node data.
    
    To compensate said change, make memblock_set_node() warn on and adjust
    a passed in value of MAX_NUMNODES, just like various other functions
    already do.
    
    Fixes: ff6c3d81f2e8 ("NUMA: optimize detection of memory with no node id assigned by firmware")
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Cc: stable@xxxxxxxxxxxxxxx
    Link: https://lore.kernel.org/r/1c8a058c-5365-4f27-a9f1-3aeb7fb3e7b2@xxxxxxxx
    Signed-off-by: Mike Rapoport (IBM) <rppt@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/mm/memblock.c b/mm/memblock.c
index 87a2b4340ce4..ba64b47b7c3b 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -1321,6 +1321,10 @@ int __init_memblock memblock_set_node(phys_addr_t base, phys_addr_t size,
 	int start_rgn, end_rgn;
 	int i, ret;
 
+	if (WARN_ONCE(nid == MAX_NUMNODES,
+		      "Usage of MAX_NUMNODES is deprecated. Use NUMA_NO_NODE instead\n"))
+		nid = NUMA_NO_NODE;
+
 	ret = memblock_isolate_range(type, base, size, &start_rgn, &end_rgn);
 	if (ret)
 		return ret;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux