]> www.infradead.org Git - users/hch/misc.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)
committerJakub Kicinski <kuba@kernel.org>
Tue, 7 Jan 2025 00:40:26 +0000 (16:40 -0800)
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>
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c

index b771c84cdd8951482021fcadf10e01f9519c774a..0ed26e3a28f45afba5a02bb611bff529431dc78f 100644 (file)
@@ -208,7 +208,7 @@ int bnxt_send_msg(struct bnxt_en_dev *edev,
 
        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);
@@ -220,6 +220,7 @@ int bnxt_send_msg(struct bnxt_en_dev *edev,
 
                memcpy(fw_msg->resp, resp, resp_len);
        }
+drop_req:
        hwrm_req_drop(bp, req);
        return rc;
 }