Re: [PATCH v1 06/10] device property: switch to use UUID API

From: Andy Shevchenko
Date: Fri Feb 26 2016 - 09:11:34 EST


On Thu, 2016-02-18 at 01:03 +0100, Rafael J. Wysocki wrote:
> On Wednesday, February 17, 2016 02:17:24 PM Andy Shevchenko wrote:
> > Switch to use a generic UUID API instead of custom approach. It
> > allows to
> > define UUIDs, compare them, and validate.

[]

> > +static const uuid_le ads_uuid =
> > + UUID_LE(0xdbb8e3e6, 0x5886, 0x4ba6,
> > + 0x87, 0x95, 0x13, 0x19, 0xf5, 0x2a, 0x96, 0x6b);
> > Â
> > Âstatic bool acpi_enumerate_nondev_subnodes(acpi_handle scope,
> > Â ÂÂÂconst union acpi_object
> > *desc,
> > @@ -138,7 +136,7 @@ static bool
> > acpi_enumerate_nondev_subnodes(acpi_handle scope,
> > Â ÂÂÂÂ|| links->type != ACPI_TYPE_PACKAGE)
> > Â break;
> > Â
> > - if (memcmp(uuid->buffer.pointer, ads_uuid,
> > sizeof(ads_uuid)))
> > + if (uuid_le_cmp(*(uuid_le *)uuid->buffer.pointer,
> > ads_uuid))
>
> Maybe it's too late, but I don't quite understand the pointer
> manipulations here.
>
> I can see why you need a type conversion (although it looks ugly),
> but why do you
> need to dereference it too?

The function takes that kind of type on input. The other variants are
not compiled.
Perhaps we better change uuid_{lb}e_cmp() first to take normal
pointers, though I think the initial idea was to get type checking at
compile time.

--
Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Intel Finland Oy