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:
Paul Mundt 2011-04-14 15:21:57 -07:00 коммит произвёл Linus Torvalds
Родитель c340b1d640
Коммит 9f6ae448bf
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -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();