Linus,

Please pull the latest x86-urgent-for-linus git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 
x86-urgent-for-linus

   # HEAD: 22ef882e6b5bd2bf668d10b1e2be3dc2fc365b99 x86/mm/numa: Fix kernel 
stack corruption in numa_init()->numa_clear_kernel_node_hotplug()

Fix a local stack variable corruption with certain kdump usage 
patterns. (Dave Young)

 Thanks,

        Ingo

------------------>
Dave Young (1):
      x86/mm/numa: Fix kernel stack corruption in 
numa_init()->numa_clear_kernel_node_hotplug()


 arch/x86/mm/numa.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
index cd4785bbacb9..4053bb58bf92 100644
--- a/arch/x86/mm/numa.c
+++ b/arch/x86/mm/numa.c
@@ -482,9 +482,16 @@ static void __init numa_clear_kernel_node_hotplug(void)
                                  &memblock.reserved, mb->nid);
        }
 
-       /* Mark all kernel nodes. */
+       /*
+        * Mark all kernel nodes.
+        *
+        * When booting with mem=nn[kMG] or in a kdump kernel, numa_meminfo
+        * may not include all the memblock.reserved memory ranges because
+        * trim_snb_memory() reserves specific pages for Sandy Bridge graphics.
+        */
        for_each_memblock(reserved, r)
-               node_set(r->nid, numa_kernel_nodes);
+               if (r->nid != MAX_NUMNODES)
+                       node_set(r->nid, numa_kernel_nodes);
 
        /* Clear MEMBLOCK_HOTPLUG flag for memory in kernel nodes. */
        for (i = 0; i < numa_meminfo.nr_blks; i++) {
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to