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); -- http://linuxfromscratch.org/mailman/listinfo/patches FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page
