+++ /dev/null
-From 8a85dd2c1186ddbf45ce2c7a9787d8a9766ebf79 Mon Sep 17 00:00:00 2001
-From: Chanho Min <chanho.min@lge.com>
-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:
-[<ffffffc00008ed70>] __switch_to+0x88/0xa0
-[<ffffffc000d1c30c>] __schedule+0x1bc/0x720
-[<ffffffc000d1ca90>] schedule+0x40/0xa8
-[<ffffffc0001cd784>] flush_old_exec+0xdc/0x640
-[<ffffffc000220360>] load_elf_binary+0x2a8/0x1090
-[<ffffffc0001ccff4>] search_binary_handler+0x9c/0x240
-[<ffffffc00021c584>] load_script+0x20c/0x228
-[<ffffffc0001ccff4>] search_binary_handler+0x9c/0x240
-[<ffffffc0001ce8e0>] do_execveat_common.isra.14+0x4f8/0x6e8
-[<ffffffc0001cedd0>] compat_SyS_execve+0x38/0x48
-[<ffffffc00008de30>] el0_svc_naked+0x24/0x28
-
-To fix this, make de_thread() freezable. It looks safe and works fine.
-
-Suggested-by: Oleg Nesterov <oleg@redhat.com>
-Signed-off-by: Chanho Min <chanho.min@lge.com>
-Acked-by: Oleg Nesterov <oleg@redhat.com>
-Acked-by: Pavel Machek <pavel@ucw.cz>
-Acked-by: Michal Hocko <mhocko@suse.com>
-Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- 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 <linux/oom.h>
- #include <linux/compat.h>
- #include <linux/vmalloc.h>
-+#include <linux/freezer.h>
-
- #include <linux/uaccess.h>
- #include <asm/mmu_context.h>
-@@ -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
-
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
+++ /dev/null
-From 03fe98edae2fb05c36314d59d19dc9d277462db3 Mon Sep 17 00:00:00 2001
-From: Chanho Min <chanho.min@lge.com>
-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:
-[<ffffffc00008ed70>] __switch_to+0x88/0xa0
-[<ffffffc000d1c30c>] __schedule+0x1bc/0x720
-[<ffffffc000d1ca90>] schedule+0x40/0xa8
-[<ffffffc0001cd784>] flush_old_exec+0xdc/0x640
-[<ffffffc000220360>] load_elf_binary+0x2a8/0x1090
-[<ffffffc0001ccff4>] search_binary_handler+0x9c/0x240
-[<ffffffc00021c584>] load_script+0x20c/0x228
-[<ffffffc0001ccff4>] search_binary_handler+0x9c/0x240
-[<ffffffc0001ce8e0>] do_execveat_common.isra.14+0x4f8/0x6e8
-[<ffffffc0001cedd0>] compat_SyS_execve+0x38/0x48
-[<ffffffc00008de30>] el0_svc_naked+0x24/0x28
-
-To fix this, make de_thread() freezable. It looks safe and works fine.
-
-Suggested-by: Oleg Nesterov <oleg@redhat.com>
-Signed-off-by: Chanho Min <chanho.min@lge.com>
-Acked-by: Oleg Nesterov <oleg@redhat.com>
-Acked-by: Pavel Machek <pavel@ucw.cz>
-Acked-by: Michal Hocko <mhocko@suse.com>
-Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- 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 <linux/oom.h>
- #include <linux/compat.h>
- #include <linux/vmalloc.h>
-+#include <linux/freezer.h>
-
- #include <linux/uaccess.h>
- #include <asm/mmu_context.h>
-@@ -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
-
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