summary refs log tree commit diff
path: root/arch/s390
diff options
context:
space:
mode:
authorAkinobu Mita <mita@miraclelinux.com>2006-09-28 16:55:18 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2006-09-28 16:55:18 +0200
commitbac9c66cd25e134077b284fc59bee6e5a8475d33 (patch)
tree5fa9a8bbda52f10f613060849f13e403a7dedb89 /arch/s390
parenta77c64c1a641950626181b4857abb701d8f38ccc (diff)
downloadlinux-bac9c66cd25e134077b284fc59bee6e5a8475d33.tar.gz
[S390] init task memory faults.
Lock for mmap_sem is missing on page fault retry for init task
when it fails due to out of memory.

Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/mm/fault.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 44f0cda7e72e..a393c308bb29 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -355,6 +355,7 @@ out_of_memory:
 	up_read(&mm->mmap_sem);
 	if (tsk->pid == 1) {
 		yield();
+		down_read(&mm->mmap_sem);
 		goto survive;
 	}
 	printk("VM: killing process %s\n", tsk->comm);