Re: [PATCH] linux/types.h: Restore the ability to disable sparse endianness checks

From: Bart Van Assche
Date: Tue Oct 10 2017 - 12:38:25 EST


On Mon, 2017-10-09 at 20:42 +0300, Michael S. Tsirkin wrote:
> On Mon, Oct 09, 2017 at 03:07:42PM +0000, Bart Van Assche wrote:
> > On Mon, 2017-10-09 at 16:22 +0300, Michael S. Tsirkin wrote:
> > > On Fri, Oct 06, 2017 at 10:23:53AM -0700, Bart Van Assche wrote:
> > > > The purpose of patch "linux/types.h: enable endian checks for all
> > > > sparse builds" was to encourage driver authors to annotate
> > > > endianness correctly in their drivers. However, since that patch
> > > > went upstream no endianness annotations in drivers have been fixed.
> > > > I think that this shows that the followed approach does not work,
> > > > probably because several driver authors do not use sparse. Restore
> > > > the ability to disable sparse endianness checks such that it
> > > > becomes again easy to review other sparse diagnostics for people
> > > > who want to analyze drivers they are not the author of.
> > > >
> > > > References: commit 05de97003c77 ("linux/types.h: enable endian checks for all sparse builds")
> > > > Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxx>
> > > > Cc: Christoph Hellwig <hch@xxxxxx>
> > > > Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> > >
> > > I still think the new default is good. You probably want ability to
> > > disable these checks selectively for the specific drivers though. Makes
> > > it easier to spot what needs to be fixed.
> >
> > I agree with what you wrote. And what you described is what my patch implements
> > - keep endianness checking enabled by default and make it possible to disable it
> > selectively. Does that mean that you agree with the patch I posted?
>
> I just mean I'd expect a patchset setting the flag for the broken
> drivers. Presumably this will help trigger some action.

Hello MST,

If I would add something like ccflags-y += -D__CHECK_ENDIAN__=0 to the
Makefile of drivers that are not endianness clean then that would make it
easier for driver authors to ignore endianness warnings reported by sparse.
I prefer that they have to add CF=-D__CHECK_ENDIAN__=0 to the command line
when verifying a driver with sparse to get rid of the sparse endianness
warnings. Do you agree with this?

Thanks,

Bart.