Re: mm: mmap_sem lock assertion failure in __mlock_vma_pages_range

From: Sasha Levin
Date: Tue Mar 11 2014 - 16:36:18 EST


On 03/11/2014 04:30 PM, Andrew Morton wrote:
I worry about what happens if __get_user_pages decides to do

if (ret & VM_FAULT_RETRY) {
if (nonblocking)
*nonblocking = 0;
return i;
}

uh-oh, that just cleared __mm_populate()'s `locked' variable and we'll
forget to undo mmap_sem. That won't explain this result, but it's a
potential problem.

That's actually seems right because if 'ret & VM_FAULT_RETRY' is true it means that
lock_page_or_retry() was supposed to release mmap_sem for us.


Thanks,
Sasha
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/