rapidio: fix an API misues when rio_add_net() fails

rio_add_net() calls device_register() and fails when device_register()
fails. Thus, put_device() should be used rather than kfree(). Add
"mport->net = NULL;" to avoid a use after free issue.

Link: https://lkml.kernel.org/r/20250227073409.3696854-1-haoxiang_li2024@163.com
Fixes: e8de370188d0 ("rapidio: add mport char device driver")
Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
Cc: Alexandre Bounine <alex.bou9@gmail.com>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Yang Yingliang <yangyingliang@huawei.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by Haoxiang Li and committed by Andrew Morton b2ef51c7 88f5a9a9

+2 -1
+2 -1
drivers/rapidio/devices/rio_mport_cdev.c
··· 1742 err = rio_add_net(net); 1743 if (err) { 1744 rmcd_debug(RDEV, "failed to register net, err=%d", err); 1745 - kfree(net); 1746 goto cleanup; 1747 } 1748 }
··· 1742 err = rio_add_net(net); 1743 if (err) { 1744 rmcd_debug(RDEV, "failed to register net, err=%d", err); 1745 + put_device(&net->dev); 1746 + mport->net = NULL; 1747 goto cleanup; 1748 } 1749 }