On Wed, Feb 18, 2015 at 12:36 AM, Viswas G <Viswas.G@xxxxxxxxxxxxx> wrote: > tag is taken from the tag pool instead of using the hardcoded > tag value(1). > > Signed-off-by: Deepak Ukey <deepak.ukey@xxxxxxxxxxxxx> > Signed-off-by: Viswas G <Viswas.G@xxxxxxxxxxxxx> > --- > drivers/scsi/pm8001/pm8001_hwi.c | 3 +++ > drivers/scsi/pm8001/pm80xx_hwi.c | 10 +++++++--- > 2 files changed, 10 insertions(+), 3 deletions(-) > > 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) > -- > 2.12.3 > Thanks, Acked-by: Jack Wang <jinpu.wang@xxxxxxxxxxxxxxxx> -- Jack Wang Linux Kernel Developer ProfitBricks GmbH Greifswalder Str. 207 D - 10405 Berlin Tel: +49 30 577 008 042 Fax: +49 30 577 008 299 Email: jinpu.wang@xxxxxxxxxxxxxxxx URL: https://www.profitbricks.de Sitz der Gesellschaft: Berlin Registergericht: Amtsgericht Charlottenburg, HRB 125506 B Geschäftsführer: Achim Weiss