Re: [PATCH] scsi: pm80xx: Free allocated tags after failure
From: Jinpu Wang
Date: Wed Jun 18 2025 - 11:18:04 EST
On Tue, Jun 17, 2025 at 11:05 PM Francisco Gutierrez
<frankramirez@xxxxxxxxxx> wrote:
>
> This change frees resources after an error is detected.
>
> Signed-off-by: Francisco Gutierrez <frankramirez@xxxxxxxxxx>
lgtm.
Acked-by: Jack Wang <jinpu.wang@xxxxxxxxx>
> ---
> drivers/scsi/pm8001/pm80xx_hwi.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
> index 5b373c53c0369..c4074f062d931 100644
> --- a/drivers/scsi/pm8001/pm80xx_hwi.c
> +++ b/drivers/scsi/pm8001/pm80xx_hwi.c
> @@ -4677,8 +4677,12 @@ pm80xx_chip_phy_start_req(struct pm8001_hba_info *pm8001_ha, u8 phy_id)
> &pm8001_ha->phy[phy_id].dev_sas_addr, SAS_ADDR_SIZE);
> payload.sas_identify.phy_id = phy_id;
>
> - return pm8001_mpi_build_cmd(pm8001_ha, 0, opcode, &payload,
> + ret = pm8001_mpi_build_cmd(pm8001_ha, 0, opcode, &payload,
> sizeof(payload), 0);
> + if (ret < 0)
> + pm8001_tag_free(pm8001_ha, tag);
> +
> + return ret;
> }
>
> /**
> @@ -4704,8 +4708,12 @@ static int pm80xx_chip_phy_stop_req(struct pm8001_hba_info *pm8001_ha,
> payload.tag = cpu_to_le32(tag);
> payload.phy_id = cpu_to_le32(phy_id);
>
> - return pm8001_mpi_build_cmd(pm8001_ha, 0, opcode, &payload,
> + ret = pm8001_mpi_build_cmd(pm8001_ha, 0, opcode, &payload,
> sizeof(payload), 0);
> + if (ret < 0)
> + pm8001_tag_free(pm8001_ha, tag);
> +
> + return ret;
> }
>
> /*
> --
> 2.50.0.rc2.696.g1fc2a0284f-goog
>