[linux-next:master] BUILD REGRESSION 8cb8311e95e3bb58bd84d6350365f14a718faa6d

Dan Carpenter dan.carpenter at oracle.com
Thu May 26 01:19:28 PDT 2022


On Wed, May 25, 2022 at 02:50:56PM -0700, Andrew Morton wrote:
> On Thu, 26 May 2022 05:35:20 +0800 kernel test robot <lkp at intel.com> wrote:
> 
> > tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> > branch HEAD: 8cb8311e95e3bb58bd84d6350365f14a718faa6d  Add linux-next specific files for 20220525
> > 
> > Error/Warning reports:
> > 
> > ...
> >
> > Unverified Error/Warning (likely false positive, please contact us if interested):
> 
> Could be so.
> 
> > mm/shmem.c:1948 shmem_getpage_gfp() warn: should '(((1) << 12) / 512) << folio_order(folio)' be a 64 bit type?
> 
> I've been seeing this one for a while.  And from this report I can't
> figure out what tool emitted it.  Clang?

This is a Smatch warning.

I normally look over Smatch warnings before forwarding kbuild-bot emails
but this email is a grab bag of static checker warnings from different
tools.

This warning has a high rate of false positives so I'm going to disable
it by default.

> 
> >
> > ...
> >
> > |-- i386-randconfig-m021
> > |   `-- mm-shmem.c-shmem_getpage_gfp()-warn:should-((()-)-)-folio_order(folio)-be-a-bit-type
> 
> If you're going to use randconfig then shouldn't you make the config
> available?  Or maybe quote the KCONFIG_SEED - presumably there's a way
> for others to regenerate.
> 
> Anyway, the warning seems wrong to me.
> 
> 
> #define PAGE_SIZE               (_AC(1,UL) << PAGE_SHIFT)
> 
> #define BLOCKS_PER_PAGE  (PAGE_SIZE/512)
> 
> 	inode->i_blocks += BLOCKS_PER_PAGE << folio_order(folio);
> 
> so the RHS here should have unsigned long type.  Being able to generate
> the cpp output would be helpful.  That requires the .config.

The heuristic is that "inode->i_blocks" is a u64 but this .config must
be for a 32bit CPU.

I'm just going to turn off all these warnings until I can figure out a
better heuristic.

regards,
dan carpenter




More information about the linux-riscv mailing list