Skip to content

Commit c0b7da1

Browse files
Frankenweenmartinkpetersen
authored andcommitted
scsi: qla2xxx: Completely fix fcport double free
In qla24xx_els_dcmd_iocb() sp->free is set to qla2x00_els_dcmd_sp_free(). When an error happens, this function is called by qla2x00_sp_release(), when kref_put() releases the first and the last reference. qla2x00_els_dcmd_sp_free() frees fcport by calling qla2x00_free_fcport(). Doing it one more time after kref_put() is a bad idea. Fixes: 82f522a ("scsi: qla2xxx: Fix double free of fcport") Fixes: 4895009 ("scsi: qla2xxx: Prevent command send on chip reset") Signed-off-by: Vladimir Riabchun <ferr.lambarginio@gmail.com> Signed-off-by: Farhat Abbas <fabbas@cloudlinux.com> Link: https://patch.msgid.link/aYsDln9NFQQsPDgg@vova-pc Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
1 parent b0bd84c commit c0b7da1

1 file changed

Lines changed: 0 additions & 2 deletions

File tree

drivers/scsi/qla2xxx/qla_iocb.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2751,7 +2751,6 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode,
27512751
if (!elsio->u.els_logo.els_logo_pyld) {
27522752
/* ref: INIT */
27532753
kref_put(&sp->cmd_kref, qla2x00_sp_release);
2754-
qla2x00_free_fcport(fcport);
27552754
return QLA_FUNCTION_FAILED;
27562755
}
27572756

@@ -2776,7 +2775,6 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode,
27762775
if (rval != QLA_SUCCESS) {
27772776
/* ref: INIT */
27782777
kref_put(&sp->cmd_kref, qla2x00_sp_release);
2779-
qla2x00_free_fcport(fcport);
27802778
return QLA_FUNCTION_FAILED;
27812779
}
27822780

0 commit comments

Comments
 (0)