patch-2.1.116 linux/include/asm-i386/pgtable.h

Next file: linux/include/asm-i386/processor.h
Previous file: linux/include/asm-i386/current.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.115/linux/include/asm-i386/pgtable.h linux/include/asm-i386/pgtable.h
@@ -100,7 +100,8 @@
  
 static inline void flush_tlb_current_task(void)
 {
-	if (current->mm->count == 1)	/* just one copy of this mm */
+	/* just one copy of this mm? */
+	if (atomic_read(&current->mm->count) == 1)
 		local_flush_tlb();	/* and that's us, so.. */
 	else
 		smp_flush_tlb();
@@ -112,7 +113,7 @@
 
 static inline void flush_tlb_mm(struct mm_struct * mm)
 {
-	if (mm == current->mm && mm->count == 1)
+	if (mm == current->mm && atomic_read(&mm->count) == 1)
 		local_flush_tlb();
 	else
 		smp_flush_tlb();
@@ -121,7 +122,7 @@
 static inline void flush_tlb_page(struct vm_area_struct * vma,
 	unsigned long va)
 {
-	if (vma->vm_mm == current->mm && current->mm->count == 1)
+	if (vma->vm_mm == current->mm && atomic_read(&current->mm->count) == 1)
 		__flush_tlb_one(va);
 	else
 		smp_flush_tlb();

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov