patch-2.4.3 linux/arch/s390x/mm/fault.c

Next file: linux/arch/s390x/tools/dasdfmt/dasdfmt.c
Previous file: linux/arch/s390x/kernel/sys_s390.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.2/linux/arch/s390x/mm/fault.c linux/arch/s390x/mm/fault.c
@@ -122,7 +122,7 @@
 	 * task's user address space, so we search the VMAs
 	 */
 
-        down(&mm->mmap_sem);
+        down_read(&mm->mmap_sem);
 
         vma = find_vma(mm, address);
         if (!vma) {
@@ -176,7 +176,7 @@
 		goto out_of_memory;
 	}
 
-        up(&mm->mmap_sem);
+        up_read(&mm->mmap_sem);
         return;
 
 /*
@@ -184,7 +184,7 @@
  * Fix it, but check if it's kernel or user first..
  */
 bad_area:
-        up(&mm->mmap_sem);
+        up_read(&mm->mmap_sem);
 
         /* User mode accesses just cause a SIGSEGV */
         if (psw_mask & PSW_PROBLEM_STATE) {
@@ -243,14 +243,14 @@
  * us unable to handle the page fault gracefully.
 */
 out_of_memory:
-	up(&mm->mmap_sem);
+	up_read(&mm->mmap_sem);
 	printk("VM: killing process %s\n", tsk->comm);
 	if (psw_mask & PSW_PROBLEM_STATE)
 		do_exit(SIGKILL);
 	goto no_context;
 
 do_sigbus:
-	up(&mm->mmap_sem);
+	up_read(&mm->mmap_sem);
 
 	/*
 	 * Send a sigbus, regardless of whether we were in kernel

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)