]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
bnxt_en: Fix possible memory leak when hwrm_req_replace fails
authorKalesh AP <kalesh-anakkur.purayil@broadcom.com>
Sat, 4 Jan 2025 04:38:47 +0000 (20:38 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 Jan 2025 16:15:49 +0000 (17:15 +0100)
[ Upstream commit c8dafb0e4398dacc362832098a04b97da3b0395b ]

When hwrm_req_replace() fails, the driver is not invoking bnxt_req_drop()
which could cause a memory leak.

Fixes: bbf33d1d9805 ("bnxt_en: update all firmware calls to use the new APIs")
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20250104043849.3482067-2-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c

index fde0c3e8ac57ca54384ed178fd724cadeffe652a..871f695e7076041095c05819710b1a84be94b1f6 100644 (file)
@@ -252,7 +252,7 @@ static int bnxt_send_msg(struct bnxt_en_dev *edev, int ulp_id,
 
        rc = hwrm_req_replace(bp, req, fw_msg->msg, fw_msg->msg_len);
        if (rc)
-               return rc;
+               goto drop_req;
 
        hwrm_req_timeout(bp, req, fw_msg->timeout);
        resp = hwrm_req_hold(bp, req);
@@ -264,6 +264,7 @@ static int bnxt_send_msg(struct bnxt_en_dev *edev, int ulp_id,
 
                memcpy(fw_msg->resp, resp, resp_len);
        }
+drop_req:
        hwrm_req_drop(bp, req);
        return rc;
 }