include/linux/unaligned/be_byteshift.h:26:16: sparse: sparse: cast truncates bits from constant value (7fff becomes ff)

From: kernel test robot
Date: Tue Jul 07 2020 - 11:43:23 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: bfe91da29bfad9941d5d703d45e29f0812a20724
commit: 80591e61a0f7e88deaada69844e4a31280c4a38f kbuild: tell sparse about the $ARCH
date: 8 months ago
config: alpha-randconfig-s032-20200707 (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.2-31-gabbfd661-dirty
git checkout 80591e61a0f7e88deaada69844e4a31280c4a38f
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=alpha

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)

include/linux/unaligned/be_byteshift.h:26:16: sparse: sparse: cast truncates bits from constant value (800 becomes 0)
include/linux/unaligned/be_byteshift.h:32:30: sparse: sparse: cast truncates bits from constant value (8000000 becomes 0)
include/linux/unaligned/be_byteshift.h:26:16: sparse: sparse: cast truncates bits from constant value (800 becomes 0)
include/linux/unaligned/be_byteshift.h:32:30: sparse: sparse: cast truncates bits from constant value (8000000 becomes 0)
>> include/linux/unaligned/be_byteshift.h:26:16: sparse: sparse: cast truncates bits from constant value (7fff becomes ff)
>> include/linux/unaligned/be_byteshift.h:32:30: sparse: sparse: cast truncates bits from constant value (7fffffff becomes ffff)
>> include/linux/unaligned/be_byteshift.h:38:30: sparse: sparse: cast truncates bits from constant value (7fffffffffffffff becomes ffffffff)

vim +26 include/linux/unaligned/be_byteshift.h

064106a91be5e76 Harvey Harrison 2008-04-29 22
064106a91be5e76 Harvey Harrison 2008-04-29 23 static inline void __put_unaligned_be16(u16 val, u8 *p)
064106a91be5e76 Harvey Harrison 2008-04-29 24 {
064106a91be5e76 Harvey Harrison 2008-04-29 25 *p++ = val >> 8;
064106a91be5e76 Harvey Harrison 2008-04-29 @26 *p++ = val;
064106a91be5e76 Harvey Harrison 2008-04-29 27 }
064106a91be5e76 Harvey Harrison 2008-04-29 28
064106a91be5e76 Harvey Harrison 2008-04-29 29 static inline void __put_unaligned_be32(u32 val, u8 *p)
064106a91be5e76 Harvey Harrison 2008-04-29 30 {
064106a91be5e76 Harvey Harrison 2008-04-29 31 __put_unaligned_be16(val >> 16, p);
064106a91be5e76 Harvey Harrison 2008-04-29 @32 __put_unaligned_be16(val, p + 2);
064106a91be5e76 Harvey Harrison 2008-04-29 33 }
064106a91be5e76 Harvey Harrison 2008-04-29 34
064106a91be5e76 Harvey Harrison 2008-04-29 35 static inline void __put_unaligned_be64(u64 val, u8 *p)
064106a91be5e76 Harvey Harrison 2008-04-29 36 {
064106a91be5e76 Harvey Harrison 2008-04-29 37 __put_unaligned_be32(val >> 32, p);
064106a91be5e76 Harvey Harrison 2008-04-29 @38 __put_unaligned_be32(val, p + 4);
064106a91be5e76 Harvey Harrison 2008-04-29 39 }
064106a91be5e76 Harvey Harrison 2008-04-29 40

:::::: The code at line 26 was first introduced by commit
:::::: 064106a91be5e76cb42c1ddf5d3871e3a1bd2a23 kernel: add common infrastructure for unaligned access

:::::: TO: Harvey Harrison <harvey.harrison@xxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip