Messages in this thread | | | Date | Mon, 4 Jun 2012 18:35:56 +0200 | From | Sam Ravnborg <> | Subject | Re: WARNING: arch/x86/built-in.o: Section mismatch in reference from the variable test_nmi_ipi_callback_na to function .ini.text:test_nmi_ipi_callback |
| |
On Mon, Jun 04, 2012 at 10:36:43AM -0400, Don Zickus wrote: > On Sat, Jun 02, 2012 at 06:15:02PM +0200, Witold Baryluk wrote: > > Hello everybody, > > > > x86 32-bit Build just got 2 WARNINGS when building kernel on Linus' tree. > > Hi Witold, > > Thanks for the warnings. > > > > > > > VDSOSYM arch/x86/vdso/vdso32-syms.lds > > LD arch/x86/vdso/built-in.o > > LD arch/x86/built-in.o > > WARNING: arch/x86/built-in.o(.data+0x5af0): Section mismatch in reference from the variable test_nmi_ipi_callback_na.10451 to the function .init.text:test_nmi_ipi_callback() > > The variable test_nmi_ipi_callback_na.10451 references > > the function __init test_nmi_ipi_callback() > > If the reference is valid then annotate the > > variable with __init* or __refdata (see linux/init.h) or name the variable: > > *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console > > > > WARNING: arch/x86/built-in.o(.data+0x5b04): Section mismatch in reference from the variable nmi_unk_cb_na.10399 to the function .init.text:nmi_unk_cb() > > The variable nmi_unk_cb_na.10399 references > > the function __init nmi_unk_cb() > > If the reference is valid then annotate the > > variable with __init* or __refdata (see linux/init.h) or name the variable: > > *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console > > These are intermediate variables test_nmi_ipi_callback_na.10451 and > nmi_unk_cb_na.10399. I do not know how to fix them. > > Basically the test registers two nmi_handlers, run some tests, and > then unregisters them. Those handlers are what the compiler seems to be > complaining about. I do not know what magic to pass the compiler to let > it know that both of the handlers will be unregistered before the init > section is destroyed. > > Perhaps I should tag those callbacks with __ref? I am not sure the right > thing to do here.
Drop the __init from nmi_unk_cb() and test_nmi_ipi_callback(). Then the warnings are gone.
Trying to let register_nmi_handler() accept a function annotated __init is wrong as we do not want this. I someone try this in 'real' code we would be screwed.
Sam
| |