drivers/scsi/pm8001/pm80xx_hwi.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
This change frees resources after an error is detected.
Signed-off-by: Francisco Gutierrez <frankramirez@google.com>
---
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
On Tue, 17 Jun 2025 21:04:43 +0000, Francisco Gutierrez wrote: > This change frees resources after an error is detected. > > Applied to 6.17/scsi-queue, thanks! [1/1] scsi: pm80xx: Free allocated tags after failure https://git.kernel.org/mkp/scsi/c/258a0a196217 -- Martin K. Petersen Oracle Linux Engineering
Francisco, > This change frees resources after an error is detected. Applied to 6.17/scsi-staging, thanks! -- Martin K. Petersen
On Tue, Jun 17, 2025 at 11:05 PM Francisco Gutierrez <frankramirez@google.com> wrote: > > This change frees resources after an error is detected. > > Signed-off-by: Francisco Gutierrez <frankramirez@google.com> lgtm. Acked-by: Jack Wang <jinpu.wang@ionos.com> > --- > 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 >
© 2016 - 2025 Red Hat, Inc.