Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scsi: lpfc: Fix incorrect big endian type assignments in FDMI and VMID paths

The kernel test robot reported sparse warnings regarding the improper usage
of beXX_to_cpu() macros.

Change the flagged FDMI and VMID member variables to __beXX and redo the
beXX_to_cpu() macros appropriately.

Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Link: https://lore.kernel.org/r/20230530191405.21580-1-justintee8345@gmail.com
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202305261159.lTW5NYrv-lkp@intel.com/
Closes: https://lore.kernel.org/oe-kbuild-all/202305260751.NWFvhLY5-lkp@intel.com/
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

authored by

Justin Tee and committed by
Martin K. Petersen
6e8a669e 21be4d03

+52 -52
+44 -44
drivers/scsi/lpfc/lpfc_ct.c
··· 287 287 u32 ulp_status = get_job_ulpstatus(phba, ctiocbq); 288 288 u32 ulp_word4 = get_job_word4(phba, ctiocbq); 289 289 u32 did; 290 - u32 mi_cmd; 290 + u16 mi_cmd; 291 291 292 292 did = bf_get(els_rsp64_sid, &ctiocbq->wqe.xmit_els_rsp); 293 293 if (ulp_status) { ··· 311 311 312 312 ct_req = (struct lpfc_sli_ct_request *)ctiocbq->cmd_dmabuf->virt; 313 313 314 - mi_cmd = ct_req->CommandResponse.bits.CmdRsp; 314 + mi_cmd = be16_to_cpu(ct_req->CommandResponse.bits.CmdRsp); 315 315 lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS, 316 316 "6442 : MI Cmd : x%x Not Supported\n", mi_cmd); 317 317 lpfc_ct_reject_event(ndlp, ct_req, ··· 486 486 } 487 487 488 488 static struct lpfc_dmabuf * 489 - lpfc_alloc_ct_rsp(struct lpfc_hba *phba, int cmdcode, struct ulp_bde64 *bpl, 489 + lpfc_alloc_ct_rsp(struct lpfc_hba *phba, __be16 cmdcode, struct ulp_bde64 *bpl, 490 490 uint32_t size, int *entries) 491 491 { 492 492 struct lpfc_dmabuf *mlist = NULL; ··· 507 507 508 508 INIT_LIST_HEAD(&mp->list); 509 509 510 - if (cmdcode == be16_to_cpu(SLI_CTNS_GID_FT) || 511 - cmdcode == be16_to_cpu(SLI_CTNS_GFF_ID)) 510 + if (be16_to_cpu(cmdcode) == SLI_CTNS_GID_FT || 511 + be16_to_cpu(cmdcode) == SLI_CTNS_GFF_ID) 512 512 mp->virt = lpfc_mbuf_alloc(phba, MEM_PRI, &(mp->phys)); 513 513 else 514 514 mp->virt = lpfc_mbuf_alloc(phba, 0, &(mp->phys)); ··· 671 671 struct ulp_bde64 *bpl = (struct ulp_bde64 *) bmp->virt; 672 672 struct lpfc_dmabuf *outmp; 673 673 int cnt = 0, status; 674 - int cmdcode = ((struct lpfc_sli_ct_request *) inmp->virt)-> 674 + __be16 cmdcode = ((struct lpfc_sli_ct_request *)inmp->virt)-> 675 675 CommandResponse.bits.CmdRsp; 676 676 677 677 bpl++; /* Skip past ct request */ ··· 1043 1043 outp, 1044 1044 CTreq->un.gid.Fc4Type, 1045 1045 get_job_data_placed(phba, rspiocb)); 1046 - } else if (CTrsp->CommandResponse.bits.CmdRsp == 1047 - be16_to_cpu(SLI_CT_RESPONSE_FS_RJT)) { 1046 + } else if (be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp) == 1047 + SLI_CT_RESPONSE_FS_RJT) { 1048 1048 /* NameServer Rsp Error */ 1049 1049 if ((CTrsp->ReasonCode == SLI_CT_UNABLE_TO_PERFORM_REQ) 1050 1050 && (CTrsp->Explanation == SLI_CT_NO_FC4_TYPES)) { ··· 1052 1052 LOG_DISCOVERY, 1053 1053 "0269 No NameServer Entries " 1054 1054 "Data: x%x x%x x%x x%x\n", 1055 - CTrsp->CommandResponse.bits.CmdRsp, 1055 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1056 1056 (uint32_t) CTrsp->ReasonCode, 1057 1057 (uint32_t) CTrsp->Explanation, 1058 1058 vport->fc_flag); 1059 1059 1060 1060 lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_CT, 1061 1061 "GID_FT no entry cmd:x%x rsn:x%x exp:x%x", 1062 - (uint32_t)CTrsp->CommandResponse.bits.CmdRsp, 1062 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1063 1063 (uint32_t) CTrsp->ReasonCode, 1064 1064 (uint32_t) CTrsp->Explanation); 1065 1065 } else { ··· 1067 1067 LOG_DISCOVERY, 1068 1068 "0240 NameServer Rsp Error " 1069 1069 "Data: x%x x%x x%x x%x\n", 1070 - CTrsp->CommandResponse.bits.CmdRsp, 1070 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1071 1071 (uint32_t) CTrsp->ReasonCode, 1072 1072 (uint32_t) CTrsp->Explanation, 1073 1073 vport->fc_flag); 1074 1074 1075 1075 lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_CT, 1076 1076 "GID_FT rsp err1 cmd:x%x rsn:x%x exp:x%x", 1077 - (uint32_t)CTrsp->CommandResponse.bits.CmdRsp, 1077 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1078 1078 (uint32_t) CTrsp->ReasonCode, 1079 1079 (uint32_t) CTrsp->Explanation); 1080 1080 } ··· 1085 1085 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT, 1086 1086 "0241 NameServer Rsp Error " 1087 1087 "Data: x%x x%x x%x x%x\n", 1088 - CTrsp->CommandResponse.bits.CmdRsp, 1088 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1089 1089 (uint32_t) CTrsp->ReasonCode, 1090 1090 (uint32_t) CTrsp->Explanation, 1091 1091 vport->fc_flag); 1092 1092 1093 1093 lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_CT, 1094 1094 "GID_FT rsp err2 cmd:x%x rsn:x%x exp:x%x", 1095 - (uint32_t)CTrsp->CommandResponse.bits.CmdRsp, 1095 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1096 1096 (uint32_t) CTrsp->ReasonCode, 1097 1097 (uint32_t) CTrsp->Explanation); 1098 1098 } ··· 1247 1247 /* Good status, continue checking */ 1248 1248 CTreq = (struct lpfc_sli_ct_request *)inp->virt; 1249 1249 CTrsp = (struct lpfc_sli_ct_request *)outp->virt; 1250 - if (CTrsp->CommandResponse.bits.CmdRsp == 1251 - cpu_to_be16(SLI_CT_RESPONSE_FS_ACC)) { 1250 + if (be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp) == 1251 + SLI_CT_RESPONSE_FS_ACC) { 1252 1252 lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY, 1253 1253 "4105 NameServer Rsp Data: x%x x%x " 1254 1254 "x%x x%x sz x%x\n", ··· 1262 1262 outp, 1263 1263 CTreq->un.gid.Fc4Type, 1264 1264 get_job_data_placed(phba, rspiocb)); 1265 - } else if (CTrsp->CommandResponse.bits.CmdRsp == 1266 - be16_to_cpu(SLI_CT_RESPONSE_FS_RJT)) { 1265 + } else if (be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp) == 1266 + SLI_CT_RESPONSE_FS_RJT) { 1267 1267 /* NameServer Rsp Error */ 1268 1268 if ((CTrsp->ReasonCode == SLI_CT_UNABLE_TO_PERFORM_REQ) 1269 1269 && (CTrsp->Explanation == SLI_CT_NO_FC4_TYPES)) { ··· 1271 1271 vport, KERN_INFO, LOG_DISCOVERY, 1272 1272 "4106 No NameServer Entries " 1273 1273 "Data: x%x x%x x%x x%x\n", 1274 - CTrsp->CommandResponse.bits.CmdRsp, 1274 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1275 1275 (uint32_t)CTrsp->ReasonCode, 1276 1276 (uint32_t)CTrsp->Explanation, 1277 1277 vport->fc_flag); ··· 1279 1279 lpfc_debugfs_disc_trc( 1280 1280 vport, LPFC_DISC_TRC_CT, 1281 1281 "GID_PT no entry cmd:x%x rsn:x%x exp:x%x", 1282 - (uint32_t)CTrsp->CommandResponse.bits.CmdRsp, 1282 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1283 1283 (uint32_t)CTrsp->ReasonCode, 1284 1284 (uint32_t)CTrsp->Explanation); 1285 1285 } else { ··· 1287 1287 vport, KERN_INFO, LOG_DISCOVERY, 1288 1288 "4107 NameServer Rsp Error " 1289 1289 "Data: x%x x%x x%x x%x\n", 1290 - CTrsp->CommandResponse.bits.CmdRsp, 1290 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1291 1291 (uint32_t)CTrsp->ReasonCode, 1292 1292 (uint32_t)CTrsp->Explanation, 1293 1293 vport->fc_flag); ··· 1295 1295 lpfc_debugfs_disc_trc( 1296 1296 vport, LPFC_DISC_TRC_CT, 1297 1297 "GID_PT rsp err1 cmd:x%x rsn:x%x exp:x%x", 1298 - (uint32_t)CTrsp->CommandResponse.bits.CmdRsp, 1298 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1299 1299 (uint32_t)CTrsp->ReasonCode, 1300 1300 (uint32_t)CTrsp->Explanation); 1301 1301 } ··· 1304 1304 lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT, 1305 1305 "4109 NameServer Rsp Error " 1306 1306 "Data: x%x x%x x%x x%x\n", 1307 - CTrsp->CommandResponse.bits.CmdRsp, 1307 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1308 1308 (uint32_t)CTrsp->ReasonCode, 1309 1309 (uint32_t)CTrsp->Explanation, 1310 1310 vport->fc_flag); ··· 1312 1312 lpfc_debugfs_disc_trc( 1313 1313 vport, LPFC_DISC_TRC_CT, 1314 1314 "GID_PT rsp err2 cmd:x%x rsn:x%x exp:x%x", 1315 - (uint32_t)CTrsp->CommandResponse.bits.CmdRsp, 1315 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1316 1316 (uint32_t)CTrsp->ReasonCode, 1317 1317 (uint32_t)CTrsp->Explanation); 1318 1318 } ··· 1391 1391 (fbits & FC4_FEATURE_INIT) ? "Initiator" : " ", 1392 1392 (fbits & FC4_FEATURE_TARGET) ? "Target" : " "); 1393 1393 1394 - if (CTrsp->CommandResponse.bits.CmdRsp == 1395 - be16_to_cpu(SLI_CT_RESPONSE_FS_ACC)) { 1394 + if (be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp) == 1395 + SLI_CT_RESPONSE_FS_ACC) { 1396 1396 if ((fbits & FC4_FEATURE_INIT) && 1397 1397 !(fbits & FC4_FEATURE_TARGET)) { 1398 1398 lpfc_printf_vlog(vport, KERN_INFO, ··· 1631 1631 "0209 CT Request completes, latt %d, " 1632 1632 "ulp_status x%x CmdRsp x%x, Context x%x, Tag x%x\n", 1633 1633 latt, ulp_status, 1634 - CTrsp->CommandResponse.bits.CmdRsp, 1634 + be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp), 1635 1635 get_job_ulpcontext(phba, cmdiocb), cmdiocb->iotag); 1636 1636 1637 1637 lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_CT, ··· 1681 1681 1682 1682 outp = cmdiocb->rsp_dmabuf; 1683 1683 CTrsp = (struct lpfc_sli_ct_request *)outp->virt; 1684 - if (CTrsp->CommandResponse.bits.CmdRsp == 1685 - be16_to_cpu(SLI_CT_RESPONSE_FS_ACC)) 1684 + if (be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp) == 1685 + SLI_CT_RESPONSE_FS_ACC) 1686 1686 vport->ct_flags |= FC_CT_RFT_ID; 1687 1687 } 1688 1688 lpfc_cmpl_ct(phba, cmdiocb, rspiocb); ··· 1702 1702 1703 1703 outp = cmdiocb->rsp_dmabuf; 1704 1704 CTrsp = (struct lpfc_sli_ct_request *) outp->virt; 1705 - if (CTrsp->CommandResponse.bits.CmdRsp == 1706 - be16_to_cpu(SLI_CT_RESPONSE_FS_ACC)) 1705 + if (be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp) == 1706 + SLI_CT_RESPONSE_FS_ACC) 1707 1707 vport->ct_flags |= FC_CT_RNN_ID; 1708 1708 } 1709 1709 lpfc_cmpl_ct(phba, cmdiocb, rspiocb); ··· 1723 1723 1724 1724 outp = cmdiocb->rsp_dmabuf; 1725 1725 CTrsp = (struct lpfc_sli_ct_request *)outp->virt; 1726 - if (CTrsp->CommandResponse.bits.CmdRsp == 1727 - be16_to_cpu(SLI_CT_RESPONSE_FS_ACC)) 1726 + if (be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp) == 1727 + SLI_CT_RESPONSE_FS_ACC) 1728 1728 vport->ct_flags |= FC_CT_RSPN_ID; 1729 1729 } 1730 1730 lpfc_cmpl_ct(phba, cmdiocb, rspiocb); ··· 1744 1744 1745 1745 outp = cmdiocb->rsp_dmabuf; 1746 1746 CTrsp = (struct lpfc_sli_ct_request *) outp->virt; 1747 - if (CTrsp->CommandResponse.bits.CmdRsp == 1748 - be16_to_cpu(SLI_CT_RESPONSE_FS_ACC)) 1747 + if (be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp) == 1748 + SLI_CT_RESPONSE_FS_ACC) 1749 1749 vport->ct_flags |= FC_CT_RSNN_NN; 1750 1750 } 1751 1751 lpfc_cmpl_ct(phba, cmdiocb, rspiocb); ··· 1777 1777 1778 1778 outp = cmdiocb->rsp_dmabuf; 1779 1779 CTrsp = (struct lpfc_sli_ct_request *)outp->virt; 1780 - if (CTrsp->CommandResponse.bits.CmdRsp == 1781 - be16_to_cpu(SLI_CT_RESPONSE_FS_ACC)) 1780 + if (be16_to_cpu(CTrsp->CommandResponse.bits.CmdRsp) == 1781 + SLI_CT_RESPONSE_FS_ACC) 1782 1782 vport->ct_flags |= FC_CT_RFF_ID; 1783 1783 } 1784 1784 lpfc_cmpl_ct(phba, cmdiocb, rspiocb); ··· 2217 2217 struct lpfc_dmabuf *outp = cmdiocb->rsp_dmabuf; 2218 2218 struct lpfc_sli_ct_request *CTcmd = inp->virt; 2219 2219 struct lpfc_sli_ct_request *CTrsp = outp->virt; 2220 - uint16_t fdmi_cmd = CTcmd->CommandResponse.bits.CmdRsp; 2221 - uint16_t fdmi_rsp = CTrsp->CommandResponse.bits.CmdRsp; 2220 + __be16 fdmi_cmd = CTcmd->CommandResponse.bits.CmdRsp; 2221 + __be16 fdmi_rsp = CTrsp->CommandResponse.bits.CmdRsp; 2222 2222 struct lpfc_nodelist *ndlp, *free_ndlp = NULL; 2223 2223 uint32_t latt, cmd, err; 2224 2224 u32 ulp_status = get_job_ulpstatus(phba, rspiocb); ··· 2278 2278 2279 2279 /* Check for a CT LS_RJT response */ 2280 2280 cmd = be16_to_cpu(fdmi_cmd); 2281 - if (fdmi_rsp == cpu_to_be16(SLI_CT_RESPONSE_FS_RJT)) { 2281 + if (be16_to_cpu(fdmi_rsp) == SLI_CT_RESPONSE_FS_RJT) { 2282 2282 /* FDMI rsp failed */ 2283 2283 lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY | LOG_ELS, 2284 2284 "0220 FDMI cmd failed FS_RJT Data: x%x", cmd); ··· 3110 3110 } 3111 3111 3112 3112 /* RHBA attribute jump table */ 3113 - int (*lpfc_fdmi_hba_action[]) 3113 + static int (*lpfc_fdmi_hba_action[]) 3114 3114 (struct lpfc_vport *vport, void *attrbuf) = { 3115 3115 /* Action routine Mask bit Attribute type */ 3116 3116 lpfc_fdmi_hba_attr_wwnn, /* bit0 RHBA_NODENAME */ ··· 3134 3134 }; 3135 3135 3136 3136 /* RPA / RPRT attribute jump table */ 3137 - int (*lpfc_fdmi_port_action[]) 3137 + static int (*lpfc_fdmi_port_action[]) 3138 3138 (struct lpfc_vport *vport, void *attrbuf) = { 3139 3139 /* Action routine Mask bit Attribute type */ 3140 3140 lpfc_fdmi_port_attr_fc4type, /* bit0 RPRT_SUPPORT_FC4_TYPES */ ··· 3570 3570 struct lpfc_dmabuf *outp = cmdiocb->rsp_dmabuf; 3571 3571 struct lpfc_sli_ct_request *ctcmd = inp->virt; 3572 3572 struct lpfc_sli_ct_request *ctrsp = outp->virt; 3573 - u16 rsp = ctrsp->CommandResponse.bits.CmdRsp; 3573 + __be16 rsp = ctrsp->CommandResponse.bits.CmdRsp; 3574 3574 struct app_id_object *app; 3575 3575 struct lpfc_nodelist *ndlp = cmdiocb->ndlp; 3576 3576 u32 cmd, hash, bucket; ··· 3587 3587 goto free_res; 3588 3588 } 3589 3589 /* Check for a CT LS_RJT response */ 3590 - if (rsp == be16_to_cpu(SLI_CT_RESPONSE_FS_RJT)) { 3590 + if (be16_to_cpu(rsp) == SLI_CT_RESPONSE_FS_RJT) { 3591 3591 if (cmd != SLI_CTAS_DALLAPP_ID) 3592 3592 lpfc_printf_vlog(vport, KERN_DEBUG, LOG_DISCOVERY, 3593 3593 "3306 VMID FS_RJT Data: x%x x%x x%x\n",
+8 -8
drivers/scsi/lpfc/lpfc_hw.h
··· 86 86 union CtCommandResponse { 87 87 /* Structure is in Big Endian format */ 88 88 struct { 89 - uint32_t CmdRsp:16; 90 - uint32_t Size:16; 89 + __be16 CmdRsp; 90 + __be16 Size; 91 91 } bits; 92 92 uint32_t word; 93 93 }; ··· 124 124 #define LPFC_CT_PREAMBLE 20 /* Size of CTReq + 4 up to here */ 125 125 126 126 union { 127 - uint32_t PortID; 127 + __be32 PortID; 128 128 struct gid { 129 129 uint8_t PortType; /* for GID_PT requests */ 130 130 #define GID_PT_N_PORT 1 ··· 1408 1408 }; 1409 1409 1410 1410 struct app_id_object { 1411 - uint32_t port_id; 1412 - uint32_t app_id; 1411 + __be32 port_id; 1412 + __be32 app_id; 1413 1413 struct entity_id_object obj; 1414 1414 }; 1415 1415 1416 1416 struct lpfc_vmid_rapp_ident_list { 1417 - uint32_t no_of_objects; 1417 + __be32 no_of_objects; 1418 1418 struct entity_id_object obj[]; 1419 1419 }; 1420 1420 1421 1421 struct lpfc_vmid_dapp_ident_list { 1422 - uint32_t no_of_objects; 1422 + __be32 no_of_objects; 1423 1423 struct entity_id_object obj[]; 1424 1424 }; 1425 1425 ··· 1512 1512 * Registered Port List Format 1513 1513 */ 1514 1514 struct lpfc_fdmi_reg_port_list { 1515 - uint32_t EntryCnt; 1515 + __be32 EntryCnt; 1516 1516 struct lpfc_fdmi_port_entry pe; 1517 1517 } __packed; 1518 1518