From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757181AbdKOJvx (ORCPT ); Wed, 15 Nov 2017 04:51:53 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:14286 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752126AbdKOJvr (ORCPT ); Wed, 15 Nov 2017 04:51:47 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20171115095146epoutp03a5a9c3d9be735b7ab46d3b57b0bdd585~3OZOW13v82054920549epoutp03c X-AuditID: b6c32a4b-eebff70000001126-e8-5a0c0e318a17 From: Namit Gupta To: rostedt@goodmis.org, mingo@redhat.com, linux-kernel@vger.kernel.org Cc: a.sahrawat@samsung.com, pankaj.m@samsung.com, Namit Gupta Subject: ftrace/module: Move ftrace_release_mod() to ddebug_cleanup label Date: Wed, 15 Nov 2017 15:18:54 +0530 Message-Id: <1510739334-11334-1-git-send-email-gupta.namit@samsung.com> X-Mailer: git-send-email 1.9.1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrLKsWRmVeSWpSXmKPExsWy7bCmlq4hH0+UwZ82dYuLu1MtDh44zWpx edccNotLBxYwWdx7s5XJYl/HAyYHNo+WfbfYPd7vu8rm0bdlFaPH501yASxRqTYZqYkpqUUK qXnJ+SmZeem2St7B8c7xpmYGhrqGlhbmSgp5ibmptkouPgG6bpk5QLuVFMoSc0qBQgGJxcVK +nY2RfmlJakKGfnFJbZK0YaGRnqGBuZ6RkZGeiamsVZGpkAlCakZCx/VF/zhq1i74jR7A+N2 ni5GTg4JAROJ2WsXs3QxcnEICexmlGh/9psVwvnEKHHozjdmCOcbo8TvGXdYYVo2njzBCGIL CexllNh5lhGi6AujxKT9v8ESbALaEtv+T2YGsUUE3CUmH3vPBGIzC0RKzN7fC2YLC3hKLJ3e AFbPIqAqcWf1ZbB6XqD6xsP/2CGWyUmcPDYZ7CQJgbesEi/7trFAJFwkNt1czAhhC0u8Or4F qkFK4vO7vWwQDf2MEjMmrWaHcNYzSnxq2A3VbS/x4MZRoAQH0EmaEut36YOYEgK2ElvusUMc yifR+/sJE0SYV6KjTQiiUVVix9Uj7BBhD4nt73Ugwo4SN9/tYoKESazE0tVrWScwys5CGL+A kXEVo2RqQXFuemqxaYFxXmq5XnFibnFpXrpecn7uJkZwUtLy3sG46ZzPIUYBDkYlHl4BRe4o IdbEsuLK3EOMEhzMSiK8yf1AId6UxMqq1KL8+KLSnNTiQ4ymwPCbyCwlmpwPTJh5JfGGJpYG JmZm5oYGBpYmSuK8x3aWRgoJpCeWpGanphakFsH0MXFwSjUwVt46ZasmV1lQx3/CfwIDw96J +/1+70/ZWHj252r90zW29pM33/gZfrZMsWZy4pfdyT/if1xtT34X+ODO26KNaxM+XHztyLVc 27br0J/oD5vOJ/Z/9WvbLyZY/eX2mV4nky8Pc6WuyzxJ1s87mb/Ie+bzwoPnVT4cd9DVDb98 UTFin+ZKzqy4M0osxRmJhlrMRcWJAIfxgVFgAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpgluLIzCtJLcpLzFFi42LZdlhJXteAjyfK4NoKfouLu1MtDh44zWpx edccNotLBxYwWdx7s5XJYl/HAyYHNo+WfbfYPd7vu8rm0bdlFaPH501yASxRXDYpqTmZZalF +nYJXBkLH9UX/OGrWLviNHsD43aeLkZODgkBE4mNJ08wdjFycQgJ7GaU+DT9HzNEQlpiYvMX KFtYYuW/5+wQRZ8YJbquHGEHSbAJaEts+z8ZrEhEwFvi8PbTjCA2s0C0xNnly5lAbGEBT4ml 0xvA4iwCqhJ3Vl8Gq+cVcJdoPPyPHWKBnMTJY5NZJzDyLGBkWMUomVpQnJueW2xYYJiXWq5X nJhbXJqXrpecn7uJERwuWpo7GC8viT/EKMDBqMTDK6DIHSXEmlhWXJl7iFGCg1lJhDe5HyjE m5JYWZValB9fVJqTWnyIUZqDRUmc92nesUghgfTEktTs1NSC1CKYLBMHp1QDo+S56Rz3r7ZN rLeY1LKD0SOyf4OT2S7Vdf9qCk/Is07lK3LcKnorSZ8tvaxlh80uLt6uuEn7Yr7o8qfEBFUr h9vxH77wLfOA00U9p2e3nKc/jevbWMMsZ3LI76BInRHfd66KjQW/WpW+207yeXDvkZKPiZz8 jGfWAkeuBjXcunb4Z+AeXYZsJZbijERDLeai4kQAac/5+hMCAAA= X-CMS-MailID: 20171115095144epcas5p38455d1efc3aab5d80caa640583c9587c X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-MTR: 20171115095144epcas5p38455d1efc3aab5d80caa640583c9587c CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20171115095144epcas5p38455d1efc3aab5d80caa640583c9587c X-RootMTR: 20171115095144epcas5p38455d1efc3aab5d80caa640583c9587c References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Reviewed-by: Amit Sahrawat --- kernel/module.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/module.c b/kernel/module.c index 0d1cb8d..3498d62 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -3523,6 +3523,12 @@ static int load_module(struct load_info *info, const char __user *uargs, unset_module_core_ro_nx(mod); ddebug_cleanup: + /* + * 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); dynamic_debug_remove(info->debug); synchronize_sched(); kfree(mod->args); @@ -3541,12 +3547,6 @@ static int load_module(struct load_info *info, const char __user *uargs, synchronize_rcu(); 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->module_core, mod->core_size); -- 1.9.1