summaryrefslogtreecommitdiffstats
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
parentMerge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/... (diff)
downloadlinux-bac9c66cd25e134077b284fc59bee6e5a8475d33.tar.xz
linux-bac9c66cd25e134077b284fc59bee6e5a8475d33.zip
[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);