WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] xen: fix section mismatch in reference from the func

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] xen: fix section mismatch in reference from the function xen_hvm_init_shared_info()
From: Stefan Assmann <sassmann@xxxxxxxxxx>
Date: Tue, 30 Nov 2010 17:28:02 +0100
Delivery-date: Wed, 01 Dec 2010 01:43:02 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101103 Fedora/1.0-0.33.b2pre.fc14 Thunderbird/3.1.6
From: Stefan Assmann <sassmann@xxxxxxxxxx>

The following warning shows up when building the kernel with
make CONFIG_DEBUG_SECTION_MISMATCH=y.

WARNING: arch/x86/built-in.o(.text+0x475): 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.

The problem is that xen_hvm_init_shared_info() calls extend_brk() which is
an __init function. However xen_hvm_init_shared_info() cannot be an
__init function as it's called on system resume as well. Easy fix by
moving extend_brk() out of the function.

Signed-off-by: Stefan Assmann <sassmann@xxxxxxxxxx>
---
 arch/x86/xen/enlighten.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 02c710b..13b11fd 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -83,6 +83,7 @@ EXPORT_SYMBOL(machine_to_phys_order);
 struct start_info *xen_start_info;
 EXPORT_SYMBOL_GPL(xen_start_info);

+struct shared_info *shared_info_page;
 struct shared_info xen_dummy_shared_info;

 void *xen_initial_gdt;
@@ -1310,11 +1311,7 @@ void xen_hvm_init_shared_info(void)
 {
        int cpu;
        struct xen_add_to_physmap xatp;
-       static struct shared_info *shared_info_page = 0;

-       if (!shared_info_page)
-               shared_info_page = (struct shared_info *)
-                       extend_brk(PAGE_SIZE, PAGE_SIZE);
        xatp.domid = DOMID_SELF;
        xatp.idx = 0;
        xatp.space = XENMAPSPACE_shared_info;
@@ -1365,6 +1362,9 @@ static void __init xen_hvm_guest_init(void)
        if (r < 0)
                return;

+       shared_info_page = (struct shared_info *)
+               extend_brk(PAGE_SIZE, PAGE_SIZE);
+
        xen_hvm_init_shared_info();

        if (xen_feature(XENFEAT_hvm_callback_vector))
-- 
1.7.3.2


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>