mm/page_alloc.c: silence build_all_zonelists() section mismatch
The memory hotplug case involves calling to build_all_zonelists() which in turns calls in to setup_zone_pageset(). The latter is marked __meminit while build_all_zonelists() itself has no particular annotation. build_all_zonelists() is only handed a non-NULL pointer in the case of memory hotplug through an existing __meminit path, so the setup_zone_pageset() reference is always safe. The options as such are either to flag build_all_zonelists() as __ref (as per __build_all_zonelists()), or to simply discard the __meminit annotation from setup_zone_pageset(). Signed-off-by: Paul Mundt <lethal@linux-sh.org> Acked-by: Mel Gorman <mel@csn.ul.ie> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
c340b1d640
Коммит
9f6ae448bf
|
@ -3176,7 +3176,7 @@ static __init_refok int __build_all_zonelists(void *data)
|
||||||
* Called with zonelists_mutex held always
|
* Called with zonelists_mutex held always
|
||||||
* unless system_state == SYSTEM_BOOTING.
|
* unless system_state == SYSTEM_BOOTING.
|
||||||
*/
|
*/
|
||||||
void build_all_zonelists(void *data)
|
void __ref build_all_zonelists(void *data)
|
||||||
{
|
{
|
||||||
set_zonelist_order();
|
set_zonelist_order();
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче