|
@@ -211,7 +211,11 @@ static void *m_start(struct seq_file *m, loff_t *pos)
|
|
|
if (!mm || !mmget_not_zero(mm))
|
|
if (!mm || !mmget_not_zero(mm))
|
|
|
return NULL;
|
|
return NULL;
|
|
|
|
|
|
|
|
- down_read(&mm->mmap_sem);
|
|
|
|
|
|
|
+ if (down_read_killable(&mm->mmap_sem)) {
|
|
|
|
|
+ mmput(mm);
|
|
|
|
|
+ return ERR_PTR(-EINTR);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/* start from the Nth VMA */
|
|
/* start from the Nth VMA */
|
|
|
for (p = rb_first(&mm->mm_rb); p; p = rb_next(p))
|
|
for (p = rb_first(&mm->mm_rb); p; p = rb_next(p))
|
|
|
if (n-- == 0)
|
|
if (n-- == 0)
|