[bvanassche:block-bitwise-opf 26/58] drivers/md/raid1.c:1993:60: sparse: sparse: incorrect type in argument 5 (different base types)

From: kernel test robot
Date: Tue Jun 28 2022 - 11:30:12 EST


tree: https://github.com/bvanassche/linux block-bitwise-opf
head: 0bd8feaed1580090a37f1a1aff32e3e9bcb9bdd1
commit: ae4e00689c13aebb4ab4162d7f964624f9a86a74 [26/58] md/core: Combine two sync_page_io() arguments
config: nios2-randconfig-s032-20220627 (https://download.01.org/0day-ci/archive/20220628/202206282329.SSMaK1Qi-lkp@xxxxxxxxx/config)
compiler: nios2-linux-gcc (GCC) 11.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.4-31-g4880bd19-dirty
# https://github.com/bvanassche/linux/commit/ae4e00689c13aebb4ab4162d7f964624f9a86a74
git remote add bvanassche https://github.com/bvanassche/linux
git fetch --no-tags bvanassche block-bitwise-opf
git checkout ae4e00689c13aebb4ab4162d7f964624f9a86a74
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=nios2 SHELL=/bin/bash drivers/md/

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


sparse warnings: (new ones prefixed by >>)
drivers/md/raid1.c:646:24: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid1.c:646:24: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid1.c:646:24: sparse: struct md_rdev *
drivers/md/raid1.c:777:24: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid1.c:777:24: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid1.c:777:24: sparse: struct md_rdev *
drivers/md/raid1.c:1223:30: sparse: sparse: incorrect type in initializer (different base types) @@ expected int const op @@ got restricted blk_opf_t enum req_op @@
drivers/md/raid1.c:1223:30: sparse: expected int const op
drivers/md/raid1.c:1223:30: sparse: got restricted blk_opf_t enum req_op
drivers/md/raid1.c:1224:52: sparse: sparse: incorrect type in initializer (different base types) @@ expected unsigned long const do_sync @@ got restricted blk_opf_t @@
drivers/md/raid1.c:1224:52: sparse: expected unsigned long const do_sync
drivers/md/raid1.c:1224:52: sparse: got restricted blk_opf_t
drivers/md/raid1.c:1241:24: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid1.c:1241:24: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid1.c:1241:24: sparse: struct md_rdev *
drivers/md/raid1.c:1404:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid1.c:1404:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid1.c:1404:40: sparse: struct md_rdev *
drivers/md/raid1.c:1635:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid1.c:1635:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid1.c:1635:40: sparse: struct md_rdev *
drivers/md/raid1.c:1707:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid1.c:1707:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid1.c:1707:40: sparse: struct md_rdev *
drivers/md/raid1.c:1824:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid1.c:1824:25: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid1.c:1824:25: sparse: struct md_rdev *
drivers/md/raid1.c:1835:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid1.c:1835:25: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid1.c:1835:25: sparse: struct md_rdev *
>> drivers/md/raid1.c:1993:60: sparse: sparse: incorrect type in argument 5 (different base types) @@ expected restricted blk_opf_t [usertype] opf @@ got int rw @@
drivers/md/raid1.c:2298:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid1.c:2298:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid1.c:2298:32: sparse: struct md_rdev *
drivers/md/raid1.c:2334:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid1.c:2334:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid1.c:2334:32: sparse: struct md_rdev *
drivers/md/raid1.c:2351:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid1.c:2351:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid1.c:2351:32: sparse: struct md_rdev *
drivers/md/raid1.c:2767:24: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid1.c:2767:24: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid1.c:2767:24: sparse: struct md_rdev *
--
drivers/md/raid10.c:1946:37: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:1946:37: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:1946:37: sparse: struct md_rdev *
drivers/md/raid10.c:4919:33: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:4919:33: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:4919:33: sparse: struct md_rdev *
drivers/md/raid10.c:4922:33: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:4922:33: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:4922:33: sparse: struct md_rdev *
drivers/md/raid10.c:5011:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:5011:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:5011:32: sparse: struct md_rdev *
drivers/md/raid10.c:5014:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:5014:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:5014:32: sparse: struct md_rdev *
drivers/md/raid10.c:759:24: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:759:24: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:759:24: sparse: struct md_rdev *
drivers/md/raid10.c:762:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:762:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:762:32: sparse: struct md_rdev *
drivers/md/raid10.c:1139:30: sparse: sparse: incorrect type in initializer (different base types) @@ expected int const op @@ got restricted blk_opf_t enum req_op @@
drivers/md/raid10.c:1139:30: sparse: expected int const op
drivers/md/raid10.c:1139:30: sparse: got restricted blk_opf_t enum req_op
drivers/md/raid10.c:1140:52: sparse: sparse: incorrect type in initializer (different base types) @@ expected unsigned long const do_sync @@ got restricted blk_opf_t @@
drivers/md/raid10.c:1140:52: sparse: expected unsigned long const do_sync
drivers/md/raid10.c:1140:52: sparse: got restricted blk_opf_t
drivers/md/raid10.c:1165:28: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:1165:28: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:1165:28: sparse: struct md_rdev *
drivers/md/raid10.c:1233:30: sparse: sparse: incorrect type in initializer (different base types) @@ expected int const op @@ got restricted blk_opf_t enum req_op @@
drivers/md/raid10.c:1234:52: sparse: sparse: incorrect type in initializer (different base types) @@ expected unsigned long const do_sync @@ got restricted blk_opf_t @@
drivers/md/raid10.c:1235:51: sparse: sparse: incorrect type in initializer (different base types) @@ expected unsigned long const do_fua @@ got restricted blk_opf_t @@
drivers/md/raid10.c:1263:32: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected restricted blk_opf_t enum req_op op @@ got int const op @@
drivers/md/raid10.c:1263:44: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted blk_opf_t [usertype] op_flags @@ got unsigned long @@
drivers/md/raid10.c:1303:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:1303:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:1303:40: sparse: struct md_rdev *
drivers/md/raid10.c:1304:41: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:1304:41: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:1304:41: sparse: struct md_rdev *
drivers/md/raid10.c:1434:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:1434:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:1434:40: sparse: struct md_rdev *
drivers/md/raid10.c:1435:41: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:1435:41: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:1435:41: sparse: struct md_rdev *
drivers/md/raid10.c:1744:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:1744:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:1744:40: sparse: struct md_rdev *
drivers/md/raid10.c:1745:41: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:1745:41: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:1745:41: sparse: struct md_rdev *
drivers/md/raid10.c:1913:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:1913:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:1913:40: sparse: struct md_rdev *
drivers/md/raid10.c:2142:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:2142:25: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:2142:25: sparse: struct md_rdev *
drivers/md/raid10.c:2156:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:2156:17: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:2156:17: sparse: struct md_rdev *
>> drivers/md/raid10.c:2647:60: sparse: sparse: incorrect type in argument 5 (different base types) @@ expected restricted blk_opf_t [usertype] opf @@ got int rw @@
drivers/md/raid10.c:2716:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:2716:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:2716:32: sparse: struct md_rdev *
drivers/md/raid10.c:2769:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:2769:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:2769:32: sparse: struct md_rdev *
drivers/md/raid10.c:2803:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:2803:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:2803:32: sparse: struct md_rdev *
drivers/md/raid10.c:3313:49: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:3313:49: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:3313:49: sparse: struct md_rdev *
drivers/md/raid10.c:3388:33: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:3388:33: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:3388:33: sparse: struct md_rdev *
drivers/md/raid10.c:3389:36: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:3389:36: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:3389:36: sparse: struct md_rdev *
drivers/md/raid10.c:3459:56: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:3459:56: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:3459:56: sparse: struct md_rdev *
drivers/md/raid10.c:3476:41: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:3476:41: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:3476:41: sparse: struct md_rdev *
drivers/md/raid10.c:3679:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:3679:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:3679:32: sparse: struct md_rdev *
drivers/md/raid10.c:3709:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:3709:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:3709:32: sparse: struct md_rdev *
drivers/md/raid10.c:4452:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:4452:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:4452:40: sparse: struct md_rdev *
drivers/md/raid10.c:4468:40: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:4468:40: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:4468:40: sparse: struct md_rdev *
drivers/md/raid10.c:5096:48: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:5096:48: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:5096:48: sparse: struct md_rdev *
drivers/md/raid10.c:5192:48: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:5192:48: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:5192:48: sparse: struct md_rdev *
drivers/md/raid10.c:5195:32: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/md/raid10.c:5195:32: sparse: struct md_rdev [noderef] __rcu *
drivers/md/raid10.c:5195:32: sparse: struct md_rdev *

vim +1993 drivers/md/raid1.c

1989
1990 static int r1_sync_page_io(struct md_rdev *rdev, sector_t sector,
1991 int sectors, struct page *page, int rw)
1992 {
> 1993 if (sync_page_io(rdev, sector, sectors << 9, page, rw, false))
1994 /* success */
1995 return 1;
1996 if (rw == WRITE) {
1997 set_bit(WriteErrorSeen, &rdev->flags);
1998 if (!test_and_set_bit(WantReplacement,
1999 &rdev->flags))
2000 set_bit(MD_RECOVERY_NEEDED, &
2001 rdev->mddev->recovery);
2002 }
2003 /* need to record an error - either for the block or the device */
2004 if (!rdev_set_badblocks(rdev, sector, sectors, 0))
2005 md_error(rdev->mddev, rdev);
2006 return 0;
2007 }
2008

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