Hi Nitesh, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on next-20220422] [cannot apply to axboe-block/for-next device-mapper-dm/for-next linus/master v5.18-rc4 v5.18-rc3 v5.18-rc2 v5.18-rc4] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/intel-lab-lkp/linux/commits/Nitesh-Shetty/block-Introduce-queue-limits-for-copy-offload-support/20220426-201825 base: e7d6987e09a328d4a949701db40ef63fbb970670 config: s390-randconfig-s032-20220427 (https://download.01.org/0day-ci/archive/20220428/202204282336.7AY0GVKz-lkp@xxxxxxxxx/config) compiler: s390-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-dirty # https://github.com/intel-lab-lkp/linux/commit/913c8c5197fea28ee3c8424e16eadd8b159a91f0 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Nitesh-Shetty/block-Introduce-queue-limits-for-copy-offload-support/20220426-201825 git checkout 913c8c5197fea28ee3c8424e16eadd8b159a91f0 # 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=s390 SHELL=/bin/bash drivers/md/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> sparse warnings: (new ones prefixed by >>) >> drivers/md/dm.c:1602:24: sparse: sparse: incorrect type in return expression (different base types) @@ expected restricted blk_status_t @@ got int @@ drivers/md/dm.c:1602:24: sparse: expected restricted blk_status_t drivers/md/dm.c:1602:24: sparse: got int vim +1602 drivers/md/dm.c 1582 1583 /* 1584 * Select the correct strategy for processing a non-flush bio. 1585 */ 1586 static blk_status_t __split_and_process_bio(struct clone_info *ci) 1587 { 1588 struct bio *clone; 1589 struct dm_target *ti; 1590 unsigned len; 1591 1592 ti = dm_table_find_target(ci->map, ci->sector); 1593 if (unlikely(!ti)) 1594 return BLK_STS_IOERR; 1595 else if (unlikely(ci->is_abnormal_io)) 1596 return __process_abnormal_io(ci, ti); 1597 1598 if ((unlikely(op_is_copy(ci->bio->bi_opf)) && 1599 max_io_len(ti, ci->sector) < ci->sector_count)) { 1600 DMERR("%s: Error IO size(%u) is greater than maximum target size(%llu)\n", 1601 __func__, ci->sector_count, max_io_len(ti, ci->sector)); > 1602 return -EIO; 1603 } 1604 /* 1605 * Only support bio polling for normal IO, and the target io is 1606 * exactly inside the dm_io instance (verified in dm_poll_dm_io) 1607 */ 1608 ci->submit_as_polled = ci->bio->bi_opf & REQ_POLLED; 1609 1610 len = min_t(sector_t, max_io_len(ti, ci->sector), ci->sector_count); 1611 setup_split_accounting(ci, len); 1612 clone = alloc_tio(ci, ti, 0, &len, GFP_NOIO); 1613 __map_bio(clone); 1614 1615 ci->sector += len; 1616 ci->sector_count -= len; 1617 1618 return BLK_STS_OK; 1619 } 1620 -- 0-DAY CI Kernel Test Service https://01.org/lkp