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>
This commit is contained in:
Ian Campbell 2011-02-11 16:37:41 +00:00 committed by Konrad Rzeszutek Wilk
parent 6b08cfebd3
commit 44b46c3ef8
2 changed files with 2 additions and 2 deletions

View File

@ -1292,7 +1292,7 @@ static int init_hvm_pv_info(int *major, int *minor)
return 0; return 0;
} }
void xen_hvm_init_shared_info(void) void __ref xen_hvm_init_shared_info(void)
{ {
int cpu; int cpu;
struct xen_add_to_physmap xatp; struct xen_add_to_physmap xatp;

View File

@ -136,7 +136,7 @@ static void p2m_init(unsigned long *p2m)
* - After resume we're called from within stop_machine, but the mfn * - After resume we're called from within stop_machine, but the mfn
* tree should alreay be completely allocated. * tree should alreay be completely allocated.
*/ */
void xen_build_mfn_list_list(void) void __ref xen_build_mfn_list_list(void)
{ {
unsigned long pfn; unsigned long pfn;