Re: fs/dlm/midcomms.c:913:22: sparse: sparse: restricted __le32 degrades to integer

From: Alexander Aring
Date: Mon Feb 14 2022 - 07:48:13 EST


Hi,

On Mon, Feb 14, 2022 at 12:33 AM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
>
> On Sat, Jan 22, 2022 at 01:28:20PM -0500, Alexander Aring wrote:
> > Hi,
> >
> > On Fri, Jan 21, 2022 at 9:45 PM kernel test robot <lkp@xxxxxxxxx> wrote:
> > >
> > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > > head: 9b57f458985742bd1c585f4c7f36d04634ce1143
> > > commit: 658bd576f95ed597e519cdadf1c86ac87c17aea5 fs: dlm: move version conversion to compile time
> > > date: 3 months ago
> > > config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20220122/202201221028.YKA8kSdm-lkp@xxxxxxxxx/config)
> > > compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
> > > reproduce:
> > > # apt-get install sparse
> > > # sparse version: v0.6.4-dirty
> > > # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=658bd576f95ed597e519cdadf1c86ac87c17aea5
> > > git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> > > git fetch --no-tags linus master
> > > git checkout 658bd576f95ed597e519cdadf1c86ac87c17aea5
> > > # save the config file to linux build tree
> > > mkdir build_dir
> > > make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash
> > >
> > > If you fix the issue, kindly add following tag as appropriate
> >
> > I have it on my list but it isn't easy to make sparse happy here...
> > this is the second time the robot reported this issue. Is there a way
> > to turn the robot off in that case?
> >
> > Maybe some human who reads that knows the answer?
>
> Frankly, these "convert in place" functions (dlm_message_in(), etc.) are
> asking for trouble. IOW, it's a genuinely fishy code.
>
> Saner approach is to keep them in little-endian through the entire thing,
> but it's quite a bit of massage.

Yes, I agree. That is also what "/net" does, "mark it stored" the way
as the wire handles it.

- Alex