Re: [PATCH] proc: nommu: /proc/<pid>/maps: release mmap read lock

From: Oleg Nesterov
Date: Fri Sep 15 2023 - 08:17:52 EST


On 09/14, Ben Wolsieffer wrote:
>
> Fixes: 47fecca15c09 ("fs/proc/task_nommu.c: don't use priv->task->mm")
> Signed-off-by: Ben Wolsieffer <ben.wolsieffer@xxxxxxxxxxx>
> ---
> fs/proc/task_nommu.c | 27 +++++++++++++++------------
> 1 file changed, 15 insertions(+), 12 deletions(-)

Acked-by: Oleg Nesterov <oleg@xxxxxxxxxx>


-------------------------------------------------------------------------------
Sorry for the offtopic question. I know NOTHING about nommu and when I tried to
review this patch I was puzzled by

/* See m_next(). Zero at the start or after lseek. */
if (addr == -1UL)
return NULL;

at the start of m_start(). OK, lets look at

static void *m_next(struct seq_file *m, void *_p, loff_t *pos)
{
struct vm_area_struct *vma = _p;

*pos = vma->vm_end;
return find_vma(vma->vm_mm, vma->vm_end);
}

where does this -1UL come from? Does this mean that on nommu

last_vma->vm_end == -1UL

or what?

fs/proc/task_mmu.c has the same check at the start, but in this case
the "See m_next()" comment actually helps.

Just curious, thanks.

Oleg.