Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.4.1-pre6 /mm/memory.c

Filename:/mm/memory.c
Lines Added:8
Lines Deleted:2
Also changed in: (Previous) 2.4.1-pre4  2.4.1-pre5  2.4.1-pre3  2.4.1-pre2  2.4.1-pre1  2.4.0-ac9 
(Following) 2.4.1-pre7  2.4.1-pre8  2.4.1-pre9  2.4.1-pre10  2.4.1-pre11  2.4.1-pre12 

Location
[  2.4.1-pre6
  [  mm
     o  memory.c

Patch

diff -u --recursive --new-file v2.4.0/linux/mm/memory.c linux/mm/memory.c
--- v2.4.0/linux/mm/memory.c   Mon Jan  1 10:37:41 2001
+++ linux/mm/memory.c   Mon Jan  8 15:39:38 2001
@@ -207,7 +207,8 @@
          
          src_pte = pte_offset(src_pmd, address);
          dst_pte = pte_offset(dst_pmd, address);
-         
+
+         spin_lock(&src->page_table_lock);         
          do {
             pte_t pte = *src_pte;
             struct page *ptepage;
@@ -240,16 +241,21 @@
 cont_copy_pte_range:      set_pte(dst_pte, pte);
 cont_copy_pte_range_noset:   address += PAGE_SIZE;
             if (address >= end)
-               goto out;
+               goto out_unlock;
             src_pte++;
             dst_pte++;
          } while ((unsigned long)src_pte & PTE_TABLE_MASK);
+         spin_unlock(&src->page_table_lock);
       
 cont_copy_pmd_range:   src_pmd++;
          dst_pmd++;
       } while ((unsigned long)src_pmd & PMD_TABLE_MASK);
    }
 out:
+   return 0;
+
+out_unlock:
+   spin_unlock(&src->page_table_lock);
    return 0;
 
 nomem:


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.