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.shevche...@linux.intel.com>
Intel Finland Oy

Reply via email to