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

From: Al Viro
Date: Mon Feb 14 2022 - 00:13:26 EST


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.