Browse Source

[S390] uaccess_pt: add missing down_read() and convert to is_init().

Doesn't seem to be a good idea to duplicate code :)

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Heiko Carstens 18 years ago
parent
commit
22155914b6
1 changed files with 3 additions and 2 deletions
  1. 3 2
      arch/s390/lib/uaccess_pt.c

+ 3 - 2
arch/s390/lib/uaccess_pt.c

@@ -8,8 +8,8 @@
  */
  */
 
 
 #include <linux/errno.h>
 #include <linux/errno.h>
-#include <asm/uaccess.h>
 #include <linux/mm.h>
 #include <linux/mm.h>
+#include <asm/uaccess.h>
 #include <asm/futex.h>
 #include <asm/futex.h>
 
 
 static inline int __handle_fault(struct mm_struct *mm, unsigned long address,
 static inline int __handle_fault(struct mm_struct *mm, unsigned long address,
@@ -60,8 +60,9 @@ out:
 
 
 out_of_memory:
 out_of_memory:
 	up_read(&mm->mmap_sem);
 	up_read(&mm->mmap_sem);
-	if (current->pid == 1) {
+	if (is_init(current)) {
 		yield();
 		yield();
+		down_read(&mm->mmap_sem);
 		goto survive;
 		goto survive;
 	}
 	}
 	printk("VM: killing process %s\n", current->comm);
 	printk("VM: killing process %s\n", current->comm);