From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751997AbeAHFQ3 (ORCPT + 1 other); Mon, 8 Jan 2018 00:16:29 -0500 Received: from mailout1.samsung.com ([203.254.224.24]:48838 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750883AbeAHFQ1 (ORCPT ); Mon, 8 Jan 2018 00:16:27 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.samsung.com 20180108051625epoutp01354a9284aa9ba92e0991637224f0d434~HveOofo682694326943epoutp01J X-AuditID: b6c32a4b-cdfff700000011c1-3f-5a52fea80ef2 From: Namit Gupta To: rostedt@goodmis.org, jeyu@kernel.org Cc: mingo@redhat.com, linux-kernel@vger.kernel.org, pankaj.m@samsung.com, a.sahrawat@samsung.com, Namit Gupta Subject: [PATCH v3] ftrace/module: Move ftrace_release_mod() to ddebug_cleanup label Date: Mon, 8 Jan 2018 10:41:21 +0530 Message-Id: <1515388281-7941-1-git-send-email-gupta.namit@samsung.com> X-Mailer: git-send-email 1.9.1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrMKsWRmVeSWpSXmKPExsWy7bCmhu6Kf0FRBoems1lc3J1qcfDAaVaL RcfWMllc3jWHzeLSgQVMFvfebGWy2NfxgMmB3aNl3y12j02rOtk83u+7yubRt2UVo8fnTXIB rFGpNhmpiSmpRQqpecn5KZl56bZK3sHxzvGmZgaGuoaWFuZKCnmJuam2Si4+AbpumTlAVygp lCXmlAKFAhKLi5X07WyK8ktLUhUy8otLbJWiDQ2N9AwNzPWMjIz0TExjrYxMgUoSUjO6D3AX TOeteP73CXMDYwN3FyMnh4SAicTD+UsYuxi5OIQEdjNKbN7RwgzhfGKU2L7mFZTzjVFi9bYj rDAtL/5PY4NI7GWUeNfxD6rqC6PElEczGEGq2AS0Jbb9nwyU4OAQEdCQWNlTDVLDLNDJKLFy 3ktmkBphgTCJeZ9+gE1lEVCVePvuGVgvr4CbxP6zP5kgtslJnDw2GWrzX1aJg905ELaLxPcH W5ghbGGJV8e3sEPYUhIv+9vYQZZJCPQzSsyYtBrKWc8o8alhNwtElb3EgxtH2UGuYxbQlFi/ Sx/ElBCwlTh7XxSkglmAT6L39xMmiDCvREebEESjqsSOq0fYIcLSErOXG0CEPSROP53IBmE7 Spw5fhnMFhKIlXi64xLbBEa5WQirFjAyrmKUTC0ozk1PLTYtMM5LLdcrTswtLs1L10vOz93E CE5gWt47GDed8znEKMDBqMTDy9AfFCXEmlhWXJl7iFGCg1lJhDfwF1CINyWxsiq1KD++qDQn tfgQoykwKCcyS4km5wOTa15JvKGJpYGJmZm5oYGBpYmSOK9joEuUkEB6YklqdmpqQWoRTB8T B6dUA2NC1TTvGQeba+ptqp7KCPDeMbe2aUu54u75cmdPQMiufVdUn/2IP+b1yMXz/QSNS03e wudvLuGdusIz6PndzytCXLMnXZ7Xbh6WNd9p26nLLK8zJA3Xvj7H8u9o4sJggw2FetpR04Sv vjDfEXaK1Wi5fbCd+5ast3Yzold7Of27fssv+sg2+cVKLMUZiYZazEXFiQCmubqVdgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgluLIzCtJLcpLzFFi42LZdlhJXnf5v6Aog66JMhYXd6daHDxwmtVi 0bG1TBaXd81hs7h0YAGTxb03W5ks9nU8YHJg92jZd4vdY9OqTjaP9/uusnn0bVnF6PF5k1wA axSXTUpqTmZZapG+XQJXRvcB7oLpvBXP/z5hbmBs4O5i5OSQEDCRePF/GlsXIxeHkMBuRomm WW+ZIRLSEhObv0DZwhIr/z1nhyj6xCix68FrNpAEm4C2xLb/k4GKODhEBLQkJreEgZjMAv2M Eq85QSqEBUIkDrXeYQKxWQRUJd6+e8YIYvMKuEnsP/uTCWK8nMTJY5NZJzDyLGBkWMUomVpQ nJueW2xYYJiXWq5XnJhbXJqXrpecn7uJERw+Wpo7GC8viT/EKMDBqMTDy9AfFCXEmlhWXJl7 iFGCg1lJhDfwF1CINyWxsiq1KD++qDQntfgQozQHi5I479O8Y5FCAumJJanZqakFqUUwWSYO TqkGRv6HR+pDnxlParK/a3nggeU1Lamn/TJ+J5fIhN1me5201kX6qYnO3w0WoYxvWzy6VG5y f+zz0LkcxvV8NsMlrbI3glJl+4SNvigd5ktbaay7cEFEgKtAfayYPf/ZVdrml+75zswTmJ1Y nDg1eN+uzbah8Qqvi4xUmf5b9/nU8G+yuHXVMileiaU4I9FQi7moOBEAh+D2MBsCAAA= X-CMS-MailID: 20180108051623epcas5p1a2b9d68d83fd54937d71e3d726e36d38 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-MTR: 20180108051623epcas5p1a2b9d68d83fd54937d71e3d726e36d38 CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20180108051623epcas5p1a2b9d68d83fd54937d71e3d726e36d38 X-RootMTR: 20180108051623epcas5p1a2b9d68d83fd54937d71e3d726e36d38 References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: ftrace_module_init happen after dynamic_debug_setup, it is desired that cleanup should be called after this label however in current implementation it is called in free module label,ie:even though ftrace in not initialized, from so many fail case ftrace_release_mod() will be called and unnecessary traverse the whole list. In below patch we moved ftrace_release_mod() from free_module label to ddebug_cleanup label. that is the best possible location, other solution is to make new label to ftrace_release_mod() but since ftrace_module_init() is not return with minimum changes it should be in ddebug_cleanup label. Signed-off-by: Namit Gupta --- kernel/module.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/kernel/module.c b/kernel/module.c index de66ec8..e81a6d7 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -3779,6 +3779,7 @@ static int load_module(struct load_info *info, const char __user *uargs, module_disable_nx(mod); ddebug_cleanup: + ftrace_release_mod(mod); dynamic_debug_remove(mod, info->debug); synchronize_sched(); kfree(mod->args); @@ -3798,12 +3799,6 @@ static int load_module(struct load_info *info, const char __user *uargs, synchronize_sched(); mutex_unlock(&module_mutex); free_module: - /* - * Ftrace needs to clean up what it initialized. - * This does nothing if ftrace_module_init() wasn't called, - * but it must be called outside of module_mutex. - */ - ftrace_release_mod(mod); /* Free lock-classes; relies on the preceding sync_rcu() */ lockdep_free_key_range(mod->core_layout.base, mod->core_layout.size); -- 1.9.1