On 10/11/2010 12:00 PM, H. Peter Anvin wrote: > On 10/11/2010 10:09 AM, Yinghai Lu wrote: >> >> make all functions in memblock.c without __init to carry __init_memblock. >> >> >> -static phys_addr_t __init memblock_find_region(phys_addr_t start, phys_addr_t end, >> +static phys_addr_t __init_memblock memblock_find_region(phys_addr_t start, phys_addr_t end, >> phys_addr_t size, phys_addr_t align) >> >> -static int memblock_search(struct memblock_type *type, phys_addr_t addr) >> +static int __init_memblock memblock_search(struct memblock_type *type, phys_addr_t addr) >> > > Your patch description doesn't match what your patch does. Please write > a correct description. please check [PATCH -v2] x86: Fix section mismatch with memblock_find_region() Stephen found WARNING: mm/built-in.o(.text+0x25ab8): Section mismatch in reference from the function memblock_find_base() to the function .init.text:memblock_find_region() The function memblock_find_base() references the function __init memblock_find_region(). This is often because memblock_find_base lacks a __init annotation or the annotation of memblock_find_region is wrong. So let memblock_find_region() to use __init_memblock insteaf of __init directly. Also make left function that doesn't have __init* to carry __init_memblock. Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> --- mm/memblock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: linux-2.6/mm/memblock.c =================================================================== --- linux-2.6.orig/mm/memblock.c +++ linux-2.6/mm/memblock.c @@ -99,7 +99,7 @@ long __init_memblock memblock_overlaps_r * are top-down. */ -static phys_addr_t __init memblock_find_region(phys_addr_t start, phys_addr_t end, +static phys_addr_t __init_memblock memblock_find_region(phys_addr_t start, phys_addr_t end, phys_addr_t size, phys_addr_t align) { phys_addr_t base, res_base; @@ -653,7 +653,7 @@ void __init memblock_enforce_memory_limi } } -static int memblock_search(struct memblock_type *type, phys_addr_t addr) +static int __init_memblock memblock_search(struct memblock_type *type, phys_addr_t addr) { unsigned int left = 0, right = type->cnt; -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html