Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4aac0b48 authored by Michael Schmitz's avatar Michael Schmitz Committed by Geert Uytterhoeven
Browse files

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: default avatarMichael Schmitz <schmitz@debian.org>
Tested-by: default avatarThorsten Glaser <tg@debian.org>
Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
CC: stable@kernel.org
parent 8e10cd74
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -300,6 +300,8 @@ void __init paging_init(void)
		zones_size[ZONE_DMA] = m68k_memory[i].size >> PAGE_SHIFT;
		zones_size[ZONE_DMA] = m68k_memory[i].size >> PAGE_SHIFT;
		free_area_init_node(i, zones_size,
		free_area_init_node(i, zones_size,
				    m68k_memory[i].addr >> PAGE_SHIFT, NULL);
				    m68k_memory[i].addr >> PAGE_SHIFT, NULL);
		if (node_present_pages(i))
			node_set_state(i, N_NORMAL_MEMORY);
	}
	}
}
}