Skip to contentSkip to conversation

pm80xx: Phy settings support for motherboard controller.

SCSI Dan Carpenter 3 participants 3 messages Apr 13, 2016 – Apr 28, 2016

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hello Anand Kumar Santhanam,

The patch 279094079a44: "[SCSI] pm80xx: Phy settings support for motherboard controller." from Sep 18, 2013, leads to the following static checker warning:

	drivers/scsi/pm8001/pm80xx_hwi.c:4554 mpi_set_phy_profile_req()
	error: uninitialized symbol 'tag'.

drivers/scsi/pm8001/pm80xx_hwi.c
4540 void mpi_set_phy_profile_req(struct pm8001_hba_info *pm8001_ha,
4541 u32 operation, u32 phyid, u32 length, u32 *buf)
4542 {

  4543          u32 tag , i, j = 0;
  4544          int rc;
  4545          struct set_phy_profile_req payload;
  4546          struct inbound_queue_table *circularQ;
  4547          u32 opc = OPC_INB_SET_PHY_PROFILE;
  4548  
  4549          memset(&payload, 0, sizeof(payload));
  4550          rc = pm8001_tag_alloc(pm8001_ha, &tag);
  4551          if (rc)
  4552                  PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("Invalid tag\n"));
                                                                  ^^^^^^^^^^^^

Yup.

4553 circularQ = &pm8001_ha->inbnd_q_tbl[0];

  4554          payload.tag = cpu_to_le32(tag);
                                          ^^^

Using invalid tag.

  4555          payload.ppc_phyid = (((operation & 0xF) << 8) | (phyid  & 0xFF));
  4556          PM8001_INIT_DBG(pm8001_ha,
  4557                  pm8001_printk(" phy profile command for phy %x ,length is %d\n",
  4558                          payload.ppc_phyid, length));
  4559          for (i = length; i < (length + PHY_DWORD_LENGTH - 1); i++) {
  4560                  payload.reserved[j] =  cpu_to_le32(*((u32 *)buf + i));
  4561                  j++;
  4562          }
  4563          rc = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0);
  4564          if (rc)
  4565                  pm8001_tag_free(pm8001_ha, tag);
  4566  }

regards,
dan carpenter

#1 lore raw

2016-04-13 13:24 GMT+02:00 Dan Carpenter <[email protected]>:

Quoted 9 lines

Hello Anand Kumar Santhanam,

The patch 279094079a44: "[SCSI] pm80xx: Phy settings support for motherboard controller." from Sep 18, 2013, leads to the following static checker warning:

drivers/scsi/pm8001/pm80xx_hwi.c:4554 mpi_set_phy_profile_req()
error: uninitialized symbol 'tag'.

Thanks for reporting, attached patch should fix the warning.

From e30af801d9ee9979b2a7a2af815cb395c2255a09 Mon Sep 17 00:00:00 2001
From: Jack Wang <[email protected]>
Date: Thu, 14 Apr 2016 14:38:57 +0200
Subject: [PATCH] pm80xx: avoid to use invalid tag

Fix static checker warning:

drivers/scsi/pm8001/pm80xx_hwi.c:4554 mpi_set_phy_profile_req()
error: uninitialized symbol 'tag'.

---
 drivers/scsi/pm8001/pm80xx_hwi.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
drivers/scsi/pm8001/pm80xx_hwi.c +6 -2
index eb4fee6..a3c1c08 100644
@@ -4548,8 +4548,10 @@ void mpi_set_phy_profile_req(struct pm8001_hba_info *pm8001_ha,
 
 	memset(&payload, 0, sizeof(payload));
 	rc = pm8001_tag_alloc(pm8001_ha, &tag);
-	if (rc)
+	if (rc) {
 		PM8001_FAIL_DBG(pm8001_ha, pm8001_printk("Invalid tag\n"));
+		return;
+	}
 	circularQ = &pm8001_ha->inbnd_q_tbl[0];
 	payload.tag = cpu_to_le32(tag);
 	payload.ppc_phyid = (((operation & 0xF) << 8) | (phyid  & 0xFF));
@@ -4590,8 +4592,10 @@ void pm8001_set_phy_profile_single(struct pm8001_hba_info *pm8001_ha,
 	memset(&payload, 0, sizeof(payload));
 
 	rc = pm8001_tag_alloc(pm8001_ha, &tag);
-	if (rc)
+	if (rc) {
 		PM8001_INIT_DBG(pm8001_ha, pm8001_printk("Invalid tag"));
+		return;
+	}
 
 	circularQ = &pm8001_ha->inbnd_q_tbl[0];
 	opc = OPC_INB_SET_PHY_PROFILE;
Signature · 1 line
1.9.1
#2 lore raw
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Jack" == Jack Wang <[email protected]> writes:

Jack> 2016-04-13 13:24 GMT+02:00 Dan Carpenter
Jack> <[email protected]>:

Quoted 9 lines
Quoted 9 lines

Hello Anand Kumar Santhanam,

The patch 279094079a44: "[SCSI] pm80xx: Phy settings support for motherboard controller." from Sep 18, 2013, leads to the following static checker warning:

drivers/scsi/pm8001/pm80xx_hwi.c:4554 mpi_set_phy_profile_req()
error: uninitialized symbol 'tag'.

Jack> Thanks for reporting, attached patch should fix the warning.

Dan: Please review Jack's patch so get can get this in.

Signature · 1 line
Martin K. Petersen	Oracle Linux Engineering