scsi: mpi3mr: Fix admin queue memory leak upon soft reset
authorRanjan Kumar <ranjan.kumar@broadcom.com>
Thu, 16 Mar 2023 11:02:03 +0000 (16:32 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 17 Mar 2023 03:54:28 +0000 (23:54 -0400)
After a soft reset, while setting up admin queue pairs, the driver
initially sets admin request base and admin reply base addresses to
NULL. This leads to DMA memory pointed by these pointers getting leaked.

Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com>
Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
Link: https://lore.kernel.org/r/20230316110209.60145-3-ranjan.kumar@broadcom.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mpi3mr/mpi3mr_fw.c

index 758f7ca9e0ee803bad899d35fef7bbd04b222f69..25ac3bc597f536d26c1070cd7e31fb9f7a308830 100644 (file)
@@ -2597,14 +2597,12 @@ static int mpi3mr_setup_admin_qpair(struct mpi3mr_ioc *mrioc)
        mrioc->num_admin_req = mrioc->admin_req_q_sz /
            MPI3MR_ADMIN_REQ_FRAME_SZ;
        mrioc->admin_req_ci = mrioc->admin_req_pi = 0;
-       mrioc->admin_req_base = NULL;
 
        mrioc->admin_reply_q_sz = MPI3MR_ADMIN_REPLY_Q_SIZE;
        mrioc->num_admin_replies = mrioc->admin_reply_q_sz /
            MPI3MR_ADMIN_REPLY_FRAME_SZ;
        mrioc->admin_reply_ci = 0;
        mrioc->admin_reply_ephase = 1;
-       mrioc->admin_reply_base = NULL;
 
        if (!mrioc->admin_req_base) {
                mrioc->admin_req_base = dma_alloc_coherent(&mrioc->pdev->dev,