From patchwork Thu Apr 11 03:19:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhihao Cheng X-Patchwork-Id: 1922348 X-Patchwork-Delegate: richard@nod.at Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=nhyTqDAJ; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VFQBW39H7z1yYQ for ; Thu, 11 Apr 2024 13:28:03 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=hc+91DhN/wARuT5KcRS3JUkBMPpag6uPAEDxhbgcDgw=; b=nhyTqDAJv/5dFS QeRphJy3AP8vfUhjxU5ZdwCzKmFmiYPXs45Be8cpYC5QR+WxLAVYvbUIsYhWxcMTVkMiZz1uMa3KX DjiiiNWwfDSk1GDpIW3HL8r/be+cdnxof0Waq40BrnK5PVnmTi9MNW0ZWaQSHDnf8hV49Yvc+lgpl wMvyk1OGXCipLs7AFtNsEVRNV9b5/moa8MG19GXjcA/N3VPuGjkdcGXUe6Xl+rG9H0n0gJKNhDFfB 07R8S8amNMSeusk8sdX+F49m44sDEFkAPz3bsVgkH1ZuoJBDmoByqfGH6Y4KCdxJyUKu8JLs10JVw dqMzzMQNKtT5sLapeuUw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rul6M-0000000A9HX-2z9y; Thu, 11 Apr 2024 03:27:50 +0000 Received: from szxga05-in.huawei.com ([45.249.212.191]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rul6G-0000000A9E0-48qY for linux-mtd@lists.infradead.org; Thu, 11 Apr 2024 03:27:47 +0000 Received: from mail.maildlp.com (unknown [172.19.163.17]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4VFQ923Rjpz1GGdb; Thu, 11 Apr 2024 11:26:46 +0800 (CST) Received: from kwepemm600013.china.huawei.com (unknown [7.193.23.68]) by mail.maildlp.com (Postfix) with ESMTPS id 4D2541A0172; Thu, 11 Apr 2024 11:27:33 +0800 (CST) Received: from huawei.com (10.175.104.67) by kwepemm600013.china.huawei.com (7.193.23.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Thu, 11 Apr 2024 11:27:32 +0800 From: Zhihao Cheng To: , , , CC: , Subject: [PATCH v2 1/4] ubi: ubi_init: Fix missed debugfs cleanup in error handling path Date: Thu, 11 Apr 2024 11:19:00 +0800 Message-ID: <20240411031903.3050278-2-chengzhihao1@huawei.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240411031903.3050278-1-chengzhihao1@huawei.com> References: <20240411031903.3050278-1-chengzhihao1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.175.104.67] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm600013.china.huawei.com (7.193.23.68) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240410_202745_224906_218A17A9 X-CRM114-Status: GOOD ( 10.30 ) X-Spam-Score: -2.3 (--) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: The debugfs dir is created in ubi_init, but it is not destroyed in error handling path of ubi_init when ubi is loaded by inserting module (eg. attaching failure), which leads to subsequent ubi_init ca [...] Content analysis details: (-2.3 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_MSPIKE_H4 RBL: Very Good reputation (+4) [45.249.212.191 listed in wl.mailspike.net] -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [45.249.212.191 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The debugfs dir is created in ubi_init, but it is not destroyed in error handling path of ubi_init when ubi is loaded by inserting module (eg. attaching failure), which leads to subsequent ubi_init calls failed. Fix it by destroying debugfs dir in corresponding error handling path. Fixes: 927c145208b0 ("mtd: ubi: attach from device tree") Signed-off-by: Zhihao Cheng --- drivers/mtd/ubi/build.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index a7e3a6246c0e..7f95fd7968a8 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c @@ -1372,7 +1372,7 @@ static int __init ubi_init(void) /* See comment above re-ubi_is_module(). */ if (ubi_is_module()) - goto out_slab; + goto out_debugfs; } register_mtd_user(&ubi_mtd_notifier); @@ -1387,6 +1387,8 @@ static int __init ubi_init(void) out_mtd_notifier: unregister_mtd_user(&ubi_mtd_notifier); +out_debugfs: + ubi_debugfs_exit(); out_slab: kmem_cache_destroy(ubi_wl_entry_slab); out_dev_unreg: From patchwork Thu Apr 11 03:19:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhihao Cheng X-Patchwork-Id: 1922350 X-Patchwork-Delegate: richard@nod.at Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=OhyyAZGi; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VFQBX2GDvz1yY8 for ; Thu, 11 Apr 2024 13:28:04 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=/cPe37JY0hlAKvLUmlIdjVlOdTKdAMqrOR3EhAAH0i4=; b=OhyyAZGiowXNYq r3/r8/bHfTuqGHiSPWZlN7K/Q/2Y2VRCE/A5dgp2Yp6WriPzAcn409JEUGWjpKpyA5qy1aEyKFNFf 1FP1QQSOj83FtE5eYAJrwqtpiESQG5tF8PoTQWLqbTNDnb/4eEVsXPMkxYsd0Bs9mM2LpWFo8tw5V 1j9u6JPOpYqlSUyQuGhi2WfI0vqytypTZTImPsLdKeEf3hYd9cQeqCm61k1k9SV1uwxSdPrbkPjFw EwBxbn4bdXDBBdWWoUpyaEyXEG+P302in62FzznfrVcqPrFsLbJnH4cFQlq9rnOLVYq8Bn53hFR/Q wgeV51r4LlNYEUflDx4g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rul6L-0000000A9Gf-0HGi; Thu, 11 Apr 2024 03:27:49 +0000 Received: from szxga03-in.huawei.com ([45.249.212.189]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rul6G-0000000A9Dy-321X for linux-mtd@lists.infradead.org; Thu, 11 Apr 2024 03:27:46 +0000 Received: from mail.maildlp.com (unknown [172.19.88.194]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4VFQ7K08L2zNnZn; Thu, 11 Apr 2024 11:25:17 +0800 (CST) Received: from kwepemm600013.china.huawei.com (unknown [7.193.23.68]) by mail.maildlp.com (Postfix) with ESMTPS id DA6661403D2; Thu, 11 Apr 2024 11:27:33 +0800 (CST) Received: from huawei.com (10.175.104.67) by kwepemm600013.china.huawei.com (7.193.23.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Thu, 11 Apr 2024 11:27:33 +0800 From: Zhihao Cheng To: , , , CC: , Subject: [PATCH v2 2/4] ubi: ubi_init: Fix missed ubiblock cleanup in error handling path Date: Thu, 11 Apr 2024 11:19:01 +0800 Message-ID: <20240411031903.3050278-3-chengzhihao1@huawei.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240411031903.3050278-1-chengzhihao1@huawei.com> References: <20240411031903.3050278-1-chengzhihao1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.175.104.67] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm600013.china.huawei.com (7.193.23.68) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240410_202745_124029_6B293D39 X-CRM114-Status: GOOD ( 15.60 ) X-Spam-Score: -2.3 (--) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: The ubiblock_init called by ubi_init will register device number, but device number is not released in error handling path of ubi_init when ubi is loaded by inserting module (eg. attaching failure), w [...] Content analysis details: (-2.3 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [45.249.212.189 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org The ubiblock_init called by ubi_init will register device number, but device number is not released in error handling path of ubi_init when ubi is loaded by inserting module (eg. attaching failure), which leads to subsequent ubi_init calls failed by running out of device number (dmesg shows that "__register_blkdev: failed to get major for ubiblock"). Since ubiblock_init() registers notifier and invokes notification functions, so we can move it after ubi_init_attach() to fix the problem. Fixes: 927c145208b0 ("mtd: ubi: attach from device tree") Signed-off-by: Zhihao Cheng --- drivers/mtd/ubi/build.c | 51 +++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index 7f95fd7968a8..bc63fbf5e947 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c @@ -1263,9 +1263,21 @@ static struct mtd_notifier ubi_mtd_notifier = { .remove = ubi_notify_remove, }; +static void detach_mtd_devs(int count) +{ + int i; + + for (i = 0; i < count; i++) + if (ubi_devices[i]) { + mutex_lock(&ubi_devices_mutex); + ubi_detach_mtd_dev(ubi_devices[i]->ubi_num, 1); + mutex_unlock(&ubi_devices_mutex); + } +} + static int __init ubi_init_attach(void) { - int err, i, k; + int err, i; /* Attach MTD devices */ for (i = 0; i < mtd_devs; i++) { @@ -1317,12 +1329,7 @@ static int __init ubi_init_attach(void) return 0; out_detach: - for (k = 0; k < i; k++) - if (ubi_devices[k]) { - mutex_lock(&ubi_devices_mutex); - ubi_detach_mtd_dev(ubi_devices[k]->ubi_num, 1); - mutex_unlock(&ubi_devices_mutex); - } + detach_mtd_devs(i); return err; } #ifndef CONFIG_MTD_UBI_MODULE @@ -1366,15 +1373,6 @@ static int __init ubi_init(void) if (err) goto out_slab; - err = ubiblock_init(); - if (err) { - pr_err("UBI error: block: cannot initialize, error %d\n", err); - - /* See comment above re-ubi_is_module(). */ - if (ubi_is_module()) - goto out_debugfs; - } - register_mtd_user(&ubi_mtd_notifier); if (ubi_is_module()) { @@ -1383,11 +1381,21 @@ static int __init ubi_init(void) goto out_mtd_notifier; } + err = ubiblock_init(); + if (err) { + pr_err("UBI error: block: cannot initialize, error %d\n", err); + + /* See comment above re-ubi_is_module(). */ + if (ubi_is_module()) + goto out_detach; + } + return 0; +out_detach: + detach_mtd_devs(mtd_devs); out_mtd_notifier: unregister_mtd_user(&ubi_mtd_notifier); -out_debugfs: ubi_debugfs_exit(); out_slab: kmem_cache_destroy(ubi_wl_entry_slab); @@ -1403,17 +1411,10 @@ device_initcall(ubi_init); static void __exit ubi_exit(void) { - int i; - ubiblock_exit(); unregister_mtd_user(&ubi_mtd_notifier); - for (i = 0; i < UBI_MAX_DEVICES; i++) - if (ubi_devices[i]) { - mutex_lock(&ubi_devices_mutex); - ubi_detach_mtd_dev(ubi_devices[i]->ubi_num, 1); - mutex_unlock(&ubi_devices_mutex); - } + detach_mtd_devs(UBI_MAX_DEVICES); ubi_debugfs_exit(); kmem_cache_destroy(ubi_wl_entry_slab); misc_deregister(&ubi_ctrl_cdev); From patchwork Thu Apr 11 03:19:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhihao Cheng X-Patchwork-Id: 1922349 X-Patchwork-Delegate: richard@nod.at Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=FUyovdcO; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VFQBX0BmTz1yZL for ; Thu, 11 Apr 2024 13:28:04 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=rMq9pbF5VWf0muWIkINQyh1ui0rlfVi2iyaEqZSOKR8=; b=FUyovdcOOlaau9 yffN1re5dcZPTjOk+Vgg53q4tj6AS6BkapYEk/V+sRybVB7w0bh+MbWMV5g1/GFyw+JPMD/m9WNge 5NUFwelJELSCGj0YoFPSpx+oPFO3QwBEway6+WsPg9G1rGaeiVDLN1nnJfaZ6eqR9B14Y6ebfGHDn JK0jR6CqPIdIgOXVV1+qH648NUfNJZqHK4FNrGhufLtdC8jDi6CFsvTgWP1BVgwyhL7Yb9yxmI/2C MWHb6rgG2+JhMNt9wTNgiYBhL6inwUCKABBzKt/GK/noDoaXZd3V6jOjjtGvP9qFi72aD0/Y+hBVl LzhAZm2YMAmVXu9T6wCA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rul6N-0000000A9IW-4A3d; Thu, 11 Apr 2024 03:27:52 +0000 Received: from szxga02-in.huawei.com ([45.249.212.188]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rul6G-0000000A9E1-48mT for linux-mtd@lists.infradead.org; Thu, 11 Apr 2024 03:27:48 +0000 Received: from mail.maildlp.com (unknown [172.19.163.48]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4VFQ8r0LBrzShb4; Thu, 11 Apr 2024 11:26:36 +0800 (CST) Received: from kwepemm600013.china.huawei.com (unknown [7.193.23.68]) by mail.maildlp.com (Postfix) with ESMTPS id 7F64518007A; Thu, 11 Apr 2024 11:27:34 +0800 (CST) Received: from huawei.com (10.175.104.67) by kwepemm600013.china.huawei.com (7.193.23.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Thu, 11 Apr 2024 11:27:33 +0800 From: Zhihao Cheng To: , , , CC: , Subject: [PATCH v2 3/4] mtd: ubi: Ignore all debugfs initialisation failures Date: Thu, 11 Apr 2024 11:19:02 +0800 Message-ID: <20240411031903.3050278-4-chengzhihao1@huawei.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240411031903.3050278-1-chengzhihao1@huawei.com> References: <20240411031903.3050278-1-chengzhihao1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.175.104.67] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm600013.china.huawei.com (7.193.23.68) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240410_202745_428505_CFEF80CF X-CRM114-Status: GOOD ( 17.68 ) X-Spam-Score: -2.3 (--) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: From: Ben Hutchings Drivers should never stop initialising or probing because of a failure to create debugfs entries. Such failures are harmless and could be the intended result of setting the kernel parameter debugfs=of [...] Content analysis details: (-2.3 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [45.249.212.188 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H4 RBL: Very Good reputation (+4) [45.249.212.188 listed in wl.mailspike.net] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Ben Hutchings Drivers should never stop initialising or probing because of a failure to create debugfs entries. Such failures are harmless and could be the intended result of setting the kernel parameter debugfs=off. This was partially fixed in 2019, but some error checks were missed and another one was been added since. Signed-off-by: Ben Hutchings Fixes: 2a734bb8d502 ("UBI: use debugfs for the extra checks knobs") Fixes: c2d73ba892ea ("mtd: no need to check return value of ...") Fixes: 6931fb44858c ("ubi: Use the fault injection framework to enhance ...") Signed-off-by: Zhihao Cheng --- drivers/mtd/ubi/build.c | 10 ++-------- drivers/mtd/ubi/debug.c | 25 ++++++++++--------------- drivers/mtd/ubi/debug.h | 4 ++-- 3 files changed, 14 insertions(+), 25 deletions(-) diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index bc63fbf5e947..6d8212a51fec 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c @@ -1018,9 +1018,7 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num, if (err) goto out_detach; - err = ubi_debugfs_init_dev(ubi); - if (err) - goto out_uif; + ubi_debugfs_init_dev(ubi); ubi->bgt_thread = kthread_create(ubi_thread, ubi, "%s", ubi->bgt_name); if (IS_ERR(ubi->bgt_thread)) { @@ -1064,7 +1062,6 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num, out_debugfs: ubi_debugfs_exit_dev(ubi); -out_uif: uif_close(ubi); out_detach: ubi_wl_close(ubi); @@ -1369,9 +1366,7 @@ static int __init ubi_init(void) goto out_dev_unreg; } - err = ubi_debugfs_init(); - if (err) - goto out_slab; + ubi_debugfs_init(); register_mtd_user(&ubi_mtd_notifier); @@ -1397,7 +1392,6 @@ static int __init ubi_init(void) out_mtd_notifier: unregister_mtd_user(&ubi_mtd_notifier); ubi_debugfs_exit(); -out_slab: kmem_cache_destroy(ubi_wl_entry_slab); out_dev_unreg: misc_deregister(&ubi_ctrl_cdev); diff --git a/drivers/mtd/ubi/debug.c b/drivers/mtd/ubi/debug.c index d57f52bd2ff3..989744eb85a5 100644 --- a/drivers/mtd/ubi/debug.c +++ b/drivers/mtd/ubi/debug.c @@ -291,28 +291,25 @@ static void dfs_create_fault_entry(struct dentry *parent) /** * ubi_debugfs_init - create UBI debugfs directory. * - * Create UBI debugfs directory. Returns zero in case of success and a negative - * error code in case of failure. + * Try to create UBI debugfs directory. */ -int ubi_debugfs_init(void) +void ubi_debugfs_init(void) { if (!IS_ENABLED(CONFIG_DEBUG_FS)) - return 0; + return; dfs_rootdir = debugfs_create_dir("ubi", NULL); if (IS_ERR_OR_NULL(dfs_rootdir)) { int err = dfs_rootdir ? PTR_ERR(dfs_rootdir) : -ENODEV; - pr_err("UBI error: cannot create \"ubi\" debugfs directory, error %d\n", - err); - return err; + pr_warn("UBI error: cannot create \"ubi\" debugfs directory, error %d\n", + err); + return; } #ifdef CONFIG_MTD_UBI_FAULT_INJECTION dfs_create_fault_entry(dfs_rootdir); #endif - - return 0; } /** @@ -585,10 +582,9 @@ static const struct file_operations eraseblk_count_fops = { * ubi_debugfs_init_dev - initialize debugfs for an UBI device. * @ubi: UBI device description object * - * This function creates all debugfs files for UBI device @ubi. Returns zero in - * case of success and a negative error code in case of failure. + * This function tries to create all debugfs files for UBI device @ubi. */ -int ubi_debugfs_init_dev(struct ubi_device *ubi) +void ubi_debugfs_init_dev(struct ubi_device *ubi) { unsigned long ubi_num = ubi->ubi_num; struct ubi_debug_info *d = &ubi->dbg; @@ -596,13 +592,13 @@ int ubi_debugfs_init_dev(struct ubi_device *ubi) int n; if (!IS_ENABLED(CONFIG_DEBUG_FS)) - return 0; + return; n = snprintf(d->dfs_dir_name, UBI_DFS_DIR_LEN + 1, UBI_DFS_DIR_NAME, ubi->ubi_num); if (n > UBI_DFS_DIR_LEN) { /* The array size is too small */ - return -EINVAL; + return; } d->dfs_dir = debugfs_create_dir(d->dfs_dir_name, dfs_rootdir); @@ -653,7 +649,6 @@ int ubi_debugfs_init_dev(struct ubi_device *ubi) (void *)ubi_num, &dfs_fops); #endif - return 0; } /** diff --git a/drivers/mtd/ubi/debug.h b/drivers/mtd/ubi/debug.h index b2fd97548808..1dc430d3f482 100644 --- a/drivers/mtd/ubi/debug.h +++ b/drivers/mtd/ubi/debug.h @@ -47,9 +47,9 @@ void ubi_dump_aeb(const struct ubi_ainf_peb *aeb, int type); void ubi_dump_mkvol_req(const struct ubi_mkvol_req *req); int ubi_self_check_all_ff(struct ubi_device *ubi, int pnum, int offset, int len); -int ubi_debugfs_init(void); +void ubi_debugfs_init(void); void ubi_debugfs_exit(void); -int ubi_debugfs_init_dev(struct ubi_device *ubi); +void ubi_debugfs_init_dev(struct ubi_device *ubi); void ubi_debugfs_exit_dev(struct ubi_device *ubi); /** From patchwork Thu Apr 11 03:19:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhihao Cheng X-Patchwork-Id: 1922347 X-Patchwork-Delegate: richard@nod.at Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=zw/10gpf; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VFQBW2lp3z1yY8 for ; Thu, 11 Apr 2024 13:28:03 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=SrNWmeTE2reLNCfNWEDle6mgN+0HWP7OZSMBnufNgac=; b=zw/10gpfkGD0Qs ZKCw91WLX/c/Fnz8vVTFyFOdbM1cIE2X9xpcOeu9pdJQcZVpGATWqohGGC0qcActlgMaX3ibwcqU2 8Xllah8oQD/C1pJuiWiilii7vhEEZ/KJ6A6Vm8pb57XYYuUu+QwEywHcVyGs1hmRmx3DC3zzg1f1a FeOk0R2hcNSFBmTyr3U7lB74YNEM4S/Z777aOyn8EFn0FXWwxTmqyAq35v4jcQT7O0A3IqjCzUFEE 995S1fnyQ1P8g9qVN5+pDahwP+KOKszx3iePQXSm+lFne5PdhycywvAg9QxY7nwTI6sYCYOEtKg+i NRfIaMkWbLN/F1Wrdr8A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rul6K-0000000A9GJ-1Cka; Thu, 11 Apr 2024 03:27:48 +0000 Received: from szxga05-in.huawei.com ([45.249.212.191]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rul6G-0000000A9Dz-48vb for linux-mtd@lists.infradead.org; Thu, 11 Apr 2024 03:27:46 +0000 Received: from mail.maildlp.com (unknown [172.19.162.112]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4VFQ6f5T02z2NW6b; Thu, 11 Apr 2024 11:24:42 +0800 (CST) Received: from kwepemm600013.china.huawei.com (unknown [7.193.23.68]) by mail.maildlp.com (Postfix) with ESMTPS id 1698B1400D9; Thu, 11 Apr 2024 11:27:35 +0800 (CST) Received: from huawei.com (10.175.104.67) by kwepemm600013.china.huawei.com (7.193.23.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Thu, 11 Apr 2024 11:27:34 +0800 From: Zhihao Cheng To: , , , CC: , Subject: [PATCH v2 4/4] ubi: debugfs: Replace IS_ERR_OR_NULL with IS_ERR in error checking path Date: Thu, 11 Apr 2024 11:19:03 +0800 Message-ID: <20240411031903.3050278-5-chengzhihao1@huawei.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240411031903.3050278-1-chengzhihao1@huawei.com> References: <20240411031903.3050278-1-chengzhihao1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.175.104.67] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm600013.china.huawei.com (7.193.23.68) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240410_202745_237631_5C3B33B8 X-CRM114-Status: UNSURE ( 8.91 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -2.3 (--) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Function debugfs_create_dir will return error pointer rather than NULL if it fails, replace IS_ERR_OR_NULL with IS_ERR just like other places (eg. fault_create_debugfs_attr). Signed-off-by: Zhihao Cheng --- drivers/mtd/ubi/debug.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) Content analysis details: (-2.3 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [45.249.212.191 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H4 RBL: Very Good reputation (+4) [45.249.212.191 listed in wl.mailspike.net] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Function debugfs_create_dir will return error pointer rather than NULL if it fails, replace IS_ERR_OR_NULL with IS_ERR just like other places (eg. fault_create_debugfs_attr). Signed-off-by: Zhihao Cheng --- drivers/mtd/ubi/debug.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/mtd/ubi/debug.c b/drivers/mtd/ubi/debug.c index 989744eb85a5..3bcdf4e70a0a 100644 --- a/drivers/mtd/ubi/debug.c +++ b/drivers/mtd/ubi/debug.c @@ -248,11 +248,9 @@ static void dfs_create_fault_entry(struct dentry *parent) struct dentry *dir; dir = debugfs_create_dir("fault_inject", parent); - if (IS_ERR_OR_NULL(dir)) { - int err = dir ? PTR_ERR(dir) : -ENODEV; - + if (IS_ERR(dir)) { pr_warn("UBI error: cannot create \"fault_inject\" debugfs directory, error %d\n", - err); + (int)PTR_ERR(dir)); return; } @@ -299,11 +297,9 @@ void ubi_debugfs_init(void) return; dfs_rootdir = debugfs_create_dir("ubi", NULL); - if (IS_ERR_OR_NULL(dfs_rootdir)) { - int err = dfs_rootdir ? PTR_ERR(dfs_rootdir) : -ENODEV; - + if (IS_ERR(dfs_rootdir)) { pr_warn("UBI error: cannot create \"ubi\" debugfs directory, error %d\n", - err); + (int)PTR_ERR(dfs_rootdir)); return; }