rpms/kernel/devel linux-2.6-x86-acpi-fix-resume-on-64-bit-UP-systems.patch, NONE, 1.1 TODO, 1.23, 1.24 kernel.spec, 1.1061, 1.1062

Chuck Ebbert cebbert at fedoraproject.org
Sat Oct 18 01:11:00 UTC 2008


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22784

Modified Files:
	TODO kernel.spec 
Added Files:
	linux-2.6-x86-acpi-fix-resume-on-64-bit-UP-systems.patch 
Log Message:
Fix resume on x86_64 UP systems with SMP kernel.

linux-2.6-x86-acpi-fix-resume-on-64-bit-UP-systems.patch:

--- NEW FILE linux-2.6-x86-acpi-fix-resume-on-64-bit-UP-systems.patch ---
From: Rafael J. Wysocki <rjw at sisk.pl>
Date: Thu, 16 Oct 2008 23:26:27 +0000 (+0200)
Subject: x86 ACPI: fix breakage of resume on 64-bit UP systems with SMP kernel
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fx86%2Flinux-2.6-tip.git;a=commitdiff_plain;h=3038edabf48f01421c621cb77a712b446d3a5d67;hp=73bdf0a60e607f4b8ecc5aec597105976565a84f

x86 ACPI: fix breakage of resume on 64-bit UP systems with SMP kernel

x86 ACPI: Fix breakage of resume on 64-bit UP systems with SMP kernel

We are now using per CPU GDT tables in head_64.S and the original
early_gdt_descr.address is invalidated after boot by
setup_per_cpu_areas().  This breaks resume from suspend to RAM on
x86_64 UP systems using SMP kernels, because this part of head_64.S
is also executed during the resume and the invalid GDT address
causes the system to crash.  It doesn't break on 'true' SMP systems,
because early_gdt_descr.address is modified every time
native_cpu_up() runs.  However, during resume it should point to the
GDT of the boot CPU rather than to another CPU's GDT.

For this reason, during suspend to RAM always make
early_gdt_descr.address point to the boot CPU's GDT.

This fixes http://bugzilla.kernel.org/show_bug.cgi?id=11568, which
is a regression from 2.6.26.

Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
Acked-by: Pavel Machek <pavel at suse.cz>
Cc: <stable at kernel.org>
Signed-off-by: Ingo Molnar <mingo at elte.hu>
Reported-and-tested-by: Andy Wettstein <ajw1980 at gmail.com>
---

diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
index 426e5d9..c44cd6d 100644
--- a/arch/x86/kernel/acpi/sleep.c
+++ b/arch/x86/kernel/acpi/sleep.c
@@ -10,6 +10,7 @@
 #include <linux/dmi.h>
 #include <linux/cpumask.h>
 #include <asm/segment.h>
+#include <asm/desc.h>
 
 #include "realmode/wakeup.h"
 #include "sleep.h"
@@ -98,6 +99,8 @@ int acpi_save_state_mem(void)
 	header->trampoline_segment = setup_trampoline() >> 4;
 #ifdef CONFIG_SMP
 	stack_start.sp = temp_stack + 4096;
+	early_gdt_descr.address =
+			(unsigned long)get_cpu_gdt_table(smp_processor_id());
 #endif
 	initial_code = (unsigned long)wakeup_long64;
 	saved_magic = 0x123456789abcdef0;


Index: TODO
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/TODO,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- TODO	17 Oct 2008 13:48:50 -0000	1.23
+++ TODO	18 Oct 2008 01:10:29 -0000	1.24
@@ -156,7 +156,7 @@
 	released) upstream.
 
 linux-2.6-x86-avoid-dereferencing-beyond-stack-THREAD_SIZE.patch
-	from Ingo's x86/urgent tree, should have been in 2.6.27
+	In mainline and 2.6.26-stable queue but not 2.6.27-stable.
 
 linux-2.6.27-xfs-remount-fix.patch
 	Root remount problem fix, now upstream, sent for -stable 
@@ -168,3 +168,10 @@
 
 linux-2.6.27-sony-laptop-suspend-fix.patch
 	Submitted: http://marc.info/?l=linux-kernel&m=122419261829835&w=2
+
+linux-2.6-x86-acpi-fix-resume-on-64-bit-UP-systems.patch
+	In x86/urgent, already requested for mainline and -stable
+
+linux-2.6.27-drm-i915-fix-ioctl-security.patch
+	Upstream (4b40893918203ee1a1f6a114316c2a19c072e9bd)
+	Fixes CVE-2008-3831, queued for 2.6.2[567]-stable


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1061
retrieving revision 1.1062
diff -u -r1.1061 -r1.1062
--- kernel.spec	17 Oct 2008 17:44:39 -0000	1.1061
+++ kernel.spec	18 Oct 2008 01:10:29 -0000	1.1062
@@ -584,6 +584,7 @@
 
 Patch41: linux-2.6-sysrq-c.patch
 Patch44: linux-2.6-x86-avoid-dereferencing-beyond-stack-THREAD_SIZE.patch
+Patch45: linux-2.6-x86-acpi-fix-resume-on-64-bit-UP-systems.patch
 
 Patch140: linux-2.6-ps3-ehci-iso.patch
 Patch141: linux-2.6-ps3-storage-alias.patch
@@ -1063,6 +1064,8 @@
 # x86(-64)
 # don't oops in get_wchan()
 ApplyPatch linux-2.6-x86-avoid-dereferencing-beyond-stack-THREAD_SIZE.patch
+# fix resume on UP systems with SMP kernel
+ApplyPatch linux-2.6-x86-acpi-fix-resume-on-64-bit-UP-systems.patch
 
 #
 # PowerPC
@@ -1833,6 +1836,9 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
+* Fri Oct 17 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.2-26.rc1
+- Fix resume on x86_64 UP systems with SMP kernel.
+
 * Fri Oct 17 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.2-25.rc1
 - DRM: fix ioctl security issue (CVE-2008-3831).
 




More information about the fedora-extras-commits mailing list