[linux-next:master 9989/10077] drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   372b2891c15acbf7b90d948b08ac174bde77102c
commit: 85a964c39cadef8f0798cb49292fac6062e664b4 [9989/10077] scsi: lpfc: Add EDC ELS support
:::::: branch date: 23 hours ago
:::::: commit date: 29 hours ago
config: arm64-randconfig-s031-20210824 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.3-348-gf0e6938b-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=85a964c39cadef8f0798cb49292fac6062e664b4 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout 85a964c39cadef8f0798cb49292fac6062e664b4
        # save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/scsi/lpfc/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)
drivers/scsi/lpfc/lpfc_els.c:4565:38: sparse: sparse: cast to restricted __be32 drivers/scsi/lpfc/lpfc_els.c:4565:38: sparse: sparse: cast to restricted __be32 drivers/scsi/lpfc/lpfc_els.c:4565:38: sparse: sparse: cast to restricted __be32 drivers/scsi/lpfc/lpfc_els.c:4565:38: sparse: sparse: cast to restricted __be32 drivers/scsi/lpfc/lpfc_els.c:4565:38: sparse: sparse: cast to restricted __be32 drivers/scsi/lpfc/lpfc_els.c:4565:38: sparse: sparse: cast to restricted __be32 drivers/scsi/lpfc/lpfc_els.c:11118:33: sparse: sparse: cast to restricted __be32 drivers/scsi/lpfc/lpfc_els.c:11118:33: sparse: sparse: cast to restricted __be32 drivers/scsi/lpfc/lpfc_els.c:11118:33: sparse: sparse: cast to restricted __be32 drivers/scsi/lpfc/lpfc_els.c:11118:33: sparse: sparse: cast to restricted __be32 drivers/scsi/lpfc/lpfc_els.c:11118:33: sparse: sparse: cast to restricted __be32 drivers/scsi/lpfc/lpfc_els.c:11118:33: sparse: sparse: cast to restricted __be32 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32 >> drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast from restricted __be16 drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: cast to restricted __be32
   drivers/scsi/lpfc/lpfc_els.c:3984:25: sparse: sparse: too many warnings

vim +3984 drivers/scsi/lpfc/lpfc_els.c

85a964c39cadef James Smart 2021-08-16  3842
85a964c39cadef James Smart 2021-08-16 3843 DECLARE_ENUM2STR_LOOKUP(lpfc_get_tlv_dtag_nm, fc_ls_tlv_dtag,
85a964c39cadef James Smart 2021-08-16  3844  			FC_LS_TLV_DTAG_INIT);
85a964c39cadef James Smart 2021-08-16  3845
85a964c39cadef James Smart 2021-08-16  3846  /**
85a964c39cadef James Smart 2021-08-16 3847 * lpfc_cmpl_els_edc - Completion callback function for EDC 85a964c39cadef James Smart 2021-08-16 3848 * @phba: pointer to lpfc hba data structure. 85a964c39cadef James Smart 2021-08-16 3849 * @cmdiocb: pointer to lpfc command iocb data structure. 85a964c39cadef James Smart 2021-08-16 3850 * @rspiocb: pointer to lpfc response iocb data structure.
85a964c39cadef James Smart 2021-08-16  3851   *
85a964c39cadef James Smart 2021-08-16 3852 * This routine is the completion callback function for issuing the Exchange 85a964c39cadef James Smart 2021-08-16 3853 * Diagnostic Capabilities (EDC) command. The driver issues an EDC to 85a964c39cadef James Smart 2021-08-16 3854 * notify the FPort of its Congestion and Link Fault capabilities. This 85a964c39cadef James Smart 2021-08-16 3855 * routine parses the FPort's response and decides on the least common 85a964c39cadef James Smart 2021-08-16 3856 * values applicable to both FPort and NPort for Warnings and Alarms that 85a964c39cadef James Smart 2021-08-16 3857 * are communicated via hardware signals.
85a964c39cadef James Smart 2021-08-16  3858   **/
85a964c39cadef James Smart 2021-08-16  3859  static void
85a964c39cadef James Smart 2021-08-16 3860 lpfc_cmpl_els_edc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
85a964c39cadef James Smart 2021-08-16  3861  		  struct lpfc_iocbq *rspiocb)
85a964c39cadef James Smart 2021-08-16  3862  {
85a964c39cadef James Smart 2021-08-16  3863  	IOCB_t *irsp;
85a964c39cadef James Smart 2021-08-16 3864 struct fc_els_edc_resp *edc_rsp;
85a964c39cadef James Smart 2021-08-16  3865  	struct fc_tlv_desc *tlv;
85a964c39cadef James Smart 2021-08-16 3866 struct fc_diag_cg_sig_desc *pcgd; 85a964c39cadef James Smart 2021-08-16 3867 struct fc_diag_lnkflt_desc *plnkflt; 85a964c39cadef James Smart 2021-08-16 3868 struct lpfc_dmabuf *pcmd, *prsp;
85a964c39cadef James Smart 2021-08-16  3869  	const char *dtag_nm;
85a964c39cadef James Smart 2021-08-16  3870  	u32 *pdata, dtag;
85a964c39cadef James Smart 2021-08-16 3871 int desc_cnt = 0, bytes_remain;
85a964c39cadef James Smart 2021-08-16  3872  	bool rcv_cap_desc = false;
85a964c39cadef James Smart 2021-08-16  3873  	struct lpfc_nodelist *ndlp;
85a964c39cadef James Smart 2021-08-16  3874
85a964c39cadef James Smart 2021-08-16  3875  	irsp = &rspiocb->iocb;
85a964c39cadef James Smart 2021-08-16  3876  	ndlp = cmdiocb->context1;
85a964c39cadef James Smart 2021-08-16  3877
85a964c39cadef James Smart 2021-08-16 3878 lpfc_debugfs_disc_trc(phba->pport, LPFC_DISC_TRC_ELS_CMD, 85a964c39cadef James Smart 2021-08-16 3879 "EDC cmpl: status:x%x/x%x did:x%x", 85a964c39cadef James Smart 2021-08-16 3880 irsp->ulpStatus, irsp->un.ulpWord[4], 85a964c39cadef James Smart 2021-08-16 3881 irsp->un.elsreq64.remoteID);
85a964c39cadef James Smart 2021-08-16  3882
85a964c39cadef James Smart 2021-08-16 3883 /* ELS cmd tag <ulpIoTag> completes */ 85a964c39cadef James Smart 2021-08-16 3884 lpfc_printf_log(phba, KERN_INFO, LOG_ELS | LOG_CGN_MGMT, 85a964c39cadef James Smart 2021-08-16 3885 "4201 EDC cmd tag x%x completes Data: x%x x%x x%x\n", 85a964c39cadef James Smart 2021-08-16 3886 irsp->ulpIoTag, irsp->ulpStatus, 85a964c39cadef James Smart 2021-08-16 3887 irsp->un.ulpWord[4], irsp->ulpTimeout);
85a964c39cadef James Smart 2021-08-16  3888
85a964c39cadef James Smart 2021-08-16 3889 pcmd = (struct lpfc_dmabuf *)cmdiocb->context2;
85a964c39cadef James Smart 2021-08-16  3890  	if (!pcmd)
85a964c39cadef James Smart 2021-08-16  3891  		goto out;
85a964c39cadef James Smart 2021-08-16  3892
85a964c39cadef James Smart 2021-08-16  3893  	pdata = (u32 *)pcmd->virt;
85a964c39cadef James Smart 2021-08-16  3894  	if (!pdata)
85a964c39cadef James Smart 2021-08-16  3895  		goto out;
85a964c39cadef James Smart 2021-08-16  3896
85a964c39cadef James Smart 2021-08-16 3897 /* Need to clear signal values, send features MB and RDF with FPIN. */
85a964c39cadef James Smart 2021-08-16  3898  	if (irsp->ulpStatus)
85a964c39cadef James Smart 2021-08-16  3899  		goto out;
85a964c39cadef James Smart 2021-08-16  3900
85a964c39cadef James Smart 2021-08-16 3901 prsp = list_get_first(&pcmd->list, struct lpfc_dmabuf, list);
85a964c39cadef James Smart 2021-08-16  3902  	if (!prsp)
85a964c39cadef James Smart 2021-08-16  3903  		goto out;
85a964c39cadef James Smart 2021-08-16  3904
85a964c39cadef James Smart 2021-08-16  3905  	edc_rsp = prsp->virt;
85a964c39cadef James Smart 2021-08-16  3906  	if (!edc_rsp)
85a964c39cadef James Smart 2021-08-16  3907  		goto out;
85a964c39cadef James Smart 2021-08-16  3908
85a964c39cadef James Smart 2021-08-16 3909 /* ELS cmd tag <ulpIoTag> completes */ 85a964c39cadef James Smart 2021-08-16 3910 lpfc_printf_log(phba, KERN_INFO, LOG_ELS | LOG_CGN_MGMT,
85a964c39cadef James Smart 2021-08-16  3911  			"4676 Fabric EDC Rsp: "
85a964c39cadef James Smart 2021-08-16  3912  			"0x%02x, 0x%08x\n",
85a964c39cadef James Smart 2021-08-16  3913  			edc_rsp->acc_hdr.la_cmd,
85a964c39cadef James Smart 2021-08-16 3914 be32_to_cpu(edc_rsp->desc_list_len));
85a964c39cadef James Smart 2021-08-16  3915
85a964c39cadef James Smart 2021-08-16  3916  	/*
85a964c39cadef James Smart 2021-08-16 3917 * Payload length in bytes is the response descriptor list 85a964c39cadef James Smart 2021-08-16 3918 * length minus the 12 bytes of Link Service Request 85a964c39cadef James Smart 2021-08-16 3919 * Information descriptor in the reply.
85a964c39cadef James Smart 2021-08-16  3920  	 */
85a964c39cadef James Smart 2021-08-16 3921 bytes_remain = be32_to_cpu(edc_rsp->desc_list_len) - 85a964c39cadef James Smart 2021-08-16 3922 sizeof(struct fc_els_lsri_desc);
85a964c39cadef James Smart 2021-08-16  3923  	if (bytes_remain <= 0)
85a964c39cadef James Smart 2021-08-16  3924  		goto out;
85a964c39cadef James Smart 2021-08-16  3925
85a964c39cadef James Smart 2021-08-16  3926  	tlv = edc_rsp->desc;
85a964c39cadef James Smart 2021-08-16  3927
85a964c39cadef James Smart 2021-08-16  3928  	/*
85a964c39cadef James Smart 2021-08-16 3929 * cycle through EDC diagnostic descriptors to find the 85a964c39cadef James Smart 2021-08-16 3930 * congestion signaling capability descriptor
85a964c39cadef James Smart 2021-08-16  3931  	 */
85a964c39cadef James Smart 2021-08-16  3932  	while (bytes_remain) {
85a964c39cadef James Smart 2021-08-16 3933 if (bytes_remain < FC_TLV_DESC_HDR_SZ) { 85a964c39cadef James Smart 2021-08-16 3934 lpfc_printf_log(phba, KERN_WARNING, LOG_CGN_MGMT, 85a964c39cadef James Smart 2021-08-16 3935 "6461 Truncated TLV hdr on " 85a964c39cadef James Smart 2021-08-16 3936 "Diagnostic descriptor[%d]\n",
85a964c39cadef James Smart 2021-08-16  3937  					desc_cnt);
85a964c39cadef James Smart 2021-08-16  3938  			goto out;
85a964c39cadef James Smart 2021-08-16  3939  		}
85a964c39cadef James Smart 2021-08-16  3940
85a964c39cadef James Smart 2021-08-16 3941 dtag = be32_to_cpu(tlv->desc_tag);
85a964c39cadef James Smart 2021-08-16  3942  		switch (dtag) {
85a964c39cadef James Smart 2021-08-16  3943  		case ELS_DTAG_LNK_FAULT_CAP:
85a964c39cadef James Smart 2021-08-16 3944 if (bytes_remain < FC_TLV_DESC_SZ_FROM_LENGTH(tlv) || 85a964c39cadef James Smart 2021-08-16 3945 FC_TLV_DESC_SZ_FROM_LENGTH(tlv) != 85a964c39cadef James Smart 2021-08-16 3946 sizeof(struct fc_diag_lnkflt_desc)) {
85a964c39cadef James Smart 2021-08-16  3947  				lpfc_printf_log(
85a964c39cadef James Smart 2021-08-16 3948 phba, KERN_WARNING, LOG_CGN_MGMT, 85a964c39cadef James Smart 2021-08-16 3949 "6462 Truncated Link Fault Diagnostic " 85a964c39cadef James Smart 2021-08-16 3950 "descriptor[%d]: %d vs 0x%zx 0x%zx\n",
85a964c39cadef James Smart 2021-08-16  3951  					desc_cnt, bytes_remain,
85a964c39cadef James Smart 2021-08-16 3952 FC_TLV_DESC_SZ_FROM_LENGTH(tlv), 85a964c39cadef James Smart 2021-08-16 3953 sizeof(struct fc_diag_cg_sig_desc));
85a964c39cadef James Smart 2021-08-16  3954  				goto out;
85a964c39cadef James Smart 2021-08-16  3955  			}
85a964c39cadef James Smart 2021-08-16 3956 plnkflt = (struct fc_diag_lnkflt_desc *)tlv;
85a964c39cadef James Smart 2021-08-16  3957  			lpfc_printf_log(
85a964c39cadef James Smart 2021-08-16 3958 phba, KERN_INFO, LOG_ELS | LOG_CGN_MGMT, 85a964c39cadef James Smart 2021-08-16 3959 "4617 Link Fault Desc Data: 0x%08x 0x%08x "
85a964c39cadef James Smart 2021-08-16  3960  				"0x%08x 0x%08x 0x%08x\n",
85a964c39cadef James Smart 2021-08-16 3961 be32_to_cpu(plnkflt->desc_tag), 85a964c39cadef James Smart 2021-08-16 3962 be32_to_cpu(plnkflt->desc_len),
85a964c39cadef James Smart 2021-08-16  3963  				be32_to_cpu(
85a964c39cadef James Smart 2021-08-16 3964 plnkflt->degrade_activate_threshold),
85a964c39cadef James Smart 2021-08-16  3965  				be32_to_cpu(
85a964c39cadef James Smart 2021-08-16 3966 plnkflt->degrade_deactivate_threshold), 85a964c39cadef James Smart 2021-08-16 3967 be32_to_cpu(plnkflt->fec_degrade_interval));
85a964c39cadef James Smart 2021-08-16  3968  			break;
85a964c39cadef James Smart 2021-08-16  3969  		case ELS_DTAG_CG_SIGNAL_CAP:
85a964c39cadef James Smart 2021-08-16 3970 if (bytes_remain < FC_TLV_DESC_SZ_FROM_LENGTH(tlv) || 85a964c39cadef James Smart 2021-08-16 3971 FC_TLV_DESC_SZ_FROM_LENGTH(tlv) != 85a964c39cadef James Smart 2021-08-16 3972 sizeof(struct fc_diag_cg_sig_desc)) {
85a964c39cadef James Smart 2021-08-16  3973  				lpfc_printf_log(
85a964c39cadef James Smart 2021-08-16 3974 phba, KERN_WARNING, LOG_CGN_MGMT, 85a964c39cadef James Smart 2021-08-16 3975 "6463 Truncated Cgn Signal Diagnostic " 85a964c39cadef James Smart 2021-08-16 3976 "descriptor[%d]: %d vs 0x%zx 0x%zx\n",
85a964c39cadef James Smart 2021-08-16  3977  					desc_cnt, bytes_remain,
85a964c39cadef James Smart 2021-08-16 3978 FC_TLV_DESC_SZ_FROM_LENGTH(tlv), 85a964c39cadef James Smart 2021-08-16 3979 sizeof(struct fc_diag_cg_sig_desc));
85a964c39cadef James Smart 2021-08-16  3980  				goto out;
85a964c39cadef James Smart 2021-08-16  3981  			}
85a964c39cadef James Smart 2021-08-16  3982
85a964c39cadef James Smart 2021-08-16 3983 pcgd = (struct fc_diag_cg_sig_desc *)tlv;
85a964c39cadef James Smart 2021-08-16 @3984  			lpfc_printf_log(
85a964c39cadef James Smart 2021-08-16 3985 phba, KERN_INFO, LOG_ELS | LOG_CGN_MGMT, 85a964c39cadef James Smart 2021-08-16 3986 "4616 CGN Desc Data: 0x%08x 0x%08x " 85a964c39cadef James Smart 2021-08-16 3987 "0x%08x 0x%04x 0x%04x 0x%08x 0x%04x 0x%04x\n", 85a964c39cadef James Smart 2021-08-16 3988 be32_to_cpu(pcgd->desc_tag), 85a964c39cadef James Smart 2021-08-16 3989 be32_to_cpu(pcgd->desc_len), 85a964c39cadef James Smart 2021-08-16 3990 be32_to_cpu(pcgd->xmt_signal_capability), 85a964c39cadef James Smart 2021-08-16 3991 be32_to_cpu(pcgd->xmt_signal_frequency.count), 85a964c39cadef James Smart 2021-08-16 3992 be32_to_cpu(pcgd->xmt_signal_frequency.units), 85a964c39cadef James Smart 2021-08-16 3993 be32_to_cpu(pcgd->rcv_signal_capability), 85a964c39cadef James Smart 2021-08-16 3994 be32_to_cpu(pcgd->rcv_signal_frequency.count), 85a964c39cadef James Smart 2021-08-16 3995 be32_to_cpu(pcgd->rcv_signal_frequency.units));
85a964c39cadef James Smart 2021-08-16  3996
85a964c39cadef James Smart 2021-08-16 3997 /* Compare driver and Fport capabilities and choose
85a964c39cadef James Smart 2021-08-16  3998  			 * least common.
85a964c39cadef James Smart 2021-08-16  3999  			 */
85a964c39cadef James Smart 2021-08-16 4000 lpfc_least_capable_settings(phba, pcgd);
85a964c39cadef James Smart 2021-08-16  4001  			rcv_cap_desc = true;
85a964c39cadef James Smart 2021-08-16  4002  			break;
85a964c39cadef James Smart 2021-08-16  4003  		default:
85a964c39cadef James Smart 2021-08-16 4004 dtag_nm = lpfc_get_tlv_dtag_nm(dtag); 85a964c39cadef James Smart 2021-08-16 4005 lpfc_printf_log(phba, KERN_WARNING, LOG_CGN_MGMT,
85a964c39cadef James Smart 2021-08-16  4006  					"4919 unknown Diagnostic "
85a964c39cadef James Smart 2021-08-16 4007 "Descriptor[%d]: tag x%x (%s)\n",
85a964c39cadef James Smart 2021-08-16  4008  					desc_cnt, dtag, dtag_nm);
85a964c39cadef James Smart 2021-08-16  4009  		}
85a964c39cadef James Smart 2021-08-16  4010
85a964c39cadef James Smart 2021-08-16 4011 bytes_remain -= FC_TLV_DESC_SZ_FROM_LENGTH(tlv);
85a964c39cadef James Smart 2021-08-16  4012  		tlv = fc_tlv_next_desc(tlv);
85a964c39cadef James Smart 2021-08-16  4013  		desc_cnt++;
85a964c39cadef James Smart 2021-08-16  4014  	}
85a964c39cadef James Smart 2021-08-16  4015
85a964c39cadef James Smart 2021-08-16  4016  out:
85a964c39cadef James Smart 2021-08-16  4017  	if (!rcv_cap_desc) {
85a964c39cadef James Smart 2021-08-16 4018 phba->cgn_reg_fpin = LPFC_CGN_FPIN_ALARM | LPFC_CGN_FPIN_WARN; 85a964c39cadef James Smart 2021-08-16 4019 phba->cgn_reg_signal = EDC_CG_SIG_NOTSUPPORTED;
85a964c39cadef James Smart 2021-08-16  4020  		phba->cgn_sig_freq = 0;
85a964c39cadef James Smart 2021-08-16 4021 lpfc_printf_log(phba, KERN_WARNING, LOG_ELS | LOG_CGN_MGMT, 85a964c39cadef James Smart 2021-08-16 4022 "4202 EDC rsp error - sending RDF "
85a964c39cadef James Smart 2021-08-16  4023  				"for FPIN only.\n");
85a964c39cadef James Smart 2021-08-16  4024  	}
85a964c39cadef James Smart 2021-08-16  4025
85a964c39cadef James Smart 2021-08-16  4026  	lpfc_config_cgn_signal(phba);
85a964c39cadef James Smart 2021-08-16  4027
85a964c39cadef James Smart 2021-08-16 4028 /* Check to see if link went down during discovery */ 85a964c39cadef James Smart 2021-08-16 4029 lpfc_els_chk_latt(phba->pport); 85a964c39cadef James Smart 2021-08-16 4030 lpfc_debugfs_disc_trc(phba->pport, LPFC_DISC_TRC_ELS_CMD, 85a964c39cadef James Smart 2021-08-16 4031 "EDC Cmpl: did:x%x refcnt %d", 85a964c39cadef James Smart 2021-08-16 4032 ndlp->nlp_DID, kref_read(&ndlp->kref), 0); 85a964c39cadef James Smart 2021-08-16 4033 lpfc_els_free_iocb(phba, cmdiocb);
85a964c39cadef James Smart 2021-08-16  4034  	lpfc_nlp_put(ndlp);
85a964c39cadef James Smart 2021-08-16  4035  }
85a964c39cadef James Smart 2021-08-16  4036

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx


_______________________________________________
kbuild mailing list -- kbuild@xxxxxxxxxxxx
To unsubscribe send an email to kbuild-leave@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux