diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index fdbed8370db6e4bb8775f756e93755bc2a5b2c24..b7e31836a005f1e08dba7c3a11f786bcfef380b4 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -210,15 +210,13 @@ static void *m_start(struct seq_file *m, loff_t *pos) static void *m_next(struct seq_file *m, void *v, loff_t *pos) { struct proc_maps_private *priv = m->private; - struct vm_area_struct *vma = v; struct vm_area_struct *tail_vma = priv->tail_vma; - struct vm_area_struct *next; + struct vm_area_struct *vma = v, *next = NULL; (*pos)++; - if (vma && (vma != tail_vma) && vma->vm_next) - return vma->vm_next; + if (vma != tail_vma) + next = vma->vm_next ?: tail_vma; - next = (vma != tail_vma) ? tail_vma : NULL; if (!next) vma_stop(priv); return next;