[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