diff options
author | Ian Campbell <Ian.Campbell@eu.citrix.com> | 2011-02-11 11:37:41 -0500 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2011-02-11 14:46:34 -0500 |
commit | 44b46c3ef805793ab3a7730dc71c72d0f258ea8e (patch) | |
tree | 0274c8ee3db7d2769bc1ecb03fee157c504e864d | |
parent | 6b08cfebd3bd346d8a2fd68a2265fc7736849802 (diff) |
xen: annotate functions which only call into __init at start of day
Both xen_hvm_init_shared_info and xen_build_mfn_list_list can be
called at resume time as well as at start of day but only reference
__init functions (extend_brk) at start of day. Hence annotate with
__ref.
WARNING: arch/x86/built-in.o(.text+0x4f1): Section mismatch in reference
from the function xen_hvm_init_shared_info() to the function
.init.text:extend_brk()
The function xen_hvm_init_shared_info() references
the function __init extend_brk().
This is often because xen_hvm_init_shared_info lacks a __init
annotation or the annotation of extend_brk is wrong.
xen_hvm_init_shared_info calls extend_brk() iff !shared_info_page and
initialises shared_info_page with the result. This happens at start of
day only.
WARNING: arch/x86/built-in.o(.text+0x599b): Section mismatch in reference
from the function xen_build_mfn_list_list() to the function
.init.text:extend_brk()
The function xen_build_mfn_list_list() references
the function __init extend_brk().
This is often because xen_build_mfn_list_list lacks a __init
annotation or the annotation of extend_brk is wrong.
(this warning occurs multiple times)
xen_build_mfn_list_list only calls extend_brk() at boot time, while
building the initial mfn list list
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-rw-r--r-- | arch/x86/xen/enlighten.c | 2 | ||||
-rw-r--r-- | arch/x86/xen/p2m.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index 50542efe45fb..28e6d42ce2b8 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c | |||
@@ -1292,7 +1292,7 @@ static int init_hvm_pv_info(int *major, int *minor) | |||
1292 | return 0; | 1292 | return 0; |
1293 | } | 1293 | } |
1294 | 1294 | ||
1295 | void xen_hvm_init_shared_info(void) | 1295 | void __ref xen_hvm_init_shared_info(void) |
1296 | { | 1296 | { |
1297 | int cpu; | 1297 | int cpu; |
1298 | struct xen_add_to_physmap xatp; | 1298 | struct xen_add_to_physmap xatp; |
diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c index 89342e5fd082..05cfc6abbe10 100644 --- a/arch/x86/xen/p2m.c +++ b/arch/x86/xen/p2m.c | |||
@@ -136,7 +136,7 @@ static void p2m_init(unsigned long *p2m) | |||
136 | * - After resume we're called from within stop_machine, but the mfn | 136 | * - After resume we're called from within stop_machine, but the mfn |
137 | * tree should alreay be completely allocated. | 137 | * tree should alreay be completely allocated. |
138 | */ | 138 | */ |
139 | void xen_build_mfn_list_list(void) | 139 | void __ref xen_build_mfn_list_list(void) |
140 | { | 140 | { |
141 | unsigned long pfn; | 141 | unsigned long pfn; |
142 | 142 | ||