[norov:gup 45/48] lib/bitmap.c:1570:17: error: initializing 'unsigned long *' with an expression of type 'const unsigned long *' discards qualifiers

From: kernel test robot
Date: Tue May 03 2022 - 22:03:42 EST


Hi Yury,

FYI, the error/warning still remains.

tree: https://github.com/norov/linux gup
head: c96226d23c745b114dc041e0d8d0c272b280c71a
commit: f1cbd19c47bf73d532ff30571601c7ede57d5f82 [45/48] lib: add bitmap_{from,to}_arr64
config: mips-randconfig-r015-20220501 (https://download.01.org/0day-ci/archive/20220504/202205041022.rYfACmSF-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 363b3a645a1e30011cc8da624f13dac5fd915628)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
# https://github.com/norov/linux/commit/f1cbd19c47bf73d532ff30571601c7ede57d5f82
git remote add norov https://github.com/norov/linux
git fetch --no-tags norov gup
git checkout f1cbd19c47bf73d532ff30571601c7ede57d5f82
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash

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

All errors (new ones prefixed by >>):

>> lib/bitmap.c:1570:17: error: initializing 'unsigned long *' with an expression of type 'const unsigned long *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
unsigned long *end = bitmap + BITS_TO_LONGS(nbits);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/bitmap.c:1575:22: warning: shift count >= width of type [-Wshift-count-overflow]
*buf |= *bitmap++ << 32;
^ ~~
1 warning and 1 error generated.


vim +1570 lib/bitmap.c

1561
1562 /**
1563 * bitmap_to_arr64 - copy the contents of bitmap to a u64 array of bits
1564 * @buf: array of u64 (in host byte order), the dest bitmap
1565 * @bitmap: array of unsigned longs, the source bitmap
1566 * @nbits: number of bits in @bitmap
1567 */
1568 void bitmap_to_arr64(u64 *buf, const unsigned long *bitmap, unsigned int nbits)
1569 {
> 1570 unsigned long *end = bitmap + BITS_TO_LONGS(nbits);

--
0-DAY CI Kernel Test Service
https://01.org/lkp