Hi Anuj,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on axboe-block/for-next]
[also build test WARNING on linus/master v6.3-rc4 next-20230329]
[cannot apply to device-mapper-dm/for-next]
[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#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Anuj-Gupta/block-Add-copy-offload-support-infrastructure/20230329-162018
base:   https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git 
for-next
patch link:    
https://lore.kernel.org/r/20230327084103.21601-7-anuj20.g%40samsung.com
patch subject: [PATCH v8 6/9] nvmet: add copy command support for bdev and file 
ns
config: arm64-randconfig-s041-20230329 
(https://download.01.org/0day-ci/archive/20230330/202303300238.vmt9ne37-...@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 12.1.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-39-gce1a6720-dirty
        # 
https://github.com/intel-lab-lkp/linux/commit/f846a8ac40882d9d42532e9e2b43560650ef8510
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review 
Anuj-Gupta/block-Add-copy-offload-support-infrastructure/20230329-162018
        git checkout f846a8ac40882d9d42532e9e2b43560650ef8510
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm64 olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm64 
SHELL=/bin/bash drivers/nvme/target/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <l...@intel.com>
| Link: 
https://lore.kernel.org/oe-kbuild-all/202303300238.vmt9ne37-...@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/nvme/target/admin-cmd.c:539:29: sparse: sparse: cast from restricted 
>> __le16

vim +539 drivers/nvme/target/admin-cmd.c

   490  
   491  static void nvmet_execute_identify_ns(struct nvmet_req *req)
   492  {
   493          struct nvme_id_ns *id;
   494          u16 status;
   495  
   496          if (le32_to_cpu(req->cmd->identify.nsid) == NVME_NSID_ALL) {
   497                  req->error_loc = offsetof(struct nvme_identify, nsid);
   498                  status = NVME_SC_INVALID_NS | NVME_SC_DNR;
   499                  goto out;
   500          }
   501  
   502          id = kzalloc(sizeof(*id), GFP_KERNEL);
   503          if (!id) {
   504                  status = NVME_SC_INTERNAL;
   505                  goto out;
   506          }
   507  
   508          /* return an all zeroed buffer if we can't find an active 
namespace */
   509          status = nvmet_req_find_ns(req);
   510          if (status) {
   511                  status = 0;
   512                  goto done;
   513          }
   514  
   515          if (nvmet_ns_revalidate(req->ns)) {
   516                  mutex_lock(&req->ns->subsys->lock);
   517                  nvmet_ns_changed(req->ns->subsys, req->ns->nsid);
   518                  mutex_unlock(&req->ns->subsys->lock);
   519          }
   520  
   521          /*
   522           * nuse = ncap = nsze isn't always true, but we have no way to 
find
   523           * that out from the underlying device.
   524           */
   525          id->ncap = id->nsze =
   526                  cpu_to_le64(req->ns->size >> req->ns->blksize_shift);
   527          switch (req->port->ana_state[req->ns->anagrpid]) {
   528          case NVME_ANA_INACCESSIBLE:
   529          case NVME_ANA_PERSISTENT_LOSS:
   530                  break;
   531          default:
   532                  id->nuse = id->nsze;
   533                  break;
   534          }
   535  
   536          if (req->ns->bdev)
   537                  nvmet_bdev_set_limits(req->ns->bdev, id);
   538          else {
 > 539                  id->msrc = (u8)to0based(BIO_MAX_VECS - 1);
   540                  id->mssrl = cpu_to_le16(BIO_MAX_VECS <<
   541                                  (PAGE_SHIFT - SECTOR_SHIFT));
   542                  id->mcl = cpu_to_le32(le16_to_cpu(id->mssrl));
   543          }
   544  
   545          /*
   546           * We just provide a single LBA format that matches what the
   547           * underlying device reports.
   548           */
   549          id->nlbaf = 0;
   550          id->flbas = 0;
   551  
   552          /*
   553           * Our namespace might always be shared.  Not just with other
   554           * controllers, but also with any other user of the block 
device.
   555           */
   556          id->nmic = NVME_NS_NMIC_SHARED;
   557          id->anagrpid = cpu_to_le32(req->ns->anagrpid);
   558  
   559          memcpy(&id->nguid, &req->ns->nguid, sizeof(id->nguid));
   560  
   561          id->lbaf[0].ds = req->ns->blksize_shift;
   562  
   563          if (req->sq->ctrl->pi_support && nvmet_ns_has_pi(req->ns)) {
   564                  id->dpc = NVME_NS_DPC_PI_FIRST | NVME_NS_DPC_PI_LAST |
   565                            NVME_NS_DPC_PI_TYPE1 | NVME_NS_DPC_PI_TYPE2 |
   566                            NVME_NS_DPC_PI_TYPE3;
   567                  id->mc = NVME_MC_EXTENDED_LBA;
   568                  id->dps = req->ns->pi_type;
   569                  id->flbas = NVME_NS_FLBAS_META_EXT;
   570                  id->lbaf[0].ms = cpu_to_le16(req->ns->metadata_size);
   571          }
   572  
   573          if (req->ns->readonly)
   574                  id->nsattr |= NVME_NS_ATTR_RO;
   575  done:
   576          if (!status)
   577                  status = nvmet_copy_to_sgl(req, 0, id, sizeof(*id));
   578  
   579          kfree(id);
   580  out:
   581          nvmet_req_complete(req, status);
   582  }
   583  

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

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel

Reply via email to