On Mon, Aug 5, 2019 at 11:11 AM Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > > 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? No, the structure should be modified to use __be16 fields instead of u16. Arnd