On Wed, 21 Jun 2006 16:23:47 -0700
keith mannthey <[EMAIL PROTECTED]> wrote:
> Update. I have moved to 2.6.17-rc6-mm2 to work with the development
> acpi_memhotplug driver there. I have added various debug statements and
> this is what I know.
>
Thanks, looks informative.
> acpi_memory_get_device calls acpi_bus_add
> acpi_bus_add calls acpi_add_single_object (fails)
> acpi_add_single_object passes acpi_bus_get_flags
> finds the device present
> passes acpi_device_set_context
> calls acpi_device_register
> after calling acpi_bus_find_driver
> ends up
> if (!result) *child = device;
> and returns.
>
Then, "acpi_device" itself is added, but no driver data.
acpi_add_single_object doesn't check return value of acpi_bus_find_driver(),
as you know. So...
===
static int acpi_bus_find_driver(struct acpi_device *device)
{
<snip>
list_for_each_safe(node, next, &acpi_bus_drivers) {
<snip>
if (!acpi_bus_match(device, driver)) {
(*)----------- result = acpi_bus_driver_init(device, driver);
if (!result)
goto Done;
}
....
}
===
Next check point is:
- acpi_bus_driver_init() is called or not
- what acpi_bus_driver_init() returns
in acpi_bus_driver_init()
- driver->ops.add() is called or not
- what it retruns
int acpi_memory_device_add()
- it is called or not
- why this fails.
If we can find why acpi_bus_driver_init() fails or is not called,
we can find the problem , I think.
-Kame
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html