[bvanassche:block-bitwise-opf 15/15] kernel/power/swap.c:279:50: sparse: sparse: restricted blk_mq_opf_t degrades to integer
From: kernel test robot
Date: Mon Jun 20 2022 - 11:44:56 EST
tree: https://github.com/bvanassche/linux block-bitwise-opf
head: 031ccdd616b11c4e774e56aa7eae906188ab24cc
commit: 031ccdd616b11c4e774e56aa7eae906188ab24cc [15/15] block: Introduce the type blk_mq_opf_t
config: i386-randconfig-s002 (https://download.01.org/0day-ci/archive/20220620/202206202333.blYnLQ0m-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-30-g92122700-dirty
# https://github.com/bvanassche/linux/commit/031ccdd616b11c4e774e56aa7eae906188ab24cc
git remote add bvanassche https://github.com/bvanassche/linux
git fetch --no-tags bvanassche block-bitwise-opf
git checkout 031ccdd616b11c4e774e56aa7eae906188ab24cc
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash fs/btrfs/ kernel/power/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>
sparse warnings: (new ones prefixed by >>)
>> kernel/power/swap.c:279:50: sparse: sparse: restricted blk_mq_opf_t degrades to integer
>> kernel/power/swap.c:279:48: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted blk_mq_opf_t [usertype] opf @@ got unsigned int @@
kernel/power/swap.c:279:48: sparse: expected restricted blk_mq_opf_t [usertype] opf
kernel/power/swap.c:279:48: sparse: got unsigned int
--
>> fs/btrfs/check-integrity.c:2059:47: sparse: sparse: restricted blk_mq_opf_t degrades to integer
fs/btrfs/check-integrity.c:2067:47: sparse: sparse: restricted blk_mq_opf_t degrades to integer
>> fs/btrfs/check-integrity.c:2669:64: sparse: sparse: incorrect type in argument 7 (different base types) @@ expected int submit_bio_bh_rw @@ got restricted blk_mq_opf_t [usertype] bi_opf @@
fs/btrfs/check-integrity.c:2669:64: sparse: expected int submit_bio_bh_rw
fs/btrfs/check-integrity.c:2669:64: sparse: got restricted blk_mq_opf_t [usertype] bi_opf
>> fs/btrfs/check-integrity.c:2687:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected int submit_bio_bh_rw @@ got restricted blk_mq_opf_t [usertype] bi_opf @@
fs/btrfs/check-integrity.c:2687:41: sparse: expected int submit_bio_bh_rw
fs/btrfs/check-integrity.c:2687:41: sparse: got restricted blk_mq_opf_t [usertype] bi_opf
vim +279 kernel/power/swap.c
343df3c79c62b6 Christoph Hellwig 2015-05-19 271
031ccdd616b11c Bart Van Assche 2022-06-16 272 static int hib_submit_io(enum req_op op, blk_mq_opf_t op_flags,
031ccdd616b11c Bart Van Assche 2022-06-16 273 pgoff_t page_off, void *addr, struct hib_bio_batch *hb)
343df3c79c62b6 Christoph Hellwig 2015-05-19 274 {
343df3c79c62b6 Christoph Hellwig 2015-05-19 275 struct page *page = virt_to_page(addr);
343df3c79c62b6 Christoph Hellwig 2015-05-19 276 struct bio *bio;
343df3c79c62b6 Christoph Hellwig 2015-05-19 277 int error = 0;
343df3c79c62b6 Christoph Hellwig 2015-05-19 278
07888c665b405b Christoph Hellwig 2022-01-24 @279 bio = bio_alloc(hib_resume_bdev, 1, op | op_flags,
07888c665b405b Christoph Hellwig 2022-01-24 280 GFP_NOIO | __GFP_HIGH);
343df3c79c62b6 Christoph Hellwig 2015-05-19 281 bio->bi_iter.bi_sector = page_off * (PAGE_SIZE >> 9);
343df3c79c62b6 Christoph Hellwig 2015-05-19 282
343df3c79c62b6 Christoph Hellwig 2015-05-19 283 if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) {
64ec72a1ece37d Joe Perches 2017-09-27 284 pr_err("Adding page to bio failed at %llu\n",
343df3c79c62b6 Christoph Hellwig 2015-05-19 285 (unsigned long long)bio->bi_iter.bi_sector);
343df3c79c62b6 Christoph Hellwig 2015-05-19 286 bio_put(bio);
343df3c79c62b6 Christoph Hellwig 2015-05-19 287 return -EFAULT;
343df3c79c62b6 Christoph Hellwig 2015-05-19 288 }
343df3c79c62b6 Christoph Hellwig 2015-05-19 289
343df3c79c62b6 Christoph Hellwig 2015-05-19 290 if (hb) {
343df3c79c62b6 Christoph Hellwig 2015-05-19 291 bio->bi_end_io = hib_end_io;
343df3c79c62b6 Christoph Hellwig 2015-05-19 292 bio->bi_private = hb;
343df3c79c62b6 Christoph Hellwig 2015-05-19 293 atomic_inc(&hb->count);
4e49ea4a3d2763 Mike Christie 2016-06-05 294 submit_bio(bio);
343df3c79c62b6 Christoph Hellwig 2015-05-19 295 } else {
4e49ea4a3d2763 Mike Christie 2016-06-05 296 error = submit_bio_wait(bio);
343df3c79c62b6 Christoph Hellwig 2015-05-19 297 bio_put(bio);
343df3c79c62b6 Christoph Hellwig 2015-05-19 298 }
343df3c79c62b6 Christoph Hellwig 2015-05-19 299
343df3c79c62b6 Christoph Hellwig 2015-05-19 300 return error;
343df3c79c62b6 Christoph Hellwig 2015-05-19 301 }
343df3c79c62b6 Christoph Hellwig 2015-05-19 302
:::::: The code at line 279 was first introduced by commit
:::::: 07888c665b405b1cd3577ddebfeb74f4717a84c4 block: pass a block_device and opf to bio_alloc
:::::: TO: Christoph Hellwig <hch@xxxxxx>
:::::: CC: Jens Axboe <axboe@xxxxxxxxx>
--
0-DAY CI Kernel Test Service
https://01.org/lkp