RE: Different WARNING:drivers/scsi/fcoe/libfcoe.o(.init.text+0x1a): Section mismatch in referencefrom the function init_module() to the function.exit.text:fcoe_transport_exit()

From: Zou, Yi
Date: Mon Jun 04 2012 - 18:23:36 EST


>
> > WARNING: drivers/scsi/fcoe/libfcoe.o(.init.text+0x1a): Section mismatch
> in reference from the function init_module() to the
> function .exit.text:fcoe_transport_exit()
> > The function __init init_module() references
> > a function __exit fcoe_transport_exit().
> > This is often seen when error handling in the init function
> > uses functionality in the exit path.
> > The fix is often to remove the __exit annotation of
> > fcoe_transport_exit() so it may be used outside an exit section.
> >
> > CC arch/x86/crypto/crc32c-intel.mod.o
> > LD [M] arch/x86/crypto/crc32c-intel.ko
> > CC arch/x86/crypto/salsa20-i586.mod.o
> > LD [M] arch/x86/crypto/salsa20-i586.ko
> > CC arch/x86/crypto/serpent-sse2-i586.mod.o
> > LD [M] arch/x86/crypto/serpent-sse2-i586.ko
> >
> >
> >
> > (I'm dropping previous CC list, as this warning is easier to solve,
> > probably just following this instructions - dropping __exit from
> > fcoe_transport_exit() should be fine, especially if indeed it is needed
> > from init_module in error path).
>
> Correct - dropping __exit is the fix here.
>
> Sam

> Sam
However, fcoe_transport_exit() is called only in module *exit* path by the
module exit func libfcoe_exit(), not in the init_module error path. Let me
take a objdump of the libfcoe.o to see where your above section mismatch warning
is from. Is this on 32bit only?

yi

> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/