From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753366AbbJNBnm (ORCPT ); Tue, 13 Oct 2015 21:43:42 -0400 Received: from szxga03-in.huawei.com ([119.145.14.66]:24173 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752990AbbJNBnl (ORCPT ); Tue, 13 Oct 2015 21:43:41 -0400 From: Tan Xiaojun To: , , CC: , , Subject: [PATCH v2 for-next] EDAC: use edac_debugfs_remove_recursive instead of debugfs_remove Date: Wed, 14 Oct 2015 09:49:24 +0800 Message-ID: <1444787364-104353-1-git-send-email-tanxiaojun@huawei.com> X-Mailer: git-send-email 2.5.3 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.175.102.38] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020202.561DB34A.000A,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2013-05-26 15:14:31, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: a5eac07f75d05d3ccfd262433bad5560 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org debugfs_remove is used to remove a file or an empty directory from the debugfs filesystem, but mci->debugfs is not empty. This is not easily discovered, because debugfs_remove return nothing when failed. It can be test like below: 1)open EDAC config and open CONFIG_EDAC_DEBUG 2)insmod a edac_mc module (like i3000_edac or others in drivers/edac/) 3)rmmod this module 4)we can also see files under /sys/kernel/debug/edac/ like "fake_inject" Reported-by: Yun Wu (Abel) Signed-off-by: Tan Xiaojun --- drivers/edac/debugfs.c | 2 +- drivers/edac/edac_mc_sysfs.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/edac/debugfs.c b/drivers/edac/debugfs.c index 4864703..54d2f66 100644 --- a/drivers/edac/debugfs.c +++ b/drivers/edac/debugfs.c @@ -98,7 +98,7 @@ int edac_create_debugfs_nodes(struct mem_ctl_info *mci) mci->debugfs = parent; return 0; nomem: - debugfs_remove(mci->debugfs); + edac_debugfs_remove_recursive(mci->debugfs); return -ENOMEM; } diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c index 3929391..a75acea 100644 --- a/drivers/edac/edac_mc_sysfs.c +++ b/drivers/edac/edac_mc_sysfs.c @@ -976,7 +976,7 @@ void edac_remove_sysfs_mci_device(struct mem_ctl_info *mci) edac_dbg(0, "\n"); #ifdef CONFIG_EDAC_DEBUG - debugfs_remove(mci->debugfs); + edac_debugfs_remove_recursive(mci->debugfs); #endif #ifdef CONFIG_EDAC_LEGACY_SYSFS edac_delete_csrow_objects(mci); -- 2.5.3