From nobody Sat Sep 13 13:14:07 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 815A0C61DA4 for ; Thu, 2 Feb 2023 03:32:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231874AbjBBDcj (ORCPT ); Wed, 1 Feb 2023 22:32:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231705AbjBBDcc (ORCPT ); Wed, 1 Feb 2023 22:32:32 -0500 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4DEC335BF for ; Wed, 1 Feb 2023 19:32:31 -0800 (PST) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4P6kqh69FBzfYwr; Thu, 2 Feb 2023 11:32:16 +0800 (CST) Received: from localhost.localdomain (10.175.112.125) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Thu, 2 Feb 2023 11:32:26 +0800 From: Longlong Xia To: CC: , , , , , Longlong Xia Subject: [PATCH -next 1/3] devtmpfs: convert to pr_fmt Date: Thu, 2 Feb 2023 03:32:01 +0000 Message-ID: <20230202033203.1239239-2-xialonglong1@huawei.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230202033203.1239239-1-xialonglong1@huawei.com> References: <20230202033203.1239239-1-xialonglong1@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.175.112.125] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Use the pr_fmt() macro to prefix all the output with "devtmpfs: ". while at it, convert printk() to pr_(). Signed-off-by: Longlong Xia --- drivers/base/devtmpfs.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c index 03e8a95f1f35..ae72d4ba8547 100644 --- a/drivers/base/devtmpfs.c +++ b/drivers/base/devtmpfs.c @@ -13,6 +13,8 @@ * overwrite the default setting if needed. */ =20 +#define pr_fmt(fmt) "devtmpfs: " fmt + #include #include #include @@ -376,9 +378,9 @@ int __init devtmpfs_mount(void) =20 err =3D init_mount("devtmpfs", "dev", "devtmpfs", DEVTMPFS_MFLAGS, NULL); if (err) - printk(KERN_INFO "devtmpfs: error mounting %i\n", err); + pr_info("error mounting %d\n", err); else - printk(KERN_INFO "devtmpfs: mounted\n"); + pr_info("mounted\n"); return err; } =20 @@ -460,14 +462,12 @@ int __init devtmpfs_init(void) =20 mnt =3D vfs_kern_mount(&internal_fs_type, 0, "devtmpfs", opts); if (IS_ERR(mnt)) { - printk(KERN_ERR "devtmpfs: unable to create devtmpfs %ld\n", - PTR_ERR(mnt)); + pr_err("unable to create devtmpfs %ld\n", PTR_ERR(mnt)); return PTR_ERR(mnt); } err =3D register_filesystem(&dev_fs_type); if (err) { - printk(KERN_ERR "devtmpfs: unable to register devtmpfs " - "type %i\n", err); + pr_err("unable to register devtmpfs type %d\n", err); return err; } =20 @@ -480,12 +480,12 @@ int __init devtmpfs_init(void) } =20 if (err) { - printk(KERN_ERR "devtmpfs: unable to create devtmpfs %i\n", err); + pr_err("unable to create devtmpfs %d\n", err); unregister_filesystem(&dev_fs_type); thread =3D NULL; return err; } =20 - printk(KERN_INFO "devtmpfs: initialized\n"); + pr_info("initialized\n"); return 0; } --=20 2.25.1 From nobody Sat Sep 13 13:14:07 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B66A2C61DA4 for ; Thu, 2 Feb 2023 03:32:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231612AbjBBDcb (ORCPT ); Wed, 1 Feb 2023 22:32:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58552 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230444AbjBBDca (ORCPT ); Wed, 1 Feb 2023 22:32:30 -0500 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9697524C98 for ; Wed, 1 Feb 2023 19:32:29 -0800 (PST) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.56]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4P6knX6xkCz16NJr; Thu, 2 Feb 2023 11:30:24 +0800 (CST) Received: from localhost.localdomain (10.175.112.125) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Thu, 2 Feb 2023 11:32:27 +0800 From: Longlong Xia To: CC: , , , , , Longlong Xia Subject: [PATCH -next 2/3] devtmpfs: add debug info to handle() Date: Thu, 2 Feb 2023 03:32:02 +0000 Message-ID: <20230202033203.1239239-3-xialonglong1@huawei.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230202033203.1239239-1-xialonglong1@huawei.com> References: <20230202033203.1239239-1-xialonglong1@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.175.112.125] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The devtmpfs_*_node() are used to mount/unmount devices to /dev, but their callers don't check their return value, so we don't know the reason for the failure. Let's add some debug info in handle() to help users know why failed. Signed-off-by: Longlong Xia --- drivers/base/devtmpfs.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c index ae72d4ba8547..77ca64f708ce 100644 --- a/drivers/base/devtmpfs.c +++ b/drivers/base/devtmpfs.c @@ -389,10 +389,18 @@ static __initdata DECLARE_COMPLETION(setup_done); static int handle(const char *name, umode_t mode, kuid_t uid, kgid_t gid, struct device *dev) { + int ret; + if (mode) - return handle_create(name, mode, uid, gid, dev); + ret =3D handle_create(name, mode, uid, gid, dev); else - return handle_remove(name, dev); + ret =3D handle_remove(name, dev); + + if (ret) + pr_err_ratelimited("failed to %s %s, ret =3D %d\n", + mode ? "create" : "remove", name, ret); + + return ret; } =20 static void __noreturn devtmpfs_work_loop(void) --=20 2.25.1 From nobody Sat Sep 13 13:14:07 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20C53C636D3 for ; Thu, 2 Feb 2023 03:32:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231862AbjBBDch (ORCPT ); Wed, 1 Feb 2023 22:32:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231624AbjBBDcb (ORCPT ); Wed, 1 Feb 2023 22:32:31 -0500 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8ECCD24C9D for ; Wed, 1 Feb 2023 19:32:30 -0800 (PST) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4P6knX5rsYznVxv; Thu, 2 Feb 2023 11:30:24 +0800 (CST) Received: from localhost.localdomain (10.175.112.125) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Thu, 2 Feb 2023 11:32:28 +0800 From: Longlong Xia To: CC: , , , , , Longlong Xia Subject: [PATCH -next 3/3] devtmpfs: remove return value of devtmpfs_*_node() & devtmpfs_submit_req() Date: Thu, 2 Feb 2023 03:32:03 +0000 Message-ID: <20230202033203.1239239-4-xialonglong1@huawei.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230202033203.1239239-1-xialonglong1@huawei.com> References: <20230202033203.1239239-1-xialonglong1@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.175.112.125] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 --- 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); =20 #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 =20 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 =20 -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); =20 @@ -116,24 +116,22 @@ static int devtmpfs_submit_req(struct req *req, const= char *tmp) wait_for_completion(&req->done); =20 kfree(tmp); - - return req->err; } =20 -int devtmpfs_create_node(struct device *dev) +void devtmpfs_create_node(struct device *dev) { const char *tmp =3D NULL; struct req req; =20 if (!thread) - return 0; + return; =20 req.mode =3D 0; req.uid =3D GLOBAL_ROOT_UID; req.gid =3D GLOBAL_ROOT_GID; req.name =3D device_get_devnode(dev, &req.mode, &req.uid, &req.gid, &tmp); if (!req.name) - return -ENOMEM; + return; =20 if (req.mode =3D=3D 0) req.mode =3D 0600; @@ -144,25 +142,25 @@ int devtmpfs_create_node(struct device *dev) =20 req.dev =3D dev; =20 - return devtmpfs_submit_req(&req, tmp); + devtmpfs_submit_req(&req, tmp); } =20 -int devtmpfs_delete_node(struct device *dev) +void devtmpfs_delete_node(struct device *dev) { const char *tmp =3D NULL; struct req req; =20 if (!thread) - return 0; + return; =20 req.name =3D device_get_devnode(dev, NULL, NULL, NULL, &tmp); if (!req.name) - return -ENOMEM; + return; =20 req.mode =3D 0; req.dev =3D dev; =20 - return devtmpfs_submit_req(&req, tmp); + devtmpfs_submit_req(&req, tmp); } =20 static int dev_mkdir(const char *name, umode_t mode) --=20 2.25.1