[PATCH v5 09/16] lpfc: vmid: Implements ELS commands for appid patch
kernel test robot
lkp at intel.com
Sat Dec 19 13:04:41 EST 2020
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 <lkp at intel.com>
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 31312 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-nvme/attachments/20201220/a74ecaaf/attachment-0001.gz>
More information about the Linux-nvme
mailing list