]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
rapidio: add check for rio_add_net() in rio_scan_alloc_net()
authorHaoxiang Li <haoxiang_li2024@163.com>
Thu, 27 Feb 2025 04:11:31 +0000 (12:11 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 6 Mar 2025 05:36:19 +0000 (21:36 -0800)
The return value of rio_add_net() should be checked.  If it fails,
put_device() should be called to free the memory and give up the reference
initialized in rio_add_net().

Link: https://lkml.kernel.org/r/20250227041131.3680761-1-haoxiang_li2024@163.com
Fixes: e6b585ca6e81 ("rapidio: move net allocation into core code")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
Cc: Alexandre Bounine <alex.bou9@gmail.com>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Dan Carpenter <dan.carpenter@linaro.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/rapidio/rio-scan.c

index fdcf742b2adbcb733a2efe006839324824b36b67..c12941f71e2cbaef593c43987fe840c9233ccfd8 100644 (file)
@@ -871,7 +871,10 @@ static struct rio_net *rio_scan_alloc_net(struct rio_mport *mport,
                dev_set_name(&net->dev, "rnet_%d", net->id);
                net->dev.parent = &mport->dev;
                net->dev.release = rio_scan_release_dev;
-               rio_add_net(net);
+               if (rio_add_net(net)) {
+                       put_device(&net->dev);
+                       net = NULL;
+               }
        }
 
        return net;