lkml.org 
[lkml]   [2009]   [Apr]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [tip:x86/urgent] x86: Fix false positive section mismatch warnings in the apic code
From
On 4/19/09, Sam Ravnborg <sam@ravnborg.org> wrote:
> If I understand it correct we have the following:

> (data) struct apic apic_es7000.acpi_madt_oem_check =>
> (function) es7000_acpi_madt_oem_check =>
> (function) find_unisys_acpi_oem_table
> (__init) early_acpi_os_unmap_memory
>
> So the real fix is to:
> 1) annotate find_unisys_acpi_oem_table __init
> 2) annotate es7000_acpi_madt_oem_check __init
> 3) teach modpost that struct apic apic_es7000 may reference __init
>
> Step 3 is done using __refdata
>
> Based on the above analysis I would assume the best fix
> would look like this the following.
> [I only looked at the first warning]
>
> Rabik/Marcin - if you agree in the analysis could you produce
> a proper patch and send to Ingo - thanks.
>
> You can add my:
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> if the patch is ok.
>
> Sam
Hi Sam, after applying your suggested three steps, we still have the
following warning:

WARNING: arch/x86/kernel/built-in.o(.text+0x36174): Section mismatch
in reference from the function unmap_unisys_acpi_oem_table() to the
function .init.text:__acpi_unmap_table()
The function unmap_unisys_acpi_oem_table() references
the function __init __acpi_unmap_table().
This is often because unmap_unisys_acpi_oem_table lacks a __init
annotation or the annotation of __acpi_unmap_table is wrong.

So, I think we've to annote unmap_unisys_acpi_oem_table with __init (
If we apply Sam's suggested steps). If anything else please notice.

Rakib.


\
 
 \ /
  Last update: 2009-04-20 06:09    [from the cache]
©2003-2011 Jasper Spaans