Re: [PATCH][2.6.24-rc2-mm1] memory hotplug x86_64 fix [2/3] fix section mismatch in vmammap_allock_block

Andrew Morton
2007-11-16T00:53:56Z

On Thu, 15 Nov 2007 19:35:44 +0900
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:

> Fixes section mismatch below.
>
> WARNING: vmlinux.o(.text+0x946b5): Section mismatch: reference to .init.text:'
> __alloc_bootmem_node (between 'vmemmap_alloc_block' and 'vmemmap_pgd_populate')
>
> Changelog
> - changed bootmem alloc wrapper function's name to be
> __earlyonly_bootmem_alloc().
>
> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
>
>
> mm/sparse-vmemmap.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> Index: linux-2.6.24-rc2-mm1/mm/sparse-vmemmap.c
> ===================================================================
> --- linux-2.6.24-rc2-mm1.orig/mm/sparse-vmemmap.c
> +++ linux-2.6.24-rc2-mm1/mm/sparse-vmemmap.c
> @@ -34,6 +34,16 @@
> * or to back the page tables that are used to create the mapping.
> * Uses the main allocators if they are available, else bootmem.
> */
> +
> +static void * __init_refok __earlyonly_bootmem_alloc(int node,
> + unsigned long size,
> + unsigned long align,
> + unsigned long goal)
> +{
> + return __alloc_bootmem_node(NODE_DATA(node), size, align, goal);
> +}
> +
> +
> void * __meminit vmemmap_alloc_block(unsigned long size, int node)
> {
> /* If the main allocator is up use that, fallback to bootmem. */
> @@ -44,7 +54,7 @@ void * __meminit vmemmap_alloc_block(uns
> return page_address(page);
> return NULL;
> } else
> - return __alloc_bootmem_node(NODE_DATA(node), size, size,
> + return __earlyonly_bootmem_alloc(node, size, size,
> __pa(MAX_DMA_ADDRESS));
> }
>

AFACIT this is applicable to mainline?