On Thu, 2008-02-14 at 13:40 +0100, Holger Macht wrote:
> When trying to get the acpi_handle from an acpi_buffer, pass
> ACPI_ROOT_OBJECT instead of NULL to acpi_get_handle(). This fixes the
> detection of dock dependent bays.
>
>
> Signed-off-by: Holger Macht <[EMAIL PROTECTED]>
> ---
>
> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> index 3fac011..d9b9143 100644
> --- a/drivers/acpi/scan.c
> +++ b/drivers/acpi/scan.c
> @@ -609,7 +609,8 @@ acpi_bus_get_ejd(acpi_handle handle, acpi_handle *ejd)
> status = acpi_evaluate_object(handle, "_EJD", NULL, &buffer);
> if (ACPI_SUCCESS(status)) {
> obj = buffer.pointer;
> - status = acpi_get_handle(NULL, obj->string.pointer, ejd);
> + status = acpi_get_handle(ACPI_ROOT_OBJECT, obj->string.pointer,
> + ejd);
> kfree(buffer.pointer);
> }
> return status;
>
I can verify that acpi_bus_get_ejd is totally useless without that
patch.
If "status = acpi_evaluate_object(handle, "_EJD", NULL, &buffer);"
succeeds (and AE_NOT_FOUND is not returned), the function will return
AE_BAD_PARAMETER, because NULL never makes sense as first argument of
acpi_get_handle:
status = acpi_get_handle(NULL, obj->string.pointer, ejd);
I can also verify that the correct handle is evaluated with this patch
on a recent ThinkPad, otherwise not.
Please add it, looks like a typo.
Thomas
-
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