lkml.org 
[lkml]   [2008]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: section mismatch with a platform driver
    Neshama Parhoti wrote:

    > Hi Adrian and thank you for the help!
    >
    > On Mon, Oct 13, 2008 at 10:51 AM, Adrian Bunk <bunk@kernel.org> wrote:
    >
    >> On Mon, Oct 13, 2008 at 10:19:05AM +0200, Neshama Parhoti wrote:
    >>
    >>> WARNING: vmlinux.o(.data+0x44bc4): Section mismatch: reference to
    >>> .init.text:my_probe_func (between 'my_platform_struct' and
    >>> 'debug_level_variable')
    >>>
    >>> If I understand correctly, it shouts about my probe function being
    >>> referenced from the data section:
    >>>
    >>> static struct platform_driver my_platform_struct = {
    >>> .probe = my_probe_func,
    >>> .remove = my_remove,
    >>> .suspend = my_suspend,
    >>> .resume = my_resume,
    >>> .driver = {
    >>> .name = DRIVER_NAME,
    >>> },
    >>> };
    >>>
    >>>
    >> It complains about "my_probe_func", and that's not even in the code
    >> you posted.
    >>
    >
    > It happens even if I use an empty function like this:
    >
    > static int __init my_probe_func(struct platform_device *pdev)
    > {
    > return 0;
    > }
    >
    >
    > any idea what's the problem ?
    >
    That __init macro marks the probe function as "throw after init" - it
    tells the compiler to put this function in a separate ELF section that
    the kernel automatically frees when module init is done, but you are
    referencing this function in a structure that is not marked as "throw
    after init".

    Can't be sure without seeing the whole picture, but the most probable
    solution is to drop that __init from the probe function. It's seems
    wrong as in theory the probe function can be called at any time in the
    life of the kernel, not just in this module init, even if in practice
    this will never happen, as I suspect is the case with such a platform
    driver.

    Gilad



    --
    Gilad Ben-Yossef
    Chief Coffee Drinker

    Codefidence Ltd.
    The code is free, your time isn't.(TM)

    Web: http://codefidence.com
    Email: gilad@codefidence.com
    Office: +972-8-9316883 ext. 201
    Fax: +972-8-9316885
    Mobile: +972-52-8260388

    The Doctor: Don't worry, Reinette, just a nightmare.
    Everyone has nightmares. Even monsters from under the
    bed have nightmares, don't you, monster?
    Reinette: What do monsters have nightmares about?
    The Doctor: Me!



    \
     
     \ /
      Last update: 2008-10-13 12:19    [W:0.028 / U:2.904 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site