[PATCH v5 11/16] lpfc: vmid: Implements CT commands for appid.

kernel test robot lkp at intel.com
Sat Dec 19 18:27:07 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/2c2a03c1111ef8a2c5aac440b227390d40d1e2cb
        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 2c2a03c1111ef8a2c5aac440b227390d40d1e2cb
        # 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_ct.c:3749:1: warning: no previous prototype for function 'lpfc_cmpl_ct_cmd_vmid' [-Wmissing-prototypes]
   lpfc_cmpl_ct_cmd_vmid(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
   ^
   drivers/scsi/lpfc/lpfc_ct.c:3748:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void
   ^
   static 
   1 warning generated.


vim +/lpfc_cmpl_ct_cmd_vmid +3749 drivers/scsi/lpfc/lpfc_ct.c

  3747	
  3748	void
> 3749	lpfc_cmpl_ct_cmd_vmid(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
  3750			      struct lpfc_iocbq *rspiocb)
  3751	{
  3752		struct lpfc_vport *vport = cmdiocb->vport;
  3753		struct lpfc_dmabuf *inp = cmdiocb->context1;
  3754		struct lpfc_dmabuf *outp = cmdiocb->context2;
  3755		struct lpfc_sli_ct_request *ctcmd = inp->virt;
  3756		struct lpfc_sli_ct_request *ctrsp = outp->virt;
  3757		u16 rsp = ctrsp->CommandResponse.bits.CmdRsp;
  3758		struct app_id_object *app;
  3759		u32 cmd, hash;
  3760		struct lpfc_vmid *vmp;
  3761		u8 *data = outp->virt;
  3762		int i;
  3763	
  3764		cmd = be16_to_cpu(ctcmd->CommandResponse.bits.CmdRsp);
  3765		if (cmd == SLI_CTAS_DALLAPP_ID)
  3766			lpfc_ct_free_iocb(phba, cmdiocb);
  3767	
  3768		if (lpfc_els_chk_latt(vport) || rspiocb->iocb.ulpStatus) {
  3769			if (cmd != SLI_CTAS_DALLAPP_ID)
  3770				return;
  3771		}
  3772		/* Check for a CT LS_RJT response */
  3773		if (rsp == be16_to_cpu(SLI_CT_RESPONSE_FS_RJT)) {
  3774			if (cmd != SLI_CTAS_DALLAPP_ID)
  3775				lpfc_printf_vlog(vport, KERN_DEBUG, LOG_DISCOVERY,
  3776						 "3306 VMID FS_RJT Data: x%x  %x %x\n",
  3777					 cmd, ctrsp->ReasonCode, ctrsp->Explanation);
  3778			if ((cmd != SLI_CTAS_DALLAPP_ID) ||
  3779			    (ctrsp->ReasonCode != SLI_CT_UNABLE_TO_PERFORM_REQ) ||
  3780			    (ctrsp->Explanation != SLI_CT_APP_ID_NOT_AVAILABLE)) {
  3781				/* If DALLAPP_ID failed retry later */
  3782				if (cmd == SLI_CTAS_DALLAPP_ID)
  3783					vport->load_flag |= FC_DEREGISTER_ALL_APP_ID;
  3784				return;
  3785			}
  3786		}
  3787	
  3788		switch (cmd) {
  3789		case SLI_CTAS_RAPP_IDENT:
  3790			app = (struct app_id_object *)(RAPP_IDENT_OFFSET + data);
  3791			lpfc_printf_vlog(vport, KERN_DEBUG, LOG_DISCOVERY,
  3792					 "6712 RAPP_IDENT app id %d  port id %x id\n"
  3793					 "len %d\n", be32_to_cpu(app->app_id),
  3794					 be32_to_cpu(app->port_id),
  3795					 app->obj.entity_id_len);
  3796	
  3797			if (app->obj.entity_id_len == 0 || app->port_id == 0)
  3798				return;
  3799	
  3800			hash = lpfc_vmid_hash_fn(app->obj.entity_id,
  3801						 app->obj.entity_id_len);
  3802			vmp = lpfc_get_vmid_from_hastable(vport, hash,
  3803							  app->obj.entity_id);
  3804			if (vmp) {
  3805				vmp->un.app_id = be32_to_cpu(app->app_id);
  3806				vmp->flag |= LPFC_VMID_REGISTERED;
  3807				vmp->flag &= ~LPFC_VMID_REQ_REGISTER;
  3808				/* Set IN USE flag */
  3809				vport->vmid_flag |= LPFC_VMID_IN_USE;
  3810			} else {
  3811				lpfc_printf_vlog(vport, KERN_DEBUG,
  3812						 LOG_DISCOVERY, "6901 No entry found\n"
  3813						 "%s hash %d\n", app->obj.entity_id,
  3814						 hash);
  3815			}
  3816			break;
  3817		case SLI_CTAS_DAPP_IDENT:
  3818			app = (struct app_id_object *)(DAPP_IDENT_OFFSET + data);
  3819			lpfc_printf_vlog(vport, KERN_DEBUG, LOG_DISCOVERY,
  3820					 "6713 DAPP_IDENT app id %d  port id %x",
  3821					 cpu_to_be32(app->app_id),
  3822					 cpu_to_be32(app->port_id));
  3823			break;
  3824		case SLI_CTAS_DALLAPP_ID:
  3825			lpfc_printf_vlog(vport, KERN_DEBUG, LOG_DISCOVERY,
  3826					 "8856 Deregistered all app ids");
  3827			for (i = 0; i < phba->cfg_max_vmid; i++) {
  3828				vmp = &vport->vmid[i];
  3829				if (vmp->flag != LPFC_VMID_SLOT_FREE)
  3830					memset(vmp, 0, sizeof(struct lpfc_vmid));
  3831			}
  3832			for (i = 0; i < LPFC_VMID_HASH_SIZE; i++)
  3833				vport->hash_table[i] = NULL;
  3834			vport->load_flag |= FC_ALLOW_VMID;
  3835			break;
  3836		default:
  3837			lpfc_printf_vlog(vport, KERN_DEBUG, LOG_DISCOVERY,
  3838					 "8857 Invalid command code");
  3839		}
  3840	}
  3841	

---
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/a843fb80/attachment-0001.gz>


More information about the Linux-nvme mailing list