From: Sasha Levin Date: Sat, 8 Dec 2018 16:43:45 +0000 (-0500) Subject: revert exec-make-de_thread-freezable.patch from 4.19 and 4.14 X-Git-Tag: v4.19.9~26^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1a3a6116b48c1c5c4236242a8d2f2d33f9277201;p=thirdparty%2Fkernel%2Fstable-queue.git revert exec-make-de_thread-freezable.patch from 4.19 and 4.14 Signed-off-by: Sasha Levin --- diff --git a/queue-4.14/exec-make-de_thread-freezable.patch b/queue-4.14/exec-make-de_thread-freezable.patch deleted file mode 100644 index 023104e0523..00000000000 --- a/queue-4.14/exec-make-de_thread-freezable.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 8a85dd2c1186ddbf45ce2c7a9787d8a9766ebf79 Mon Sep 17 00:00:00 2001 -From: Chanho Min -Date: Mon, 12 Nov 2018 12:54:45 +0900 -Subject: exec: make de_thread() freezable - -[ Upstream commit c22397888f1eed98cd59f0a88f2a5f6925f80e15 ] - -Suspend fails due to the exec family of functions blocking the freezer. -The casue is that de_thread() sleeps in TASK_UNINTERRUPTIBLE waiting for -all sub-threads to die, and we have the deadlock if one of them is frozen. -This also can occur with the schedule() waiting for the group thread leader -to exit if it is frozen. - -In our machine, it causes freeze timeout as bellows. - -Freezing of tasks failed after 20.010 seconds (1 tasks refusing to freeze, wq_busy=0): -setcpushares-ls D ffffffc00008ed70 0 5817 1483 0x0040000d - Call trace: -[] __switch_to+0x88/0xa0 -[] __schedule+0x1bc/0x720 -[] schedule+0x40/0xa8 -[] flush_old_exec+0xdc/0x640 -[] load_elf_binary+0x2a8/0x1090 -[] search_binary_handler+0x9c/0x240 -[] load_script+0x20c/0x228 -[] search_binary_handler+0x9c/0x240 -[] do_execveat_common.isra.14+0x4f8/0x6e8 -[] compat_SyS_execve+0x38/0x48 -[] el0_svc_naked+0x24/0x28 - -To fix this, make de_thread() freezable. It looks safe and works fine. - -Suggested-by: Oleg Nesterov -Signed-off-by: Chanho Min -Acked-by: Oleg Nesterov -Acked-by: Pavel Machek -Acked-by: Michal Hocko -Signed-off-by: Rafael J. Wysocki -Signed-off-by: Sasha Levin ---- - fs/exec.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/fs/exec.c b/fs/exec.c -index 0da4d748b4e6..25c529f46aaa 100644 ---- a/fs/exec.c -+++ b/fs/exec.c -@@ -62,6 +62,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -1079,7 +1080,7 @@ static int de_thread(struct task_struct *tsk) - while (sig->notify_count) { - __set_current_state(TASK_KILLABLE); - spin_unlock_irq(lock); -- schedule(); -+ freezable_schedule(); - if (unlikely(__fatal_signal_pending(tsk))) - goto killed; - spin_lock_irq(lock); -@@ -1107,7 +1108,7 @@ static int de_thread(struct task_struct *tsk) - __set_current_state(TASK_KILLABLE); - write_unlock_irq(&tasklist_lock); - cgroup_threadgroup_change_end(tsk); -- schedule(); -+ freezable_schedule(); - if (unlikely(__fatal_signal_pending(tsk))) - goto killed; - } --- -2.19.1 - diff --git a/queue-4.14/series b/queue-4.14/series index 6157015ac41..cca273b3a6f 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -17,7 +17,6 @@ net-mlx4_core-fix-uninitialized-variable-compilation.patch net-mlx4-fix-ubsan-warning-of-signed-integer-overflo.patch gpio-mockup-fix-indicated-direction.patch mtd-rawnand-qcom-namespace-prefix-some-commands.patch -exec-make-de_thread-freezable.patch hid-multitouch-add-pointstick-support-for-cirque-tou.patch mtd-spi-nor-fix-cadence-qspi-page-fault-kernel-panic.patch qed-fix-bitmap_weight-check.patch diff --git a/queue-4.19/exec-make-de_thread-freezable.patch b/queue-4.19/exec-make-de_thread-freezable.patch deleted file mode 100644 index bd891a60d6d..00000000000 --- a/queue-4.19/exec-make-de_thread-freezable.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 03fe98edae2fb05c36314d59d19dc9d277462db3 Mon Sep 17 00:00:00 2001 -From: Chanho Min -Date: Mon, 12 Nov 2018 12:54:45 +0900 -Subject: exec: make de_thread() freezable - -[ Upstream commit c22397888f1eed98cd59f0a88f2a5f6925f80e15 ] - -Suspend fails due to the exec family of functions blocking the freezer. -The casue is that de_thread() sleeps in TASK_UNINTERRUPTIBLE waiting for -all sub-threads to die, and we have the deadlock if one of them is frozen. -This also can occur with the schedule() waiting for the group thread leader -to exit if it is frozen. - -In our machine, it causes freeze timeout as bellows. - -Freezing of tasks failed after 20.010 seconds (1 tasks refusing to freeze, wq_busy=0): -setcpushares-ls D ffffffc00008ed70 0 5817 1483 0x0040000d - Call trace: -[] __switch_to+0x88/0xa0 -[] __schedule+0x1bc/0x720 -[] schedule+0x40/0xa8 -[] flush_old_exec+0xdc/0x640 -[] load_elf_binary+0x2a8/0x1090 -[] search_binary_handler+0x9c/0x240 -[] load_script+0x20c/0x228 -[] search_binary_handler+0x9c/0x240 -[] do_execveat_common.isra.14+0x4f8/0x6e8 -[] compat_SyS_execve+0x38/0x48 -[] el0_svc_naked+0x24/0x28 - -To fix this, make de_thread() freezable. It looks safe and works fine. - -Suggested-by: Oleg Nesterov -Signed-off-by: Chanho Min -Acked-by: Oleg Nesterov -Acked-by: Pavel Machek -Acked-by: Michal Hocko -Signed-off-by: Rafael J. Wysocki -Signed-off-by: Sasha Levin ---- - fs/exec.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/fs/exec.c b/fs/exec.c -index 1ebf6e5a521d..6da8745857cb 100644 ---- a/fs/exec.c -+++ b/fs/exec.c -@@ -62,6 +62,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -1083,7 +1084,7 @@ static int de_thread(struct task_struct *tsk) - while (sig->notify_count) { - __set_current_state(TASK_KILLABLE); - spin_unlock_irq(lock); -- schedule(); -+ freezable_schedule(); - if (unlikely(__fatal_signal_pending(tsk))) - goto killed; - spin_lock_irq(lock); -@@ -1111,7 +1112,7 @@ static int de_thread(struct task_struct *tsk) - __set_current_state(TASK_KILLABLE); - write_unlock_irq(&tasklist_lock); - cgroup_threadgroup_change_end(tsk); -- schedule(); -+ freezable_schedule(); - if (unlikely(__fatal_signal_pending(tsk))) - goto killed; - } --- -2.19.1 - diff --git a/queue-4.19/series b/queue-4.19/series index 860638073fa..c461b1fbbe3 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -36,7 +36,6 @@ tc-testing-tdc.py-ignore-errors-when-decoding-stdout.patch tc-testing-tdc.py-guard-against-lack-of-returncode-i.patch mtd-rawnand-qcom-namespace-prefix-some-commands.patch cpufreq-ti-cpufreq-only-register-platform_device-whe.patch -exec-make-de_thread-freezable.patch revert-hid-uhid-use-strlcpy-instead-of-strncpy.patch hid-multitouch-add-pointstick-support-for-cirque-tou.patch mtd-spi-nor-fix-cadence-qspi-page-fault-kernel-panic.patch