mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
mm: validate the mm before dropping the mmap lock
Commit408579cd62
("mm: Update do_vmi_align_munmap() return semantics") made the return value and locking semantics of do_vmi_align_munmap() more straightforward, but in the process it ended up unlocking the mmap lock just a tad too early: the debug code doing the mmap layout validation still needs to run with the lock held, or things might change under it while it's trying to validate things. So just move the unlocking to after the validate_mm() call. Reported-by: kernel test robot <oliver.sang@intel.com> Link: https://lore.kernel.org/lkml/ZKIsoMOT71uwCIZX@xsang-OptiPlex-9020/ Fixes:408579cd62
("mm: Update do_vmi_align_munmap() return semantics") Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f66066bc51
commit
ae80b40419
@ -2554,11 +2554,10 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma,
|
|||||||
mas_set(&mas_detach, start);
|
mas_set(&mas_detach, start);
|
||||||
remove_mt(mm, &mas_detach);
|
remove_mt(mm, &mas_detach);
|
||||||
__mt_destroy(&mt_detach);
|
__mt_destroy(&mt_detach);
|
||||||
|
validate_mm(mm);
|
||||||
if (unlock)
|
if (unlock)
|
||||||
mmap_read_unlock(mm);
|
mmap_read_unlock(mm);
|
||||||
|
|
||||||
|
|
||||||
validate_mm(mm);
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
clear_tree_failed:
|
clear_tree_failed:
|
||||||
|
Loading…
Reference in New Issue
Block a user