From: Martin Wilck mwilck@suse.com
[ Upstream commit edbd56472a636ab396f5ee6783e8438fa725a6ee ]
In qla2x00_alloc_fw_dump(), an existing EFT buffer (e.g. from previous invocation of qla2x00_alloc_offload_mem()) is freed. The buffer is then re-allocated, but without setting the eft and eft_dma fields to the new values.
Fixes: a28d9e4ef997 ("scsi: qla2xxx: Add support for multiple fwdump templates/segments") Cc: Joe Carnuccio joe.carnuccio@cavium.com Cc: Quinn Tran qutran@marvell.com Cc: Himanshu Madhani hmadhani@marvell.com Cc: Bart Van Assche bvanassche@acm.org Signed-off-by: Martin Wilck mwilck@suse.com Tested-by: Himanshu Madhani hmadhani@marvell.com Reviewed-by: Himanshu Madhani hmadhani@marvell.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/scsi/qla2xxx/qla_init.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index bcd3411fc6be8..f4ed061b96886 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -3317,6 +3317,8 @@ try_eft: ql_dbg(ql_dbg_init, vha, 0x00c3, "Allocated (%d KB) EFT ...\n", EFT_SIZE / 1024); eft_size = EFT_SIZE; + ha->eft_dma = tc_dma; + ha->eft = tc; }
if (IS_QLA27XX(ha) || IS_QLA28XX(ha)) {