r2217 - trunk/linux

matthew at linuxfromscratch.org matthew at linuxfromscratch.org
Sun Aug 15 11:36:50 PDT 2010


Author: matthew
Date: 2010-08-15 12:36:45 -0600 (Sun, 15 Aug 2010)
New Revision: 2217

Added:
   trunk/linux/linux-2.6.35.2-mm_locking-1.patch
Log:
Add memory model locking patch to fix boot problems with Linux-2.6.35.2.

Added: trunk/linux/linux-2.6.35.2-mm_locking-1.patch
===================================================================
--- trunk/linux/linux-2.6.35.2-mm_locking-1.patch	                        (rev 0)
+++ trunk/linux/linux-2.6.35.2-mm_locking-1.patch	2010-08-15 18:36:45 UTC (rev 2217)
@@ -0,0 +1,41 @@
+Submitted By:            Matt Burgess <matthew_at_linuxfromscratch_dot_org>
+Date:                    2010-08-15
+Initial Package Version: 2.6.35.2
+Upstream Status:         From upstream
+Origin:                  Upstream - http://lkml.indiana.edu/hypermail/linux/kernel/1008.1/02462.html
+Description:             Fixes a locking bug that can cause boot failures
+
+diff -Naur linux-2.6.35.2.orig/mm/memory.c linux-2.6.35.2/mm/memory.c
+--- linux-2.6.35.2.orig/mm/memory.c	2010-08-13 20:44:56.000000000 +0000
++++ linux-2.6.35.2/mm/memory.c	2010-08-15 17:50:45.050350752 +0000
+@@ -2792,24 +2792,23 @@
+ 	spinlock_t *ptl;
+ 	pte_t entry;
+ 
+-	if (check_stack_guard_page(vma, address) < 0) {
+-		pte_unmap(page_table);
++	pte_unmap(page_table);
++
++	/* Check if we need to add a guard page to the stack */
++	if (check_stack_guard_page(vma, address) < 0)
+ 		return VM_FAULT_SIGBUS;
+-	}
+ 
++	/* Use the zero-page for reads */
+ 	if (!(flags & FAULT_FLAG_WRITE)) {
+ 		entry = pte_mkspecial(pfn_pte(my_zero_pfn(address),
+ 						vma->vm_page_prot));
+-		ptl = pte_lockptr(mm, pmd);
+-		spin_lock(ptl);
++		page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
+ 		if (!pte_none(*page_table))
+ 			goto unlock;
+ 		goto setpte;
+ 	}
+ 
+ 	/* Allocate our own private page. */
+-	pte_unmap(page_table);
+-
+ 	if (unlikely(anon_vma_prepare(vma)))
+ 		goto oom;
+ 	page = alloc_zeroed_user_highpage_movable(vma, address);




More information about the patches mailing list