last = vma;
else {
tmp = *mas;
- last = mas_next(&tmp, -1);
+ mas_reset(&tmp);
+ mas_set(&tmp, end - 1);
+ last = mas_walk(&tmp);
}
/* Does it split the last one? */
if (!vma)
return 0;
- mas->last = end - 1;
+// printk("vma found at %lx %lu\n", vma->vm_start, vma->vm_end);
+ mas_set_range(mas, start, end - 1);
return do_mas_align_munmap(mas, vma, mm, start, end, uf, downgrade);
}
/* do_munmap() - Wrapper function for non-maple tree aware do_munmap() calls.
mas_set_range(&mas, addr, end - 1);
mas_walk(&mas);
vma_mas_link(mm, vma, &mas);
+
/* Once vma denies write, undo our temporary denial count */
if (file) {
unmap_writable: