Re: [PATCH V2] staging: fieldbus: anybus-s: force endiannes annotation

From: Al Viro
Date: Mon Apr 29 2019 - 23:05:45 EST


On Tue, Apr 30, 2019 at 04:22:38AM +0200, Nicholas Mc Guire wrote:
> On Mon, Apr 29, 2019 at 10:03:36AM -0400, Sven Van Asbroeck wrote:
> > On Mon, Apr 29, 2019 at 2:11 AM Nicholas Mc Guire <hofrat@xxxxxxxxx> wrote:
> > >
> > > V2: As requested by Sven Van Asbroeck <thesven73@xxxxxxxxx> make the
> > > impact of the patch clear in the commit message.
> >
> > Thank you, but did you miss my comment about creating a local variable
> > instead? See:
> > https://lkml.org/lkml/2019/4/28/97
>
> Did not miss it - I just don't think that makes it any more
> understandable - the __force __be16 makes it clear I believe
> that this is correct, sparse does not like this though - so tell
> sparse.

... to STFU, 'cause you know better. The trouble is, how do we
(or yourself a year or two later) know *why* it is correct?
Worse, how do we (or yourself, etc.) know if a change about to be
done to the code won't invalidate the proof of yours?

> The local variable would need to be explained as it is
> functionally not necessary - therefor I find it more confusing
> that using __force here.

What's confusing is mixing host- and fixed-endian values in the
same variable at different times. Treat those as unrelated
types that happen to have the same sizeof.

Quite a few of __force instances in the tree should be taken out
and shot. Don't add to their number.