Title: [8149] trunk/arch/blackfin/kernel/traps.c: Task [#5545], revise previous commit, avoid schedule in decode_address() as Sonic pointed out
Revision
8149
Author
gyang
Date
2010-01-13 03:09:27 -0500 (Wed, 13 Jan 2010)

Log Message

Task [#5545], revise previous commit, avoid schedule in decode_address() as Sonic pointed out

Modified Paths

Diff

Modified: trunk/arch/blackfin/kernel/traps.c (8148 => 8149)


--- trunk/arch/blackfin/kernel/traps.c	2010-01-13 06:09:34 UTC (rev 8148)
+++ trunk/arch/blackfin/kernel/traps.c	2010-01-13 08:09:27 UTC (rev 8149)
@@ -138,7 +138,9 @@
 		if (!mm)
 			continue;
 
-		down_write(&mm->mmap_sem);
+		while (!down_read_trylock(&mm->mmap_sem))
+			barrier();
+
 		for (n = rb_first(&mm->mm_rb); n; n = rb_next(n)) {
 			struct vm_area_struct *vma;
 
@@ -184,11 +186,11 @@
 				if (buf[0] == '\0')
 					sprintf(buf, "[ %s ] dynamic memory", name);
 
-				up_write(&mm->mmap_sem);
+				up_read(&mm->mmap_sem);
 				goto done;
 			}
 		}
-		up_write(&mm->mmap_sem);
+		up_read(&mm->mmap_sem);
 
 		if (!in_atomic)
 			mmput(mm);
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to