lkml.org 
[lkml]   [2006]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: Use of __init in asus_acpi.c + sony_acpi.c?
Date
On Sunday 26 February 2006 02:42, Sam Ravnborg wrote:
> WARNING: drivers/acpi/asus_acpi.o - Section mismatch: reference to \
> .init.text:asus_hotk_add from .data between 'asus_hotk_driver' (at \
> offset 0xe0) and 'model_conf'
> WARNING: drivers/acpi/sony_acpi.o - Section mismatch: reference to \
> .init.text:sony_acpi_add from .data between 'sony_acpi_driver' (at \
> offset 0xe0) and 'sony_acpi_values'
> ...
> From browsing the code I cannot see when this happens.
> In asus_acpi.c and sony_acpi.c the .add and .remove methods are
> declared __init/__exit indicating that the add method is solely used
> during early init of the module.
>
> Is it correct that acpi_bus_register_driver() is only called during the
> early init phase of a drivers and so we can discard the .add methods
> after first usage?

I think this is a bug in asus_acpi.c and sony_acpi.c. They assume
that their devices can not be hot-plugged, so if they aren't found
at the time of acpi_bus_register_driver(), they can discard the
.add() methods.

It is true that these particular devices can't be hot-plugged, but
there's no way to tell that to acpi_bus_register_driver(), so we have
to assume .add() could be called as long as the driver remains
registered.

I'll cook up a patch for asus_acpi.c and sony_acpi.c. Thanks for
finding this.

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

\
 
 \ /
  Last update: 2006-03-01 20:18    [W:0.039 / U:0.236 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site