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

Reply via email to