Re: [PATCH] coccinelle: api: detect unnecessary le16_to_cpu

From: Andy Shevchenko
Date: Tue Jul 04 2017 - 05:58:03 EST


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).

--
With Best Regards,
Andy Shevchenko