[packages/kernel/LINUX_4_1] - rel 3; previous fix was buggy (oops at vserver guest stop)
arekm
arekm at pld-linux.org
Sat Jan 30 09:52:20 CET 2016
commit 9d49b35cb1591ff860012ef5c21674498975e35b
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Sat Jan 30 09:52:14 2016 +0100
- rel 3; previous fix was buggy (oops at vserver guest stop)
kernel-vserver-fixes.patch | 29 +++++++++++++++++++++++++++++
kernel.spec | 2 +-
2 files changed, 30 insertions(+), 1 deletion(-)
---
diff --git a/kernel.spec b/kernel.spec
index 3bc7226..ae0a680 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -69,7 +69,7 @@
%define have_pcmcia 0
%endif
-%define rel 2
+%define rel 3
%define basever 4.1
%define postver .16
diff --git a/kernel-vserver-fixes.patch b/kernel-vserver-fixes.patch
index f18f26d..d4f1173 100644
--- a/kernel-vserver-fixes.patch
+++ b/kernel-vserver-fixes.patch
@@ -52,3 +52,32 @@
reparent_leader(father, p, dead);
}
list_splice_tail_init(&father->children, &reaper->children);
+diff -Nurp linux-4.1.3-vs2.3.8.2.fakeinit04/kernel/exit.c linux-4.1.3-vs2.3.8.2.fakeinit05/kernel/exit.c
+--- linux-4.1.3-vs2.3.8.2.fakeinit04/kernel/exit.c 2016-01-29 23:56:25.077386945 +0100
++++ linux-4.1.3-vs2.3.8.2.fakeinit05/kernel/exit.c 2016-01-30 00:12:30.693073246 +0100
+@@ -579,8 +579,10 @@ static void forget_original_parent(struc
+ return;
+
+ reaper = find_new_reaper(father, reaper);
+- list_for_each_entry(p, &father->children, sibling) {
+- struct task_struct *this_reaper = reaper;
++ for (p = list_first_entry(&father->children, struct task_struct, sibling);
++ &p->sibling != &father->children;
++ ) {
++ struct task_struct *next, *this_reaper = reaper;
+ if (p == reaper)
+ this_reaper = task_active_pid_ns(reaper)->child_reaper;
+ for_each_thread(p, t) {
+@@ -598,8 +600,11 @@ static void forget_original_parent(struc
+ */
+ if (!same_thread_group(this_reaper, father))
+ reparent_leader(father, p, dead);
++ next = list_next_entry(p, sibling);
++ list_add(&p->sibling, &this_reaper->children);
++ p = next;
+ }
+- list_splice_tail_init(&father->children, &reaper->children);
++ INIT_LIST_HEAD(&father->children);
+ }
+
+ /*
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/9d49b35cb1591ff860012ef5c21674498975e35b
More information about the pld-cvs-commit
mailing list