x86: fix section mismatch warning - spp_getpage()
WARNING: vmlinux.o(.text+0x17a3e): Section mismatch in reference from the function set_pte_vaddr_pud() to the function .init.text:spp_getpage() The function set_pte_vaddr_pud() references the function __init spp_getpage(). This is often because set_pte_vaddr_pud lacks a __init annotation or the annotation of spp_getpage is wrong. spp_getpage is called from __init (__init_extra_mapping) and non __init (set_pte_vaddr_pud) functions, so it can't be __init. Unfortunately it calls alloc_bootmem_pages which is __init, but does it only when bootmem allocator is available (after_bootmem == 0). So annotate it accordingly. Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Cc: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
Родитель
fc0091b3c8
Коммит
8d6ea9674c
|
@ -88,7 +88,11 @@ early_param("gbpages", parse_direct_gbpages_on);
|
|||
|
||||
int after_bootmem;
|
||||
|
||||
static __init void *spp_getpage(void)
|
||||
/*
|
||||
* NOTE: This function is marked __ref because it calls __init function
|
||||
* (alloc_bootmem_pages). It's safe to do it ONLY when after_bootmem == 0.
|
||||
*/
|
||||
static __ref void *spp_getpage(void)
|
||||
{
|
||||
void *ptr;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче