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/[email protected]/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/e029014185aff1d7c8facf6e19447487c6ce2b93
        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 e029014185aff1d7c8facf6e19447487c6ce2b93
        # 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/ drivers/nvme/host/ drivers/nvme/target/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)
>> drivers/nvme/host/core.c:803:26: sparse: sparse: incorrect type in 
>> assignment (different base types) @@     expected restricted __le16 
>> [usertype] dspec @@     got restricted __le32 [usertype] @@
   drivers/nvme/host/core.c:803:26: sparse:     expected restricted __le16 
[usertype] dspec
   drivers/nvme/host/core.c:803:26: sparse:     got restricted __le32 [usertype]

vim +803 drivers/nvme/host/core.c

   739  
   740  static inline blk_status_t nvme_setup_copy_write(struct nvme_ns *ns,
   741                 struct request *req, struct nvme_command *cmnd)
   742  {
   743          struct nvme_ctrl *ctrl = ns->ctrl;
   744          struct nvme_copy_range *range = NULL;
   745          struct bio *bio = req->bio;
   746          struct nvme_copy_token *token = 
bvec_kmap_local(&bio->bi_io_vec[0]);
   747          sector_t src_sector, dst_sector, n_sectors;
   748          u64 src_lba, dst_lba, n_lba;
   749          unsigned short nr_range = 1;
   750          u16 control = 0;
   751          u32 dsmgmt = 0;
   752  
   753          if (unlikely(memcmp(token->subsys, "nvme", 4)))
   754                  return BLK_STS_NOTSUPP;
   755          if (unlikely(token->ns != ns))
   756                  return BLK_STS_NOTSUPP;
   757  
   758          src_sector = token->src_sector;
   759          dst_sector = bio->bi_iter.bi_sector;
   760          n_sectors = token->sectors;
   761          if (WARN_ON(n_sectors != bio->bi_iter.bi_size >> 9))
   762                  return BLK_STS_NOTSUPP;
   763  
   764          src_lba = nvme_sect_to_lba(ns, src_sector);
   765          dst_lba = nvme_sect_to_lba(ns, dst_sector);
   766          n_lba = nvme_sect_to_lba(ns, n_sectors);
   767  
   768          if (unlikely(nvme_lba_to_sect(ns, src_lba) != src_sector) ||
   769                          unlikely(nvme_lba_to_sect(ns, dst_lba) != 
dst_sector) ||
   770                          unlikely(nvme_lba_to_sect(ns, n_lba) != 
n_sectors))
   771                  return BLK_STS_NOTSUPP;
   772  
   773          if (WARN_ON(!n_lba))
   774                  return BLK_STS_NOTSUPP;
   775  
   776          if (req->cmd_flags & REQ_FUA)
   777                  control |= NVME_RW_FUA;
   778  
   779          if (req->cmd_flags & REQ_FAILFAST_DEV)
   780                  control |= NVME_RW_LR;
   781  
   782          memset(cmnd, 0, sizeof(*cmnd));
   783          cmnd->copy.opcode = nvme_cmd_copy;
   784          cmnd->copy.nsid = cpu_to_le32(ns->head->ns_id);
   785          cmnd->copy.sdlba = cpu_to_le64(dst_lba);
   786  
   787          range = kmalloc_array(nr_range, sizeof(*range),
   788                          GFP_ATOMIC | __GFP_NOWARN);
   789          if (!range)
   790                  return BLK_STS_RESOURCE;
   791  
   792          range[0].slba = cpu_to_le64(src_lba);
   793          range[0].nlb = cpu_to_le16(n_lba - 1);
   794  
   795          cmnd->copy.nr_range = 0;
   796  
   797          req->special_vec.bv_page = virt_to_page(range);
   798          req->special_vec.bv_offset = offset_in_page(range);
   799          req->special_vec.bv_len = sizeof(*range) * nr_range;
   800          req->rq_flags |= RQF_SPECIAL_PAYLOAD;
   801  
   802          cmnd->copy.control = cpu_to_le16(control);
 > 803          cmnd->copy.dspec = cpu_to_le32(dsmgmt);
   804  
   805          return BLK_STS_OK;
   806  }
   807  

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

--
dm-devel mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/dm-devel

Reply via email to