Re: [PATCH] coccinelle: api: detect unnecessary le16_to_cpu
From: Julia Lawall
Date: Tue Jul 04 2017 - 05:54:18 EST
On Tue, 4 Jul 2017, Andy Shevchenko wrote:
> On Tue, Jul 4, 2017 at 12:11 PM, Julia Lawall <julia.lawall@xxxxxxx> wrote:
> > Here is a revised version (not a patch because it doesn't support all of
> > the various modes) and the results. It doesn't return anything beyond
> > what was mentioned in previous mails.
> >
> > For the following code:
> >
> > ret = i2c_smbus_read_word_data(chip->client, reg << 1);
> > val[0] = (u16)ret & 0xFF;
> > val[1] = (u16)ret >> 8;
> >
> > do we want to see:
> >
> > put_unaligned(val,i2c_smbus_read_word_data(chip->client, reg << 1));
>
> If and only if the type of the pointer is a byte type (u8 *, char *,
> or alike) _and_ we try to use it as a provider for 16-bit value (2
> bytes).
OK, the provider part seems to add more complexity than is worth putting
in the rule, so I will let the developer figure out what should be done.
thanks,
julia