]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Remove ftrace patch that was accidentally added twice
authorSasha Levin <sashal@kernel.org>
Fri, 5 Jul 2019 14:15:10 +0000 (10:15 -0400)
committerSasha Levin <sashal@kernel.org>
Fri, 5 Jul 2019 14:15:10 +0000 (10:15 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.14/ftrace-x86-remove-possible-deadlock-between-register.patch [deleted file]
queue-4.14/series
queue-4.19/ftrace-x86-remove-possible-deadlock-between-register.patch [deleted file]
queue-4.19/series
queue-5.1/ftrace-x86-remove-possible-deadlock-between-register.patch [deleted file]
queue-5.1/series

diff --git a/queue-4.14/ftrace-x86-remove-possible-deadlock-between-register.patch b/queue-4.14/ftrace-x86-remove-possible-deadlock-between-register.patch
deleted file mode 100644 (file)
index 5f73b50..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-From 0c5a9db41f4de11debca422d73b07523de010235 Mon Sep 17 00:00:00 2001
-From: Petr Mladek <pmladek@suse.com>
-Date: Thu, 27 Jun 2019 10:13:34 +0200
-Subject: ftrace/x86: Remove possible deadlock between register_kprobe() and
- ftrace_run_update_code()
-
-[ Upstream commit d5b844a2cf507fc7642c9ae80a9d585db3065c28 ]
-
-The commit 9f255b632bf12c4dd7 ("module: Fix livepatch/ftrace module text
-permissions race") causes a possible deadlock between register_kprobe()
-and ftrace_run_update_code() when ftrace is using stop_machine().
-
-The existing dependency chain (in reverse order) is:
-
--> #1 (text_mutex){+.+.}:
-       validate_chain.isra.21+0xb32/0xd70
-       __lock_acquire+0x4b8/0x928
-       lock_acquire+0x102/0x230
-       __mutex_lock+0x88/0x908
-       mutex_lock_nested+0x32/0x40
-       register_kprobe+0x254/0x658
-       init_kprobes+0x11a/0x168
-       do_one_initcall+0x70/0x318
-       kernel_init_freeable+0x456/0x508
-       kernel_init+0x22/0x150
-       ret_from_fork+0x30/0x34
-       kernel_thread_starter+0x0/0xc
-
--> #0 (cpu_hotplug_lock.rw_sem){++++}:
-       check_prev_add+0x90c/0xde0
-       validate_chain.isra.21+0xb32/0xd70
-       __lock_acquire+0x4b8/0x928
-       lock_acquire+0x102/0x230
-       cpus_read_lock+0x62/0xd0
-       stop_machine+0x2e/0x60
-       arch_ftrace_update_code+0x2e/0x40
-       ftrace_run_update_code+0x40/0xa0
-       ftrace_startup+0xb2/0x168
-       register_ftrace_function+0x64/0x88
-       klp_patch_object+0x1a2/0x290
-       klp_enable_patch+0x554/0x980
-       do_one_initcall+0x70/0x318
-       do_init_module+0x6e/0x250
-       load_module+0x1782/0x1990
-       __s390x_sys_finit_module+0xaa/0xf0
-       system_call+0xd8/0x2d0
-
- Possible unsafe locking scenario:
-
-       CPU0                    CPU1
-       ----                    ----
-  lock(text_mutex);
-                               lock(cpu_hotplug_lock.rw_sem);
-                               lock(text_mutex);
-  lock(cpu_hotplug_lock.rw_sem);
-
-It is similar problem that has been solved by the commit 2d1e38f56622b9b
-("kprobes: Cure hotplug lock ordering issues"). Many locks are involved.
-To be on the safe side, text_mutex must become a low level lock taken
-after cpu_hotplug_lock.rw_sem.
-
-This can't be achieved easily with the current ftrace design.
-For example, arm calls set_all_modules_text_rw() already in
-ftrace_arch_code_modify_prepare(), see arch/arm/kernel/ftrace.c.
-This functions is called:
-
-  + outside stop_machine() from ftrace_run_update_code()
-  + without stop_machine() from ftrace_module_enable()
-
-Fortunately, the problematic fix is needed only on x86_64. It is
-the only architecture that calls set_all_modules_text_rw()
-in ftrace path and supports livepatching at the same time.
-
-Therefore it is enough to move text_mutex handling from the generic
-kernel/trace/ftrace.c into arch/x86/kernel/ftrace.c:
-
-   ftrace_arch_code_modify_prepare()
-   ftrace_arch_code_modify_post_process()
-
-This patch basically reverts the ftrace part of the problematic
-commit 9f255b632bf12c4dd7 ("module: Fix livepatch/ftrace module
-text permissions race"). And provides x86_64 specific-fix.
-
-Some refactoring of the ftrace code will be needed when livepatching
-is implemented for arm or nds32. These architectures call
-set_all_modules_text_rw() and use stop_machine() at the same time.
-
-Link: http://lkml.kernel.org/r/20190627081334.12793-1-pmladek@suse.com
-
-Fixes: 9f255b632bf12c4dd7 ("module: Fix livepatch/ftrace module text permissions race")
-Acked-by: Thomas Gleixner <tglx@linutronix.de>
-Reported-by: Miroslav Benes <mbenes@suse.cz>
-Reviewed-by: Miroslav Benes <mbenes@suse.cz>
-Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
-Signed-off-by: Petr Mladek <pmladek@suse.com>
-[
-  As reviewed by Miroslav Benes <mbenes@suse.cz>, removed return value of
-  ftrace_run_update_code() as it is a void function.
-]
-Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/ftrace.c |  3 +++
- kernel/trace/ftrace.c    | 10 +---------
- 2 files changed, 4 insertions(+), 9 deletions(-)
-
-diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
-index c020ba4b7eb6..ccc2b9d2956a 100644
---- a/arch/x86/kernel/ftrace.c
-+++ b/arch/x86/kernel/ftrace.c
-@@ -22,6 +22,7 @@
- #include <linux/init.h>
- #include <linux/list.h>
- #include <linux/module.h>
-+#include <linux/memory.h>
- #include <trace/syscall.h>
-@@ -36,6 +37,7 @@
- int ftrace_arch_code_modify_prepare(void)
- {
-+      mutex_lock(&text_mutex);
-       set_kernel_text_rw();
-       set_all_modules_text_rw();
-       return 0;
-@@ -45,6 +47,7 @@ int ftrace_arch_code_modify_post_process(void)
- {
-       set_all_modules_text_ro();
-       set_kernel_text_ro();
-+      mutex_unlock(&text_mutex);
-       return 0;
- }
-diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
-index ff3c8ca907c4..c4a0ad18c859 100644
---- a/kernel/trace/ftrace.c
-+++ b/kernel/trace/ftrace.c
-@@ -34,7 +34,6 @@
- #include <linux/hash.h>
- #include <linux/rcupdate.h>
- #include <linux/kprobes.h>
--#include <linux/memory.h>
- #include <trace/events/sched.h>
-@@ -2693,12 +2692,10 @@ static void ftrace_run_update_code(int command)
- {
-       int ret;
--      mutex_lock(&text_mutex);
--
-       ret = ftrace_arch_code_modify_prepare();
-       FTRACE_WARN_ON(ret);
-       if (ret)
--              goto out_unlock;
-+              return;
-       /*
-        * By default we use stop_machine() to modify the code.
-@@ -2710,9 +2707,6 @@ static void ftrace_run_update_code(int command)
-       ret = ftrace_arch_code_modify_post_process();
-       FTRACE_WARN_ON(ret);
--
--out_unlock:
--      mutex_unlock(&text_mutex);
- }
- static void ftrace_run_modify_code(struct ftrace_ops *ops, int command,
-@@ -5800,7 +5794,6 @@ void ftrace_module_enable(struct module *mod)
-       struct ftrace_page *pg;
-       mutex_lock(&ftrace_lock);
--      mutex_lock(&text_mutex);
-       if (ftrace_disabled)
-               goto out_unlock;
-@@ -5861,7 +5854,6 @@ void ftrace_module_enable(struct module *mod)
-               ftrace_arch_code_modify_post_process();
-  out_unlock:
--      mutex_unlock(&text_mutex);
-       mutex_unlock(&ftrace_lock);
-       process_cached_mods(mod->name);
--- 
-2.20.1
-
index aff960e82821d2826475d4002b55315f002ad29c..4182d5f82a59ebfe32741dd2578ef1aeb879e96d 100644 (file)
@@ -46,4 +46,3 @@ vhost_net-fix-possible-infinite-loop.patch
 vhost-vsock-add-weight-support.patch
 vhost-scsi-add-weight-support.patch
 tty-rocket-fix-incorrect-forward-declaration-of-rp_i.patch
-ftrace-x86-remove-possible-deadlock-between-register.patch
diff --git a/queue-4.19/ftrace-x86-remove-possible-deadlock-between-register.patch b/queue-4.19/ftrace-x86-remove-possible-deadlock-between-register.patch
deleted file mode 100644 (file)
index 069b956..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-From 67064982a48219091d421b3a3782a3eb5035a268 Mon Sep 17 00:00:00 2001
-From: Petr Mladek <pmladek@suse.com>
-Date: Thu, 27 Jun 2019 10:13:34 +0200
-Subject: ftrace/x86: Remove possible deadlock between register_kprobe() and
- ftrace_run_update_code()
-
-[ Upstream commit d5b844a2cf507fc7642c9ae80a9d585db3065c28 ]
-
-The commit 9f255b632bf12c4dd7 ("module: Fix livepatch/ftrace module text
-permissions race") causes a possible deadlock between register_kprobe()
-and ftrace_run_update_code() when ftrace is using stop_machine().
-
-The existing dependency chain (in reverse order) is:
-
--> #1 (text_mutex){+.+.}:
-       validate_chain.isra.21+0xb32/0xd70
-       __lock_acquire+0x4b8/0x928
-       lock_acquire+0x102/0x230
-       __mutex_lock+0x88/0x908
-       mutex_lock_nested+0x32/0x40
-       register_kprobe+0x254/0x658
-       init_kprobes+0x11a/0x168
-       do_one_initcall+0x70/0x318
-       kernel_init_freeable+0x456/0x508
-       kernel_init+0x22/0x150
-       ret_from_fork+0x30/0x34
-       kernel_thread_starter+0x0/0xc
-
--> #0 (cpu_hotplug_lock.rw_sem){++++}:
-       check_prev_add+0x90c/0xde0
-       validate_chain.isra.21+0xb32/0xd70
-       __lock_acquire+0x4b8/0x928
-       lock_acquire+0x102/0x230
-       cpus_read_lock+0x62/0xd0
-       stop_machine+0x2e/0x60
-       arch_ftrace_update_code+0x2e/0x40
-       ftrace_run_update_code+0x40/0xa0
-       ftrace_startup+0xb2/0x168
-       register_ftrace_function+0x64/0x88
-       klp_patch_object+0x1a2/0x290
-       klp_enable_patch+0x554/0x980
-       do_one_initcall+0x70/0x318
-       do_init_module+0x6e/0x250
-       load_module+0x1782/0x1990
-       __s390x_sys_finit_module+0xaa/0xf0
-       system_call+0xd8/0x2d0
-
- Possible unsafe locking scenario:
-
-       CPU0                    CPU1
-       ----                    ----
-  lock(text_mutex);
-                               lock(cpu_hotplug_lock.rw_sem);
-                               lock(text_mutex);
-  lock(cpu_hotplug_lock.rw_sem);
-
-It is similar problem that has been solved by the commit 2d1e38f56622b9b
-("kprobes: Cure hotplug lock ordering issues"). Many locks are involved.
-To be on the safe side, text_mutex must become a low level lock taken
-after cpu_hotplug_lock.rw_sem.
-
-This can't be achieved easily with the current ftrace design.
-For example, arm calls set_all_modules_text_rw() already in
-ftrace_arch_code_modify_prepare(), see arch/arm/kernel/ftrace.c.
-This functions is called:
-
-  + outside stop_machine() from ftrace_run_update_code()
-  + without stop_machine() from ftrace_module_enable()
-
-Fortunately, the problematic fix is needed only on x86_64. It is
-the only architecture that calls set_all_modules_text_rw()
-in ftrace path and supports livepatching at the same time.
-
-Therefore it is enough to move text_mutex handling from the generic
-kernel/trace/ftrace.c into arch/x86/kernel/ftrace.c:
-
-   ftrace_arch_code_modify_prepare()
-   ftrace_arch_code_modify_post_process()
-
-This patch basically reverts the ftrace part of the problematic
-commit 9f255b632bf12c4dd7 ("module: Fix livepatch/ftrace module
-text permissions race"). And provides x86_64 specific-fix.
-
-Some refactoring of the ftrace code will be needed when livepatching
-is implemented for arm or nds32. These architectures call
-set_all_modules_text_rw() and use stop_machine() at the same time.
-
-Link: http://lkml.kernel.org/r/20190627081334.12793-1-pmladek@suse.com
-
-Fixes: 9f255b632bf12c4dd7 ("module: Fix livepatch/ftrace module text permissions race")
-Acked-by: Thomas Gleixner <tglx@linutronix.de>
-Reported-by: Miroslav Benes <mbenes@suse.cz>
-Reviewed-by: Miroslav Benes <mbenes@suse.cz>
-Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
-Signed-off-by: Petr Mladek <pmladek@suse.com>
-[
-  As reviewed by Miroslav Benes <mbenes@suse.cz>, removed return value of
-  ftrace_run_update_code() as it is a void function.
-]
-Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/ftrace.c |  3 +++
- kernel/trace/ftrace.c    | 10 +---------
- 2 files changed, 4 insertions(+), 9 deletions(-)
-
-diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
-index 9f033dfd2766..50d309662d78 100644
---- a/arch/x86/kernel/ftrace.c
-+++ b/arch/x86/kernel/ftrace.c
-@@ -22,6 +22,7 @@
- #include <linux/init.h>
- #include <linux/list.h>
- #include <linux/module.h>
-+#include <linux/memory.h>
- #include <trace/syscall.h>
-@@ -35,6 +36,7 @@
- int ftrace_arch_code_modify_prepare(void)
- {
-+      mutex_lock(&text_mutex);
-       set_kernel_text_rw();
-       set_all_modules_text_rw();
-       return 0;
-@@ -44,6 +46,7 @@ int ftrace_arch_code_modify_post_process(void)
- {
-       set_all_modules_text_ro();
-       set_kernel_text_ro();
-+      mutex_unlock(&text_mutex);
-       return 0;
- }
-diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
-index 0a0bb839ac5e..118ecce14386 100644
---- a/kernel/trace/ftrace.c
-+++ b/kernel/trace/ftrace.c
-@@ -35,7 +35,6 @@
- #include <linux/hash.h>
- #include <linux/rcupdate.h>
- #include <linux/kprobes.h>
--#include <linux/memory.h>
- #include <trace/events/sched.h>
-@@ -2628,12 +2627,10 @@ static void ftrace_run_update_code(int command)
- {
-       int ret;
--      mutex_lock(&text_mutex);
--
-       ret = ftrace_arch_code_modify_prepare();
-       FTRACE_WARN_ON(ret);
-       if (ret)
--              goto out_unlock;
-+              return;
-       /*
-        * By default we use stop_machine() to modify the code.
-@@ -2645,9 +2642,6 @@ static void ftrace_run_update_code(int command)
-       ret = ftrace_arch_code_modify_post_process();
-       FTRACE_WARN_ON(ret);
--
--out_unlock:
--      mutex_unlock(&text_mutex);
- }
- static void ftrace_run_modify_code(struct ftrace_ops *ops, int command,
-@@ -5771,7 +5765,6 @@ void ftrace_module_enable(struct module *mod)
-       struct ftrace_page *pg;
-       mutex_lock(&ftrace_lock);
--      mutex_lock(&text_mutex);
-       if (ftrace_disabled)
-               goto out_unlock;
-@@ -5833,7 +5826,6 @@ void ftrace_module_enable(struct module *mod)
-               ftrace_arch_code_modify_post_process();
-  out_unlock:
--      mutex_unlock(&text_mutex);
-       mutex_unlock(&ftrace_lock);
-       process_cached_mods(mod->name);
--- 
-2.20.1
-
index 377d4c97ee4556d7e9fa3e35b967ab7705f95310..87309e9dd321d447c9eecf9781e5bfbb55c28803 100644 (file)
@@ -61,7 +61,6 @@ ftrace-x86-remove-possible-deadlock-between-register_kprobe-and-ftrace_run_updat
 mm-vmscan.c-prevent-useless-kswapd-loops.patch
 btrfs-ensure-replaced-device-doesn-t-have-pending-chunk-allocation.patch
 tty-rocket-fix-incorrect-forward-declaration-of-rp_i.patch
-ftrace-x86-remove-possible-deadlock-between-register.patch
 mlxsw-spectrum-handle-vlan-device-unlinking.patch
 net-smc-move-unhash-before-release-of-clcsock.patch
 media-s5p-mfc-fix-incorrect-bus-assignment-in-virtua.patch
diff --git a/queue-5.1/ftrace-x86-remove-possible-deadlock-between-register.patch b/queue-5.1/ftrace-x86-remove-possible-deadlock-between-register.patch
deleted file mode 100644 (file)
index 004ccb9..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-From ec581b3fd5576fce9d4af96f937079ed695341ac Mon Sep 17 00:00:00 2001
-From: Petr Mladek <pmladek@suse.com>
-Date: Thu, 27 Jun 2019 10:13:34 +0200
-Subject: ftrace/x86: Remove possible deadlock between register_kprobe() and
- ftrace_run_update_code()
-
-[ Upstream commit d5b844a2cf507fc7642c9ae80a9d585db3065c28 ]
-
-The commit 9f255b632bf12c4dd7 ("module: Fix livepatch/ftrace module text
-permissions race") causes a possible deadlock between register_kprobe()
-and ftrace_run_update_code() when ftrace is using stop_machine().
-
-The existing dependency chain (in reverse order) is:
-
--> #1 (text_mutex){+.+.}:
-       validate_chain.isra.21+0xb32/0xd70
-       __lock_acquire+0x4b8/0x928
-       lock_acquire+0x102/0x230
-       __mutex_lock+0x88/0x908
-       mutex_lock_nested+0x32/0x40
-       register_kprobe+0x254/0x658
-       init_kprobes+0x11a/0x168
-       do_one_initcall+0x70/0x318
-       kernel_init_freeable+0x456/0x508
-       kernel_init+0x22/0x150
-       ret_from_fork+0x30/0x34
-       kernel_thread_starter+0x0/0xc
-
--> #0 (cpu_hotplug_lock.rw_sem){++++}:
-       check_prev_add+0x90c/0xde0
-       validate_chain.isra.21+0xb32/0xd70
-       __lock_acquire+0x4b8/0x928
-       lock_acquire+0x102/0x230
-       cpus_read_lock+0x62/0xd0
-       stop_machine+0x2e/0x60
-       arch_ftrace_update_code+0x2e/0x40
-       ftrace_run_update_code+0x40/0xa0
-       ftrace_startup+0xb2/0x168
-       register_ftrace_function+0x64/0x88
-       klp_patch_object+0x1a2/0x290
-       klp_enable_patch+0x554/0x980
-       do_one_initcall+0x70/0x318
-       do_init_module+0x6e/0x250
-       load_module+0x1782/0x1990
-       __s390x_sys_finit_module+0xaa/0xf0
-       system_call+0xd8/0x2d0
-
- Possible unsafe locking scenario:
-
-       CPU0                    CPU1
-       ----                    ----
-  lock(text_mutex);
-                               lock(cpu_hotplug_lock.rw_sem);
-                               lock(text_mutex);
-  lock(cpu_hotplug_lock.rw_sem);
-
-It is similar problem that has been solved by the commit 2d1e38f56622b9b
-("kprobes: Cure hotplug lock ordering issues"). Many locks are involved.
-To be on the safe side, text_mutex must become a low level lock taken
-after cpu_hotplug_lock.rw_sem.
-
-This can't be achieved easily with the current ftrace design.
-For example, arm calls set_all_modules_text_rw() already in
-ftrace_arch_code_modify_prepare(), see arch/arm/kernel/ftrace.c.
-This functions is called:
-
-  + outside stop_machine() from ftrace_run_update_code()
-  + without stop_machine() from ftrace_module_enable()
-
-Fortunately, the problematic fix is needed only on x86_64. It is
-the only architecture that calls set_all_modules_text_rw()
-in ftrace path and supports livepatching at the same time.
-
-Therefore it is enough to move text_mutex handling from the generic
-kernel/trace/ftrace.c into arch/x86/kernel/ftrace.c:
-
-   ftrace_arch_code_modify_prepare()
-   ftrace_arch_code_modify_post_process()
-
-This patch basically reverts the ftrace part of the problematic
-commit 9f255b632bf12c4dd7 ("module: Fix livepatch/ftrace module
-text permissions race"). And provides x86_64 specific-fix.
-
-Some refactoring of the ftrace code will be needed when livepatching
-is implemented for arm or nds32. These architectures call
-set_all_modules_text_rw() and use stop_machine() at the same time.
-
-Link: http://lkml.kernel.org/r/20190627081334.12793-1-pmladek@suse.com
-
-Fixes: 9f255b632bf12c4dd7 ("module: Fix livepatch/ftrace module text permissions race")
-Acked-by: Thomas Gleixner <tglx@linutronix.de>
-Reported-by: Miroslav Benes <mbenes@suse.cz>
-Reviewed-by: Miroslav Benes <mbenes@suse.cz>
-Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
-Signed-off-by: Petr Mladek <pmladek@suse.com>
-[
-  As reviewed by Miroslav Benes <mbenes@suse.cz>, removed return value of
-  ftrace_run_update_code() as it is a void function.
-]
-Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/ftrace.c |  3 +++
- kernel/trace/ftrace.c    | 10 +---------
- 2 files changed, 4 insertions(+), 9 deletions(-)
-
-diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
-index 6e0c0ed8e4bf..ba3656405fcc 100644
---- a/arch/x86/kernel/ftrace.c
-+++ b/arch/x86/kernel/ftrace.c
-@@ -22,6 +22,7 @@
- #include <linux/init.h>
- #include <linux/list.h>
- #include <linux/module.h>
-+#include <linux/memory.h>
- #include <trace/syscall.h>
-@@ -35,6 +36,7 @@
- int ftrace_arch_code_modify_prepare(void)
- {
-+      mutex_lock(&text_mutex);
-       set_kernel_text_rw();
-       set_all_modules_text_rw();
-       return 0;
-@@ -44,6 +46,7 @@ int ftrace_arch_code_modify_post_process(void)
- {
-       set_all_modules_text_ro();
-       set_kernel_text_ro();
-+      mutex_unlock(&text_mutex);
-       return 0;
- }
-diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
-index 2469d54b3e43..6b6fa18f0a02 100644
---- a/kernel/trace/ftrace.c
-+++ b/kernel/trace/ftrace.c
-@@ -34,7 +34,6 @@
- #include <linux/hash.h>
- #include <linux/rcupdate.h>
- #include <linux/kprobes.h>
--#include <linux/memory.h>
- #include <trace/events/sched.h>
-@@ -2615,12 +2614,10 @@ static void ftrace_run_update_code(int command)
- {
-       int ret;
--      mutex_lock(&text_mutex);
--
-       ret = ftrace_arch_code_modify_prepare();
-       FTRACE_WARN_ON(ret);
-       if (ret)
--              goto out_unlock;
-+              return;
-       /*
-        * By default we use stop_machine() to modify the code.
-@@ -2632,9 +2629,6 @@ static void ftrace_run_update_code(int command)
-       ret = ftrace_arch_code_modify_post_process();
-       FTRACE_WARN_ON(ret);
--
--out_unlock:
--      mutex_unlock(&text_mutex);
- }
- static void ftrace_run_modify_code(struct ftrace_ops *ops, int command,
-@@ -5788,7 +5782,6 @@ void ftrace_module_enable(struct module *mod)
-       struct ftrace_page *pg;
-       mutex_lock(&ftrace_lock);
--      mutex_lock(&text_mutex);
-       if (ftrace_disabled)
-               goto out_unlock;
-@@ -5850,7 +5843,6 @@ void ftrace_module_enable(struct module *mod)
-               ftrace_arch_code_modify_post_process();
-  out_unlock:
--      mutex_unlock(&text_mutex);
-       mutex_unlock(&ftrace_lock);
-       process_cached_mods(mod->name);
--- 
-2.20.1
-
index 2f6251322758e55349d1650dacab525829761d93..dd11ded6377962c53fd39a3abfa4a783d0d0f1dd 100644 (file)
@@ -81,5 +81,4 @@ ftrace-x86-remove-possible-deadlock-between-register_kprobe-and-ftrace_run_updat
 mm-vmscan.c-prevent-useless-kswapd-loops.patch
 btrfs-ensure-replaced-device-doesn-t-have-pending-chunk-allocation.patch
 tty-rocket-fix-incorrect-forward-declaration-of-rp_i.patch
-ftrace-x86-remove-possible-deadlock-between-register.patch
 s390-mm-fix-pxd_bad-with-folded-page-tables.patch