]> 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>
Fri, 17 Jan 2025 12:34:38 +0000 (13:34 +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 2e54bf4fc7a7d6d7c374df5e59d5dade145324cb..c0f67db641c3e5ac097512f7b21b5c3609d5c21f 100644 (file)
@@ -252,7 +252,7 @@ static int bnxt_send_msg(struct bnxt_en_dev *edev, unsigned 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, unsigned int ulp_id,
 
                memcpy(fw_msg->resp, resp, resp_len);
        }
+drop_req:
        hwrm_req_drop(bp, req);
        return rc;
 }