Re: [PATCH] fs/proc/task_mmu: fix missed VMAs when reading /proc/PID/maps and friends

From: Lorenzo Stoakes (ARM)

Date: Mon Oct 26 2026 - 09:52:30 EST


On Mon, Oct 26, 2026 at 01:35:23PM +0000, Lorenzo Stoakes (ARM) wrote:
> /* Returns true if mmap write unlocked. */
> static bool reset_walk_if_mmap_lock_dropped(struct vma_iterator *vmi,
> struct mm_struct *mm, unsigned long from_addr,
> unsigned int *last_seq)
> {
> if (vma_tree_maybe_changed(mm, *last_seq)) {
> /* Reset walk and re-speculate. */
> vma_iter_set(vmi, from_addr);
> return mmap_lock_speculate_try_begin(mm, last_seq);
> }
>
> return true;
> }

Actually, nicer as:

/* Returns true if mmap write unlocked. */
static bool reset_walk_if_mmap_lock_dropped(struct vma_iterator *vmi,
struct mm_struct *mm, unsigned long from_addr,
unsigned int *last_seq)
{
if (!vma_tree_maybe_changed(mm, *last_seq))
return true;

/* Reset walk and re-speculate. */
vma_iter_set(vmi, from_addr);
return mmap_lock_speculate_try_begin(mm, last_seq);
}

--
Cheers, Lorenzo