Because the return value of devtmpfs_*_node() and devtmpfs_submit_req()
are not used by their callers, change them into void functions.
Signed-off-by: Longlong Xia <xialonglong1@huawei.com>
---
drivers/base/base.h | 8 ++++----
drivers/base/devtmpfs.c | 20 +++++++++-----------
2 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/drivers/base/base.h b/drivers/base/base.h
index 2208af509ce8..ffb7321e39cf 100644
--- a/drivers/base/base.h
+++ b/drivers/base/base.h
@@ -198,11 +198,11 @@ extern void fw_devlink_drivers_done(void);
void device_pm_move_to_tail(struct device *dev);
#ifdef CONFIG_DEVTMPFS
-int devtmpfs_create_node(struct device *dev);
-int devtmpfs_delete_node(struct device *dev);
+void devtmpfs_create_node(struct device *dev);
+void devtmpfs_delete_node(struct device *dev);
#else
-static inline int devtmpfs_create_node(struct device *dev) { return 0; }
-static inline int devtmpfs_delete_node(struct device *dev) { return 0; }
+static inline void devtmpfs_create_node(struct device *dev) { }
+static inline void devtmpfs_delete_node(struct device *dev) { }
#endif
void software_node_notify(struct device *dev);
diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c
index 77ca64f708ce..3c4e61c99b77 100644
--- a/drivers/base/devtmpfs.c
+++ b/drivers/base/devtmpfs.c
@@ -103,7 +103,7 @@ static inline int is_blockdev(struct device *dev)
static inline int is_blockdev(struct device *dev) { return 0; }
#endif
-static int devtmpfs_submit_req(struct req *req, const char *tmp)
+static void devtmpfs_submit_req(struct req *req, const char *tmp)
{
init_completion(&req->done);
@@ -116,24 +116,22 @@ static int devtmpfs_submit_req(struct req *req, const char *tmp)
wait_for_completion(&req->done);
kfree(tmp);
-
- return req->err;
}
-int devtmpfs_create_node(struct device *dev)
+void devtmpfs_create_node(struct device *dev)
{
const char *tmp = NULL;
struct req req;
if (!thread)
- return 0;
+ return;
req.mode = 0;
req.uid = GLOBAL_ROOT_UID;
req.gid = GLOBAL_ROOT_GID;
req.name = device_get_devnode(dev, &req.mode, &req.uid, &req.gid, &tmp);
if (!req.name)
- return -ENOMEM;
+ return;
if (req.mode == 0)
req.mode = 0600;
@@ -144,25 +142,25 @@ int devtmpfs_create_node(struct device *dev)
req.dev = dev;
- return devtmpfs_submit_req(&req, tmp);
+ devtmpfs_submit_req(&req, tmp);
}
-int devtmpfs_delete_node(struct device *dev)
+void devtmpfs_delete_node(struct device *dev)
{
const char *tmp = NULL;
struct req req;
if (!thread)
- return 0;
+ return;
req.name = device_get_devnode(dev, NULL, NULL, NULL, &tmp);
if (!req.name)
- return -ENOMEM;
+ return;
req.mode = 0;
req.dev = dev;
- return devtmpfs_submit_req(&req, tmp);
+ devtmpfs_submit_req(&req, tmp);
}
static int dev_mkdir(const char *name, umode_t mode)
--
2.25.1
On Thu, Feb 02, 2023 at 03:32:03AM +0000, Longlong Xia wrote: > Because the return value of devtmpfs_*_node() and devtmpfs_submit_req() > are not used by their callers, change them into void functions. Why not just fix this up properly and have the callers handle the errors if they happen? Failures at this level should cause the device to not be registered, as you have found out. But only do this for devtmpfs_create_node(), there's no reason that devtmpfs_delete_node() needs to return a value as there's nothing we can do when cleaning things up on a remove path. So if you split this patch into half, I'll be glad to take that now while you work on fixing up the return path of devtmpfs_create_node(). thanks, greg k-h
© 2016 - 2025 Red Hat, Inc.