]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
fwctl/mlx5: Fix memory alloc/free in mlx5ctl_fw_rpc()
authorAkhilesh Patil <akhilesh@ee.iitb.ac.in>
Sat, 16 Aug 2025 06:19:54 +0000 (11:49 +0530)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 18 Aug 2025 23:52:17 +0000 (20:52 -0300)
Use kvfree() to free memory allocated by kvzalloc() instead of kfree().
Avoid potential memory management issue considering kvzalloc() can
internally choose to use either kmalloc() or vmalloc() based on memory
request and current system memory state. Hence, use more appropriate
kvfree() which automatically determines correct free method to avoid
potential hard to debug memory issues.  Fix this issue discovered by
running spatch static analysis tool using coccinelle script -
scripts/coccinelle/api/kfree_mismatch.cocci

Fixes: 52929c2142041 ("fwctl/mlx5: Support for communicating with mlx5 fw")
Link: https://patch.msgid.link/r/aKAjCoF9cT3VEbSE@bhairav-test.ee.iitb.ac.in
Signed-off-by: Akhilesh Patil <akhilesh@ee.iitb.ac.in>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Alison Schofield <alison.schofield@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/fwctl/mlx5/main.c

index f93aa0cecdb978f9b8fbb254dc9521da9fd25511..4b379f695eb73d510e7f5899f25f6735d854bb13 100644 (file)
@@ -345,7 +345,7 @@ static void *mlx5ctl_fw_rpc(struct fwctl_uctx *uctx, enum fwctl_rpc_scope scope,
         */
        if (ret && ret != -EREMOTEIO) {
                if (rpc_out != rpc_in)
-                       kfree(rpc_out);
+                       kvfree(rpc_out);
                return ERR_PTR(ret);
        }
        return rpc_out;