Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5e85f6df authored by Quinn Tran's avatar Quinn Tran Committed by Martin K. Petersen
Browse files

scsi: qla2xxx: Prevent memory leak for CT req/rsp allocation



This patch fixes memory leak by releasing DMA memory in case CT request and
response allocation fails.

Signed-off-by: default avatarQuinn Tran <qtran@marvall.com>
Signed-off-by: default avatarHimanshu Madhani <hmadhani@marvell.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 97a93cea
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -4157,7 +4157,8 @@ int qla24xx_async_gpnft(scsi_qla_host_t *vha, u8 fc4_type, srb_t *sp)
			spin_lock_irqsave(&vha->work_lock, flags);
			vha->scan.scan_flags &= ~SF_SCANNING;
			spin_unlock_irqrestore(&vha->work_lock, flags);
			goto done_free_sp;
			qla2x00_rel_sp(sp);
			return rval;
		}
		sp->u.iocb_cmd.u.ctarg.req_size = GPN_FT_REQ_SIZE;

@@ -4175,7 +4176,13 @@ int qla24xx_async_gpnft(scsi_qla_host_t *vha, u8 fc4_type, srb_t *sp)
			spin_lock_irqsave(&vha->work_lock, flags);
			vha->scan.scan_flags &= ~SF_SCANNING;
			spin_unlock_irqrestore(&vha->work_lock, flags);
			goto done_free_sp;
			dma_free_coherent(&vha->hw->pdev->dev,
			    sp->u.iocb_cmd.u.ctarg.req_allocated_size,
			    sp->u.iocb_cmd.u.ctarg.req,
			    sp->u.iocb_cmd.u.ctarg.req_dma);
			sp->u.iocb_cmd.u.ctarg.req = NULL;
			qla2x00_rel_sp(sp);
			return rval;
		}
		sp->u.iocb_cmd.u.ctarg.rsp_size = rspsz;