]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
rapidio: replace rio_free_net() with kfree() in rio_scan_alloc_net()
authorHaoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
Wed, 21 Jan 2026 01:35:08 +0000 (09:35 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 1 Feb 2026 00:16:07 +0000 (16:16 -0800)
When idtab allocation fails, net is not registered with rio_add_net() yet,
so kfree(net) is sufficient to release the memory.  Set mport->net to NULL
to avoid dangling pointer.

Link: https://lkml.kernel.org/r/20260121013508.195836-1-lihaoxiang@isrc.iscas.ac.cn
Fixes: e6b585ca6e81 ("rapidio: move net allocation into core code")
Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Alexandre Bounine <alex.bou9@gmail.com>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/rapidio/rio-scan.c

index c12941f71e2cbaef593c43987fe840c9233ccfd8..dcd6619a4b0277decdc95218ce1a6f7a5107bb0c 100644 (file)
@@ -854,7 +854,8 @@ static struct rio_net *rio_scan_alloc_net(struct rio_mport *mport,
 
                if (idtab == NULL) {
                        pr_err("RIO: failed to allocate destID table\n");
-                       rio_free_net(net);
+                       kfree(net);
+                       mport->net = NULL;
                        net = NULL;
                } else {
                        net->enum_data = idtab;