Subject: Re: [PATCH v1] ACPI: Switch to use generic UUID API

From: Zhang Rui <[email-masked]>
Date: Wed, 10 May 2017 09:20:51 +0800

On Thu, 2017-05-04 at 12:21 +0300, Andy Shevchenko wrote:
> acpi_evaluate_dsm() and friends take a pointer to a raw buffer of 16
> bytes. Instead we convert them to use uuid_le type. At the same time
> we
> convert current users.
> 
> acpi_str_to_uuid() becomes useless after the conversion and it's safe
> to
> get rid of it.
> 
> The conversion fixes a potential bug in int340x_thermal as well since
> we have to use memcmp() on binary data.
> 
> Cc: Rafael J. Wysocki <[email-masked]>
> Cc: Mika Westerberg <[email-masked]>
> Cc: Borislav Petkov <[email-masked]>
> Cc: Dan Williams <[email-masked]>
> Cc: Amir Goldstein <[email-masked]>
> Cc: Jarkko Sakkinen <[email-masked]>
> Cc: Jani Nikula <[email-masked]>
> Cc: Ben Skeggs <[email-masked]>
> Cc: Benjamin Tissoires <[email-masked]>
> Cc: Joerg Roedel <[email-masked]>
> Cc: Adrian Hunter <[email-masked]>
> Cc: Yisen Zhuang <[email-masked]>
> Cc: Bjorn Helgaas <[email-masked]>
> Cc: Zhang Rui <[email-masked]>
> Cc: Felipe Balbi <[email-masked]>
> Cc: Mathias Nyman <[email-masked]>
> Cc: Heikki Krogerus <[email-masked]>
> Cc: Liam Girdwood <[email-masked]>
> Cc: Mark Brown <[email-masked]>
> Signed-off-by: Andy Shevchenko <[email-masked]>
> ---
> 
> diff --git a/drivers/thermal/int340x_thermal/int3400_thermal.c
> b/drivers/thermal/int340x_thermal/int3400_thermal.c
> index 9413c4abf0b9..c0eb3bb19b23 100644
> --- a/drivers/thermal/int340x_thermal/int3400_thermal.c
> +++ b/drivers/thermal/int340x_thermal/int3400_thermal.c
> @@ -23,7 +23,7 @@ enum int3400_thermal_uuid {
>  	INT3400_THERMAL_MAXIMUM_UUID,
>  };
>  
> -static u8 *int3400_thermal_uuids[INT3400_THERMAL_MAXIMUM_UUID] = {
> +static const char
> *int3400_thermal_uuids[INT3400_THERMAL_MAXIMUM_UUID] = {
>  	"42A441D6-AE6A-462b-A84B-4A8CE79027D3",
>  	"3A95C389-E4B8-4629-A526-C52C88626BAE",
>  	"97C68AE7-15FA-499c-B8C9-5DA81D606E0A",
> @@ -141,10 +141,10 @@ static int int3400_thermal_get_uuids(struct
> int3400_thermal_priv *priv)
>  		}
>  
>  		for (j = 0; j < INT3400_THERMAL_MAXIMUM_UUID; j++) {
> -			u8 uuid[16];
> +			uuid_le u;
>  
> -			acpi_str_to_uuid(int3400_thermal_uuids[j],
> uuid);
> -			if (!strncmp(uuid, objb->buffer.pointer,
> 16)) {
> +			uuid_le_to_bin(int3400_thermal_uuids[j],
> &u);
> +			if (!uuid_le_cmp(*(uuid_le *)objb-
> >buffer.pointer), u) {
>  				priv->uuid_bitmap |= (1 << j);
>  				break;
>  			}
thanks for the fix.

Acked-by: Zhang Rui <[email-masked]>

-rui