Hi Muneendra, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on scsi/for-next] [also build test WARNING on mkp-scsi/for-next next-20201218] [cannot apply to cgroup/for-next v5.10] [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/0day-ci/linux/commits/Muneendra/blkcg-Support-to-track-FC-storage-blk-io-traffic/20201216-202913 base: https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next config: powerpc64-randconfig-r023-20201217 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project cee1e7d14f4628d6174b33640d502bff3b54ae45) 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 # install powerpc64 cross compiling tool for clang build # apt-get install binutils-powerpc64-linux-gnu # https://github.com/0day-ci/linux/commit/65751f65f5df79aaa25cd5752589ca91ebddde18 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Muneendra/blkcg-Support-to-track-FC-storage-blk-io-traffic/20201216-202913 git checkout 65751f65f5df79aaa25cd5752589ca91ebddde18 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/scsi/lpfc/lpfc_els.c:10354:6: warning: no previous prototype for function 'lpfc_init_cs_ctl_bitmap' [-Wmissing-prototypes] void lpfc_init_cs_ctl_bitmap(struct lpfc_vport *vport) ^ drivers/scsi/lpfc/lpfc_els.c:10354:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void lpfc_init_cs_ctl_bitmap(struct lpfc_vport *vport) ^ static >> drivers/scsi/lpfc/lpfc_els.c:10360:1: warning: no previous prototype for function 'lpfc_vmid_set_cs_ctl_range' [-Wmissing-prototypes] lpfc_vmid_set_cs_ctl_range(struct lpfc_vport *vport, u32 min, u32 max) ^ drivers/scsi/lpfc/lpfc_els.c:10359:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void ^ static >> drivers/scsi/lpfc/lpfc_els.c:10371:6: warning: no previous prototype for function 'lpfc_vmid_put_cs_ctl' [-Wmissing-prototypes] void lpfc_vmid_put_cs_ctl(struct lpfc_vport *vport, u32 ctcl_vmid) ^ drivers/scsi/lpfc/lpfc_els.c:10371:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void lpfc_vmid_put_cs_ctl(struct lpfc_vport *vport, u32 ctcl_vmid) ^ static >> drivers/scsi/lpfc/lpfc_els.c:10408:6: warning: variable 'ndlp' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] if (!prsp) ^~~~~ drivers/scsi/lpfc/lpfc_els.c:10482:15: note: uninitialized use occurs here lpfc_nlp_put(ndlp); ^~~~ drivers/scsi/lpfc/lpfc_els.c:10408:2: note: remove the 'if' if its condition is always false if (!prsp) ^~~~~~~~~~ drivers/scsi/lpfc/lpfc_els.c:10405:28: note: initialize the variable 'ndlp' to silence this warning struct lpfc_nodelist *ndlp; ^ = NULL 4 warnings generated. vim +/lpfc_init_cs_ctl_bitmap +10354 drivers/scsi/lpfc/lpfc_els.c 10353 10354 void lpfc_init_cs_ctl_bitmap(struct lpfc_vport *vport) 10355 { 10356 bitmap_zero(vport->vmid_priority_range, LPFC_VMID_MAX_PRIORITY_RANGE); 10357 } 10358 10359 void 10360 lpfc_vmid_set_cs_ctl_range(struct lpfc_vport *vport, u32 min, u32 max) 10361 { 10362 u32 i; 10363 10364 if ((min > max) || (max > LPFC_VMID_MAX_PRIORITY_RANGE)) 10365 return; 10366 10367 for (i = min; i <= max; i++) 10368 set_bit(i, vport->vmid_priority_range); 10369 } 10370 10371 void lpfc_vmid_put_cs_ctl(struct lpfc_vport *vport, u32 ctcl_vmid) 10372 { 10373 set_bit(ctcl_vmid, vport->vmid_priority_range); 10374 } 10375 10376 u32 lpfc_vmid_get_cs_ctl(struct lpfc_vport *vport) 10377 { 10378 u32 i; 10379 10380 i = find_first_bit(vport->vmid_priority_range, 10381 LPFC_VMID_MAX_PRIORITY_RANGE); 10382 10383 if (i == LPFC_VMID_MAX_PRIORITY_RANGE) 10384 return 0; 10385 10386 clear_bit(i, vport->vmid_priority_range); 10387 return i; 10388 } 10389 10390 #define MAX_PRIORITY_DESC 255 10391 10392 static void 10393 lpfc_cmpl_els_qfpa(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, 10394 struct lpfc_iocbq *rspiocb) 10395 { 10396 struct lpfc_vport *vport = cmdiocb->vport; 10397 struct priority_range_desc *desc; 10398 struct lpfc_dmabuf *prsp = NULL; 10399 struct lpfc_vmid_priority_range *vmid_range = NULL; 10400 u32 *data; 10401 struct lpfc_dmabuf *dmabuf = cmdiocb->context2; 10402 IOCB_t *irsp = &rspiocb->iocb; 10403 u8 *pcmd; 10404 u32 len, i; 10405 struct lpfc_nodelist *ndlp; 10406 10407 prsp = list_get_first(&dmabuf->list, struct lpfc_dmabuf, list); 10408 if (!prsp) 10409 goto out; 10410 10411 ndlp = (struct lpfc_nodelist *) cmdiocb->context1; 10412 pcmd = prsp->virt; 10413 data = (u32 *)pcmd; 10414 if (data[0] == ELS_CMD_LS_RJT) { 10415 lpfc_printf_vlog(vport, KERN_WARNING, LOG_SLI, 10416 "6528 QFPA LS_RJT %x %x ", data[0], data[1]); 10417 goto out; 10418 } 10419 if (irsp->ulpStatus) { 10420 lpfc_printf_vlog(vport, KERN_ERR, LOG_SLI, 10421 "6529 QFPA failed with status %x %x ", 10422 irsp->ulpStatus, irsp->un.ulpWord[4]); 10423 goto out; 10424 } 10425 10426 if (!vport->qfpa_res) { 10427 vport->qfpa_res = kmalloc(FCELSSIZE, GFP_KERNEL); 10428 if (!vport->qfpa_res) 10429 goto out; 10430 memset(vport->qfpa_res, 0, FCELSSIZE); 10431 } 10432 10433 len = *((u32 *)(pcmd + 4)); 10434 len = be32_to_cpu(len); 10435 memcpy(vport->qfpa_res, pcmd, len + 8); 10436 len = len / LPFC_PRIORITY_RANGE_DESC_SIZE; 10437 10438 desc = (struct priority_range_desc *)(pcmd + 8); 10439 vmid_range = vport->vmid_priority.vmid_range; 10440 if (!vmid_range) { 10441 vmid_range = kmalloc_array(MAX_PRIORITY_DESC, 10442 sizeof 10443 (struct lpfc_vmid_priority_range), 10444 GFP_KERNEL); 10445 if (!vmid_range) 10446 goto out; 10447 memset(vmid_range, 0, MAX_PRIORITY_DESC * 10448 sizeof(struct lpfc_vmid_priority_range)); 10449 vport->vmid_priority.vmid_range = vmid_range; 10450 } 10451 vport->vmid_priority.num_descriptors = len; 10452 10453 for (i = 0; i < len; i++, vmid_range++, desc++) { 10454 lpfc_printf_vlog(vport, KERN_DEBUG, LOG_ELS, 10455 "6539 vmid values low=%d, high=%d, qos=%d,\n" 10456 " local ve id=%d\n", desc->lo_range, 10457 desc->hi_range, desc->qos_priority, 10458 desc->local_ve_id); 10459 10460 vmid_range->low = desc->lo_range << 1; 10461 if (desc->local_ve_id == QFPA_ODD_ONLY) 10462 vmid_range->low++; 10463 if (desc->qos_priority) 10464 vport->vmid_flag |= LPFC_VMID_QOS_ENABLED; 10465 vmid_range->qos = desc->qos_priority; 10466 10467 vmid_range->high = desc->hi_range << 1; 10468 if ((desc->local_ve_id == QFPA_ODD_ONLY) || 10469 (desc->local_ve_id == QFPA_EVEN_ODD)) 10470 vmid_range->high++; 10471 } 10472 lpfc_init_cs_ctl_bitmap(vport); 10473 for (i = 0; i < vport->vmid_priority.num_descriptors; i++) { 10474 lpfc_vmid_set_cs_ctl_range(vport, 10475 vport->vmid_priority.vmid_range[i].low, 10476 vport->vmid_priority.vmid_range[i].high); 10477 } 10478 10479 vport->vmid_flag |= LPFC_VMID_QFPA_CMPL; 10480 out: 10481 lpfc_els_free_iocb(phba, cmdiocb); 10482 lpfc_nlp_put(ndlp); 10483 } 10484 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org