diff mbox

[V3,4/9] pm80xx : tag allocation for phy control request.

Message ID 20170919171004.10331-5-Viswas.G@microsemi.com (mailing list archive)
State Changes Requested
Headers show

Commit Message

Viswas G Sept. 19, 2017, 5:09 p.m. UTC
tag is taken from the tag pool instead of using the hardcoded
tag value(1).

Signed-off-by: Deepak Ukey <deepak.ukey@microsemi.com>
Signed-off-by: Viswas G <Viswas.G@microsemi.com>

Acked-by: Jack Wang <jinpu.wang@profitbricks.com>
---
 drivers/scsi/pm8001/pm8001_hwi.c |  3 +++
 drivers/scsi/pm8001/pm80xx_hwi.c | 10 +++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

Comments

kernel test robot Sept. 20, 2017, 3:18 p.m. UTC | #1
Hi Viswas,

[auto build test WARNING on mkp-scsi/for-next]
[also build test WARNING on v4.14-rc1 next-20170920]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Viswas-G/pm80xx-updates/20170920-202506
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
config: x86_64-randconfig-a0-09202136 (attached as .config)
compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

   drivers/scsi/pm8001/pm80xx_hwi.c: In function 'pm80xx_chip_phy_ctl_req':
>> drivers/scsi/pm8001/pm80xx_hwi.c:4507: warning: unused variable 'ret'

vim +/ret +4507 drivers/scsi/pm8001/pm80xx_hwi.c

f5860992d Sakthivel K 2013-04-17  4492  
f5860992d Sakthivel K 2013-04-17  4493  /**
f5860992d Sakthivel K 2013-04-17  4494   * pm80xx_chip_phy_ctl_req - support the local phy operation
f5860992d Sakthivel K 2013-04-17  4495   * @pm8001_ha: our hba card information.
f5860992d Sakthivel K 2013-04-17  4496   * @num: the inbound queue number
f5860992d Sakthivel K 2013-04-17  4497   * @phy_id: the phy id which we wanted to operate
f5860992d Sakthivel K 2013-04-17  4498   * @phy_op:
f5860992d Sakthivel K 2013-04-17  4499   */
f5860992d Sakthivel K 2013-04-17  4500  static int pm80xx_chip_phy_ctl_req(struct pm8001_hba_info *pm8001_ha,
f5860992d Sakthivel K 2013-04-17  4501  	u32 phyId, u32 phy_op)
f5860992d Sakthivel K 2013-04-17  4502  {
18e9bdf60 Viswas G    2017-09-19  4503  	u32 tag;
18e9bdf60 Viswas G    2017-09-19  4504  	int rc;
f5860992d Sakthivel K 2013-04-17  4505  	struct local_phy_ctl_req payload;
f5860992d Sakthivel K 2013-04-17  4506  	struct inbound_queue_table *circularQ;
f5860992d Sakthivel K 2013-04-17 @4507  	int ret;
f5860992d Sakthivel K 2013-04-17  4508  	u32 opc = OPC_INB_LOCAL_PHY_CONTROL;
f5860992d Sakthivel K 2013-04-17  4509  	memset(&payload, 0, sizeof(payload));
18e9bdf60 Viswas G    2017-09-19  4510  	rc = pm8001_tag_alloc(pm8001_ha, &tag);
18e9bdf60 Viswas G    2017-09-19  4511  	if (rc)
18e9bdf60 Viswas G    2017-09-19  4512  		return rc;
f5860992d Sakthivel K 2013-04-17  4513  	circularQ = &pm8001_ha->inbnd_q_tbl[0];
18e9bdf60 Viswas G    2017-09-19  4514  	payload.tag = cpu_to_le32(tag);
f5860992d Sakthivel K 2013-04-17  4515  	payload.phyop_phyid =
f5860992d Sakthivel K 2013-04-17  4516  		cpu_to_le32(((phy_op & 0xFF) << 8) | (phyId & 0xFF));
18e9bdf60 Viswas G    2017-09-19  4517  	return pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0);
f5860992d Sakthivel K 2013-04-17  4518  }
f5860992d Sakthivel K 2013-04-17  4519  

:::::: The code at line 4507 was first introduced by commit
:::::: f5860992db55c9e36b0f120dff73f0c34abe510d [SCSI] pm80xx: Added SPCv/ve specific hardware functionalities and relevant changes in common files

:::::: TO: Sakthivel K <Sakthivel.SaravananKamalRaju@pmcs.com>
:::::: CC: James Bottomley <JBottomley@Parallels.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
Jinpu Wang Sept. 21, 2017, 8:09 a.m. UTC | #2
On Wed, Sep 20, 2017 at 5:18 PM, kbuild test robot <lkp@intel.com> wrote:
> Hi Viswas,
>
> [auto build test WARNING on mkp-scsi/for-next]
> [also build test WARNING on v4.14-rc1 next-20170920]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url:    https://github.com/0day-ci/linux/commits/Viswas-G/pm80xx-updates/20170920-202506
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
> config: x86_64-randconfig-a0-09202136 (attached as .config)
> compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
> reproduce:
>         # save the attached .config to linux build tree
>         make ARCH=x86_64
>
> All warnings (new ones prefixed by >>):
>
>    drivers/scsi/pm8001/pm80xx_hwi.c: In function 'pm80xx_chip_phy_ctl_req':
>>> drivers/scsi/pm8001/pm80xx_hwi.c:4507: warning: unused variable 'ret'
>
> vim +/ret +4507 drivers/scsi/pm8001/pm80xx_hwi.c

Indeed, ret is unused, Viswas, could you send a update patch to fix
the warning in this patch and patch5.

Thanks
>
> f5860992d Sakthivel K 2013-04-17  4492
> f5860992d Sakthivel K 2013-04-17  4493  /**
> f5860992d Sakthivel K 2013-04-17  4494   * pm80xx_chip_phy_ctl_req - support the local phy operation
> f5860992d Sakthivel K 2013-04-17  4495   * @pm8001_ha: our hba card information.
> f5860992d Sakthivel K 2013-04-17  4496   * @num: the inbound queue number
> f5860992d Sakthivel K 2013-04-17  4497   * @phy_id: the phy id which we wanted to operate
> f5860992d Sakthivel K 2013-04-17  4498   * @phy_op:
> f5860992d Sakthivel K 2013-04-17  4499   */
> f5860992d Sakthivel K 2013-04-17  4500  static int pm80xx_chip_phy_ctl_req(struct pm8001_hba_info *pm8001_ha,
> f5860992d Sakthivel K 2013-04-17  4501          u32 phyId, u32 phy_op)
> f5860992d Sakthivel K 2013-04-17  4502  {
> 18e9bdf60 Viswas G    2017-09-19  4503          u32 tag;
> 18e9bdf60 Viswas G    2017-09-19  4504          int rc;
> f5860992d Sakthivel K 2013-04-17  4505          struct local_phy_ctl_req payload;
> f5860992d Sakthivel K 2013-04-17  4506          struct inbound_queue_table *circularQ;
> f5860992d Sakthivel K 2013-04-17 @4507          int ret;
> f5860992d Sakthivel K 2013-04-17  4508          u32 opc = OPC_INB_LOCAL_PHY_CONTROL;
> f5860992d Sakthivel K 2013-04-17  4509          memset(&payload, 0, sizeof(payload));
> 18e9bdf60 Viswas G    2017-09-19  4510          rc = pm8001_tag_alloc(pm8001_ha, &tag);
> 18e9bdf60 Viswas G    2017-09-19  4511          if (rc)
> 18e9bdf60 Viswas G    2017-09-19  4512                  return rc;
> f5860992d Sakthivel K 2013-04-17  4513          circularQ = &pm8001_ha->inbnd_q_tbl[0];
> 18e9bdf60 Viswas G    2017-09-19  4514          payload.tag = cpu_to_le32(tag);
> f5860992d Sakthivel K 2013-04-17  4515          payload.phyop_phyid =
> f5860992d Sakthivel K 2013-04-17  4516                  cpu_to_le32(((phy_op & 0xFF) << 8) | (phyId & 0xFF));
> 18e9bdf60 Viswas G    2017-09-19  4517          return pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0);
> f5860992d Sakthivel K 2013-04-17  4518  }
> f5860992d Sakthivel K 2013-04-17  4519
>
> :::::: The code at line 4507 was first introduced by commit
> :::::: f5860992db55c9e36b0f120dff73f0c34abe510d [SCSI] pm80xx: Added SPCv/ve specific hardware functionalities and relevant changes in common files
>
> :::::: TO: Sakthivel K <Sakthivel.SaravananKamalRaju@pmcs.com>
> :::::: CC: James Bottomley <JBottomley@Parallels.com>
>
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
diff mbox

Patch

diff --git a/drivers/scsi/pm8001/pm8001_hwi.c b/drivers/scsi/pm8001/pm8001_hwi.c
index 10546faac58c..bc4a6f649ec9 100644
--- a/drivers/scsi/pm8001/pm8001_hwi.c
+++ b/drivers/scsi/pm8001/pm8001_hwi.c
@@ -3198,11 +3198,13 @@  pm8001_mpi_get_nvmd_resp(struct pm8001_hba_info *pm8001_ha, void *piomb)
 
 int pm8001_mpi_local_phy_ctl(struct pm8001_hba_info *pm8001_ha, void *piomb)
 {
+	u32 tag;
 	struct local_phy_ctl_resp *pPayload =
 		(struct local_phy_ctl_resp *)(piomb + 4);
 	u32 status = le32_to_cpu(pPayload->status);
 	u32 phy_id = le32_to_cpu(pPayload->phyop_phyid) & ID_BITS;
 	u32 phy_op = le32_to_cpu(pPayload->phyop_phyid) & OP_BITS;
+	tag = le32_to_cpu(pPayload->tag);
 	if (status != 0) {
 		PM8001_MSG_DBG(pm8001_ha,
 			pm8001_printk("%x phy execute %x phy op failed!\n",
@@ -3211,6 +3213,7 @@  int pm8001_mpi_local_phy_ctl(struct pm8001_hba_info *pm8001_ha, void *piomb)
 		PM8001_MSG_DBG(pm8001_ha,
 			pm8001_printk("%x phy execute %x phy op success!\n",
 			phy_id, phy_op));
+	pm8001_tag_free(pm8001_ha, tag);
 	return 0;
 }
 
diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
index 2b26445d1b97..baab8a19c78e 100644
--- a/drivers/scsi/pm8001/pm80xx_hwi.c
+++ b/drivers/scsi/pm8001/pm80xx_hwi.c
@@ -4500,17 +4500,21 @@  static int pm80xx_chip_reg_dev_req(struct pm8001_hba_info *pm8001_ha,
 static int pm80xx_chip_phy_ctl_req(struct pm8001_hba_info *pm8001_ha,
 	u32 phyId, u32 phy_op)
 {
+	u32 tag;
+	int rc;
 	struct local_phy_ctl_req payload;
 	struct inbound_queue_table *circularQ;
 	int ret;
 	u32 opc = OPC_INB_LOCAL_PHY_CONTROL;
 	memset(&payload, 0, sizeof(payload));
+	rc = pm8001_tag_alloc(pm8001_ha, &tag);
+	if (rc)
+		return rc;
 	circularQ = &pm8001_ha->inbnd_q_tbl[0];
-	payload.tag = cpu_to_le32(1);
+	payload.tag = cpu_to_le32(tag);
 	payload.phyop_phyid =
 		cpu_to_le32(((phy_op & 0xFF) << 8) | (phyId & 0xFF));
-	ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0);
-	return ret;
+	return pm8001_mpi_build_cmd(pm8001_ha, circularQ, opc, &payload, 0);
 }
 
 static u32 pm80xx_chip_is_our_interupt(struct pm8001_hba_info *pm8001_ha)