[PATCH] fix of_flat_dt_is_compatible to match the full compatible string
Grant Likely
grant.likely at secretlab.ca
Sun Jul 25 08:00:21 EST 2010
On Thu, Jul 22, 2010 at 8:45 PM, Benjamin Herrenschmidt
<benh at kernel.crashing.org> wrote:
> On Thu, 2010-07-22 at 18:28 -0500, Stuart Yoder wrote:
>> From: Stuart Yoder <stuart.yoder at freescale.com>
>>
>> With the previous string comparison, a device tree
>> compatible of "foo-bar" would match as compatible
>> with a driver looking for "foo".
>>
>> Signed-off-by: Stuart Yoder <stuart.yoder at freescale.com>
>
> Beware you are doing two changes in one here and only documenting one...
>
> You also removed the case insenstivity.
>
> Now, those things are supposed to be case sensitive afaik, but we have
> enough legacy HW with more/less crap DTs and I'd be careful with
> changing that without a good reason (ie, it breaks not to do it ?).
>
> No objection with fixing the partial match tho.
On that note, for completeness, this code should be using the
of_compat_cmp() to match up with other code. If SPARC ever uses this
code, which davem said he might tp support kexec, then this macro will
be important. I'll change it when I pick up the patch.
g.
>
> Cheers,
> Ben.
>
>> ---
>> drivers/of/fdt.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
>> index dee4fb5..f5239c0 100644
>> --- a/drivers/of/fdt.c
>> +++ b/drivers/of/fdt.c
>> @@ -169,7 +169,7 @@ int __init of_flat_dt_is_compatible(unsigned long node, const char *compat)
>> if (cp == NULL)
>> return 0;
>> while (cplen > 0) {
>> - if (strncasecmp(cp, compat, strlen(compat)) == 0)
>> + if (!strcmp(cp, compat))
>> return 1;
>> l = strlen(cp) + 1;
>> cp += l;
>
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
>
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
More information about the Linuxppc-dev
mailing list