Re: [PATCH 2/2] [PATCH] gpio: Explicitly cast from __be16 to unsigned short

From: Linus Walleij
Date: Mon Aug 05 2019 - 05:11:12 EST


On Sun, Jul 21, 2019 at 2:53 PM Hennie Muller <hm@xxxxxxxxxxxxx> wrote:

> cpu_to_be16 returns a __be16 value. This does not break anything
> but does cause sparse to generate unnecessary warnings.
>
> Signed-off-by: Hennie Muller <hm@xxxxxxxxxxxxx>
(...)

> - gbmsg->val = cpu_to_be16(dir << offset);
> - gbmsg->mask = cpu_to_be16(0x0001 << offset);
> + gbmsg->val = (__force u16)cpu_to_be16(dir << offset);
> + gbmsg->mask = (__force u16)cpu_to_be16(0x0001 << offset);

Ugh I don't understand this.

Arnd: you know this better than me: is this the right thing to do
to get rid of sparse warnings from the code?

Yours,
Linus Walleij