summaryrefslogtreecommitdiffstats
path: root/arch/m68k/mm
diff options
context:
space:
mode:
authorMichael Schmitz <schmitzmic@googlemail.com>2011-04-26 04:51:53 +0200
committerGeert Uytterhoeven <geert@linux-m68k.org>2011-04-27 17:36:00 +0200
commit4aac0b4815ba592052758f4b468f253d383dc9d6 (patch)
treeacac571ce5c3099e62b1a4098ff4bf7faf96b132 /arch/m68k/mm
parentLinux 2.6.39-rc5 (diff)
downloadlinux-4aac0b4815ba592052758f4b468f253d383dc9d6.tar.xz
linux-4aac0b4815ba592052758f4b468f253d383dc9d6.zip
m68k/mm: Set all online nodes in N_NORMAL_MEMORY
For m68k, N_NORMAL_MEMORY represents all nodes that have present memory since it does not support HIGHMEM. This patch sets the bit at the time node_present_pages has been set by free_area_init_node. At the time the node is brought online, the node state would have to be done unconditionally since information about present memory has not yet been recorded. If N_NORMAL_MEMORY is not accurate, slub may encounter errors since it uses this nodemask to setup per-cache kmem_cache_node data structures. This pach is an alternative to the one proposed by David Rientjes <rientjes@google.com> attempting to set node state immediately when bringing the node online. Signed-off-by: Michael Schmitz <schmitz@debian.org> Tested-by: Thorsten Glaser <tg@debian.org> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> CC: stable@kernel.org
Diffstat (limited to 'arch/m68k/mm')
-rw-r--r--arch/m68k/mm/motorola.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/m68k/mm/motorola.c b/arch/m68k/mm/motorola.c
index 02b7a03e4226..8b3db1c587fc 100644
--- a/arch/m68k/mm/motorola.c
+++ b/arch/m68k/mm/motorola.c
@@ -300,6 +300,8 @@ void __init paging_init(void)
zones_size[ZONE_DMA] = m68k_memory[i].size >> PAGE_SHIFT;
free_area_init_node(i, zones_size,
m68k_memory[i].addr >> PAGE_SHIFT, NULL);
+ if (node_present_pages(i))
+ node_set_state(i, N_NORMAL_MEMORY);
}
}