Revert blocking patches causing systemd to crash on resume (rhbz 1010603)

This commit is contained in:
Josh Boyer 2013-11-02 08:40:14 -04:00
parent 65f14f4adc
commit f1987ed1ac
3 changed files with 115 additions and 2 deletions

View File

@ -0,0 +1,49 @@
From c511851de162e8ec03d62e7d7feecbdf590d881d Mon Sep 17 00:00:00 2001
From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Date: Tue, 29 Oct 2013 13:12:56 +0100
Subject: [PATCH] Revert "epoll: use freezable blocking call"
This reverts commit 1c441e921201 (epoll: use freezable blocking call)
which is reported to cause user space memory corruption to happen
after suspend to RAM.
Since it appears to be extremely difficult to root cause this
problem, it is best to revert the offending commit and try to address
the original issue in a better way later.
References: https://bugzilla.kernel.org/show_bug.cgi?id=61781
Reported-by: Natrio <natrio@list.ru>
Reported-by: Jeff Pohlmeyer <yetanothergeek@gmail.com>
Bisected-by: Leo Wolf <jclw@ymail.com>
Fixes: 1c441e921201 (epoll: use freezable blocking call)
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: 3.11+ <stable@vger.kernel.org> # 3.11+
---
fs/eventpoll.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index 473e09d..810c28f 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -34,7 +34,6 @@
#include <linux/mutex.h>
#include <linux/anon_inodes.h>
#include <linux/device.h>
-#include <linux/freezer.h>
#include <asm/uaccess.h>
#include <asm/io.h>
#include <asm/mman.h>
@@ -1605,8 +1604,7 @@ fetch_events:
}
spin_unlock_irqrestore(&ep->lock, flags);
- if (!freezable_schedule_hrtimeout_range(to, slack,
- HRTIMER_MODE_ABS))
+ if (!schedule_hrtimeout_range(to, slack, HRTIMER_MODE_ABS))
timed_out = 1;
spin_lock_irqsave(&ep->lock, flags);
--
1.8.3.1

View File

@ -0,0 +1,55 @@
From 59612d187912750f416fbffe0c00bc0811c54ab5 Mon Sep 17 00:00:00 2001
From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Date: Tue, 29 Oct 2013 23:43:08 +0100
Subject: [PATCH] Revert "select: use freezable blocking call"
This reverts commit 9745cdb36da8 (select: use freezable blocking call)
that triggers problems during resume from suspend to RAM on Paul Bolle's
32-bit x86 machines. Paul says:
Ever since I tried running (release candidates of) v3.11 on the two
working i686s I still have lying around I ran into issues on resuming
from suspend. Reverting 9745cdb36da8 (select: use freezable blocking
call) resolves those issues.
Resuming from suspend on i686 on (release candidates of) v3.11 and
later triggers issues like:
traps: systemd[1] general protection ip:b738e490 sp:bf882fc0 error:0 in libc-2.16.so[b731c000+1b0000]
and
traps: rtkit-daemon[552] general protection ip:804d6e5 sp:b6cb32f0 error:0 in rtkit-daemon[8048000+d000]
Once I hit the systemd error I can only get out of the mess that the
system is at that point by power cycling it.
Since we are reverting another freezer-related change causing similar
problems to happen, this one should be reverted as well.
References: https://lkml.org/lkml/2013/10/29/583
Reported-by: Paul Bolle <pebolle@tiscali.nl>
Fixes: 9745cdb36da8 (select: use freezable blocking call)
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: 3.11+ <stable@vger.kernel.org> # 3.11+
---
fs/select.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/fs/select.c b/fs/select.c
index 35d4adc7..dfd5cb1 100644
--- a/fs/select.c
+++ b/fs/select.c
@@ -238,8 +238,7 @@ int poll_schedule_timeout(struct poll_wqueues *pwq, int state,
set_current_state(state);
if (!pwq->triggered)
- rc = freezable_schedule_hrtimeout_range(expires, slack,
- HRTIMER_MODE_ABS);
+ rc = schedule_hrtimeout_range(expires, slack, HRTIMER_MODE_ABS);
__set_current_state(TASK_RUNNING);
/*
--
1.8.3.1

View File

@ -62,7 +62,7 @@ Summary: The Linux kernel
# For non-released -rc kernels, this will be appended after the rcX and
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
#
%global baserelease 100
%global baserelease 101
%global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching
@ -798,6 +798,10 @@ Patch25138: intel-3.12-stable-fixes.patch
#CVE-2013-4348 rhbz 1007939 1025647
Patch25139: net-flow_dissector-fail-on-evil-iph-ihl.patch
#rhbz 1010603
Patch25140: 0001-Revert-epoll-use-freezable-blocking-call.patch
Patch25141: 0001-Revert-select-use-freezable-blocking-call.patch
# END OF PATCH DEFINITIONS
%endif
@ -1533,6 +1537,10 @@ ApplyPatch intel-3.12-stable-fixes.patch
#CVE-2013-4348 rhbz 1007939 1025647
ApplyPatch net-flow_dissector-fail-on-evil-iph-ihl.patch
#rhbz 1010603
ApplyPatch 0001-Revert-epoll-use-freezable-blocking-call.patch
ApplyPatch 0001-Revert-select-use-freezable-blocking-call.patch
# END OF PATCH APPLICATIONS
%endif
@ -2374,7 +2382,8 @@ fi
# ||----w |
# || ||
%changelog
* Fri Nov 01 2013 Josh Boyer <jwboyer@fedoraproject.org>
* Fri Nov 01 2013 Josh Boyer <jwboyer@fedoraproject.org> - 3.11.6-101
- Revert blocking patches causing systemd to crash on resume (rhbz 1010603)
- CVE-2013-4348 net: deadloop path in skb_flow_dissect (rhbz 1007939 1025647)
* Thu Oct 31 2013 Josh Boyer <jwboyer@fedoraprorject.org>