Re: [PATCH] w90p910_ether: remove incorrect __init annotation

From: David Miller
Date: Fri Dec 14 2018 - 17:43:12 EST


From: Arnd Bergmann <arnd@xxxxxxxx>
Date: Fri, 14 Dec 2018 23:22:10 +0100

> On Fri, Dec 14, 2018 at 10:23 PM David Miller <davem@xxxxxxxxxxxxx> wrote:
>>
>> From: Arnd Bergmann <arnd@xxxxxxxx>
>> Date: Mon, 10 Dec 2018 21:45:07 +0100
>>
>> > The get_mac_address() function is normally inline, but when it is
>> > not, we get a warning that this configuration is broken:
>> >
>> > WARNING: vmlinux.o(.text+0x4aff00): Section mismatch in reference from the function w90p910_ether_setup() to the function .init.text:get_mac_address()
>> > The function w90p910_ether_setup() references
>> > the function __init get_mac_address().
>> > This is often because w90p910_ether_setup lacks a __init
>> >
>> > Remove the __init to make it always do the right thing.
>> >
>> > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
>>
>> Actually I think we can validly mark w90p910_ether_setup() and
>> w90p910_probe() with appropriate init tagging. None of these
>> functions are invoked outside of the probing paths.
>
> But then we have to change the driver to use
> module_platform_driver_probe(), to ensure we cannot
> unbind/rebind the device. I usually don't like doing that,
> unless the device can never be stopped after it has
> been initialized.

Fair enough, let's go with your simpler fix for now.

Applied.