aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Campbell <Ian.Campbell@eu.citrix.com>2011-02-11 11:37:41 -0500
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2011-02-11 14:46:34 -0500
commit44b46c3ef805793ab3a7730dc71c72d0f258ea8e (patch)
tree0274c8ee3db7d2769bc1ecb03fee157c504e864d
parent6b08cfebd3bd346d8a2fd68a2265fc7736849802 (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.c2
-rw-r--r--arch/x86/xen/p2m.c2
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
1295void xen_hvm_init_shared_info(void) 1295void __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 */
139void xen_build_mfn_list_list(void) 139void __ref xen_build_mfn_list_list(void)
140{ 140{
141 unsigned long pfn; 141 unsigned long pfn;
142 142