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>
@@ -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);