Re: [PATCH v17 08/12] nvmet: add copy command support for bdev and file ns

From: kernel test robot
Date: Sun Oct 22 2023 - 07:52:26 EST


Hi Nitesh,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 213f891525c222e8ed145ce1ce7ae1f47921cb9c]

url: https://github.com/intel-lab-lkp/linux/commits/Nitesh-Shetty/block-Introduce-queue-limits-and-sysfs-for-copy-offload-support/20231019-200658
base: 213f891525c222e8ed145ce1ce7ae1f47921cb9c
patch link: https://lore.kernel.org/r/20231019110147.31672-9-nj.shetty%40samsung.com
patch subject: [PATCH v17 08/12] nvmet: add copy command support for bdev and file ns
config: i386-randconfig-062-20231022 (https://download.01.org/0day-ci/archive/20231022/202310221915.PYH9XadG-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231022/202310221915.PYH9XadG-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310221915.PYH9XadG-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/nvme/target/io-cmd-bdev.c:498:30: sparse: sparse: restricted __le16 degrades to integer

vim +498 drivers/nvme/target/io-cmd-bdev.c

478
479 /*
480 * At present we handle only one range entry, since copy offload is aligned with
481 * copy_file_range, only one entry is passed from block layer.
482 */
483 static void nvmet_bdev_execute_copy(struct nvmet_req *rq)
484 {
485 struct nvme_copy_range range;
486 struct nvme_command *cmd = rq->cmd;
487 ssize_t ret;
488 off_t dst, src;
489
490 u16 status;
491
492 status = nvmet_copy_from_sgl(rq, 0, &range, sizeof(range));
493 if (status)
494 goto err_rq_complete;
495
496 dst = le64_to_cpu(cmd->copy.sdlba) << rq->ns->blksize_shift;
497 src = le64_to_cpu(range.slba) << rq->ns->blksize_shift;
> 498 rq->copy_len = (range.nlb + 1) << rq->ns->blksize_shift;
499
500 if (bdev_max_copy_sectors(rq->ns->bdev)) {
501 ret = blkdev_copy_offload(rq->ns->bdev, dst, src, rq->copy_len,
502 nvmet_bdev_copy_endio,
503 (void *)rq, GFP_KERNEL);
504 } else {
505 ret = blkdev_copy_emulation(rq->ns->bdev, dst,
506 rq->ns->bdev, src, rq->copy_len,
507 nvmet_bdev_copy_endio,
508 (void *)rq, GFP_KERNEL);
509 }
510 if (ret == -EIOCBQUEUED)
511 return;
512
513 rq->cqe->result.u32 = cpu_to_le32(0);
514 status = errno_to_nvme_status(rq, ret);
515 err_rq_complete:
516 nvmet_req_complete(rq, status);
517 }
518

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki