rpms/kernel/devel linux-2.6.15-xen-module-fault.patch, NONE, 1.1 kernel-2.6.spec, 1.1954, 1.1955

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Feb 15 20:29:11 UTC 2006


Author: sct

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv11589

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6.15-xen-module-fault.patch 
Log Message:
We need to handle spurious page faults in the kernel's module VA range
in order to avoid OOPSing on modular x86_64 SMP builds.



linux-2.6.15-xen-module-fault.patch:
 fault-xen.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

--- NEW FILE linux-2.6.15-xen-module-fault.patch ---
We need to handle spurious page faults in the kernel's module VA range
in order to avoid OOPSing on modular x86_64 SMP builds.

Signed-off-by: Stephen Tweedie <sct at redhat.com>

--- linux-2.6.15.x86_64/arch/x86_64/mm/fault-xen.c~	2006-02-14 11:12:11.000000000 -0500
+++ linux-2.6.15.x86_64/arch/x86_64/mm/fault-xen.c	2006-02-15 14:45:53.000000000 -0500
@@ -367,12 +367,14 @@
 	 */
 	if (unlikely(address >= TASK_SIZE64)) {
 		/*
-		 * Don't check for the module range here: its PML4
+		 * Even the module range needs checked here: its PML4
 		 * is always initialized because it's shared with the main
-		 * kernel text. Only vmalloc may need PML4 syncups.
+		 * kernel text, but the writable pagetable code can still
+		 * result in spurious faults.
 		 */
 		if (!(error_code & (PF_RSVD|PF_USER|PF_PROT)) &&
-		      ((address >= VMALLOC_START && address < VMALLOC_END))) {
+		    ((address >= VMALLOC_START && address < VMALLOC_END) ||
+		     (address >= MODULES_VADDR && address < MODULES_END))) {
 			if (vmalloc_fault(address) < 0)
 				goto bad_area_nosemaphore;
 			return;


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.1954
retrieving revision 1.1955
diff -u -r1.1954 -r1.1955
--- kernel-2.6.spec	15 Feb 2006 19:33:23 -0000	1.1954
+++ kernel-2.6.spec	15 Feb 2006 20:29:07 -0000	1.1955
@@ -253,6 +253,7 @@
 Patch707: linux-2.6-xen-acpi.patch
 Patch708: linux-2.6-xen-x86_64-fixes.patch
 Patch709: linux-2.6-percpu-NR_CPUS-hotplug-fix.patch
+Patch710: linux-2.6.15-xen-module-fault.patch
 
 #
 # Patches 800 through 899 are reserved for bugfixes to the core system
@@ -753,6 +754,7 @@
 %patch707 -p1
 %patch708 -p2
 %patch709 -p1
+%patch710 -p1
 %endif
 
 #
@@ -1571,6 +1573,9 @@
 %endif
 
 %changelog
+* Wed Feb 15 2006 Stephen Tweedie <sct at redhat.com>
+- Fix module oopses on x86_64 SMP xen dom0
+
 * Wed Feb 15 2006 John W. Linville <linville at redhat.com>
 - Update to current softmac/bcm43xx code.
 - Set ipw2200 hwcrypto option to 0 to avoid firmware restarts.




More information about the fedora-cvs-commits mailing list