Re: [linux-nvme:nvme-5.14 32/32] drivers/nvme/target/zns.c:257:6: warning: no previous prototype for 'nvmet_bdev_zone_zmgmt_recv_work'
From: Chaitanya Kulkarni <hidden>
Date: 2021-06-15 22:29:35
On 6/15/21 12:46, kernel test robot wrote:
tree: git://git.infradead.org/nvme.git nvme-5.14 head: 9653e01d9c3c46930da3f007a39a2aaf230bd8ff commit: 9653e01d9c3c46930da3f007a39a2aaf230bd8ff [32/32] nvmet: add ZBD over ZNS backend support config: m68k-allmodconfig (attached as .config) compiler: m68k-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git remote add linux-nvme git://git.infradead.org/nvme.git git fetch --no-tags linux-nvme nvme-5.14 git checkout 9653e01d9c3c46930da3f007a39a2aaf230bd8ff # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <redacted> All warnings (new ones prefixed by >>):quoted
quoted
drivers/nvme/target/zns.c:257:6: warning: no previous prototype for 'nvmet_bdev_zone_zmgmt_recv_work' [-Wmissing-prototypes]257 | void nvmet_bdev_zone_zmgmt_recv_work(struct work_struct *w) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vim +/nvmet_bdev_zone_zmgmt_recv_work +257 drivers/nvme/target/zns.c 256 > 257 void nvmet_bdev_zone_zmgmt_recv_work(struct work_struct *w) 258 { 259 struct nvmet_req *req = container_of(w, struct nvmet_req, z.zmgmt_work); 260 sector_t start_sect = nvmet_lba_to_sect(req->ns, req->cmd->zmr.slba); 261 unsigned long req_slba_nr_zones = nvmet_req_nr_zones_from_slba(req); 262 u32 out_bufsize = (le32_to_cpu(req->cmd->zmr.numd) + 1) << 2; 263 __le64 nr_zones; 264 u16 status; 265 int ret; 266 struct nvmet_report_zone_data rz_data = { 267 .out_nr_zones = get_nr_zones_from_buf(req, out_bufsize), 268 /* leave the place for report zone header */ 269 .out_buf_offset = sizeof(struct nvme_zone_report), 270 .zrasf = req->cmd->zmr.zrasf, 271 .nr_zones = 0, 272 .req = req, 273 }; 274 275 status = nvmet_bdev_validate_zone_mgmt_recv(req); 276 if (status) 277 goto out; 278 279 if (!req_slba_nr_zones) { 280 status = NVME_SC_SUCCESS; 281 goto out; 282 } 283 284 ret = blkdev_report_zones(req->ns->bdev, start_sect, req_slba_nr_zones, 285 nvmet_bdev_report_zone_cb, &rz_data); 286 if (ret < 0) { 287 status = NVME_SC_INTERNAL; 288 goto out; 289 } 290 291 /* 292 * When partial bit is set nr_zones must indicate the number of zone 293 * descriptors actually transferred. 294 */ 295 if (req->cmd->zmr.pr) 296 rz_data.nr_zones = min(rz_data.nr_zones, rz_data.out_nr_zones); 297 298 nr_zones = cpu_to_le64(rz_data.nr_zones); 299 status = nvmet_copy_to_sgl(req, 0, &nr_zones, sizeof(nr_zones)); 300 301 out: 302 nvmet_req_complete(req, status); 303 } 304 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
I don't understand why does this need a prototype ? The function nvmet_bdev_zone_zmgmt_recv_work() is defined (line 257) before it was used (line 307). Will try and reproduce this on latest 5.14. _______________________________________________ Linux-nvme mailing list Linux-nvme@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-nvme