Re: [PATCH] mm: fix potential anon_vma locking issue in mprotect()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue,  4 Sep 2012 16:39:49 -0700
Michel Lespinasse <walken@xxxxxxxxxx> wrote:

> This change fixes an anon_vma locking issue in the following situation:
> - vma has no anon_vma
> - next has an anon_vma
> - vma is being shrunk / next is being expanded, due to an mprotect call
> 
> We need to take next's anon_vma lock to avoid races with rmap users
> (such as page migration) while next is being expanded.
>
> ...
>
> --- a/mm/mmap.c
> +++ b/mm/mmap.c
> @@ -578,8 +578,12 @@ again:			remove_next = 1 + (end > next->vm_end);
>  	 */
>  	if (vma->anon_vma && (importer || start != vma->vm_start)) {
>  		anon_vma = vma->anon_vma;
> +		VM_BUG_ON(adjust_next && next->anon_vma &&
> +			  anon_vma != next->anon_vma);
> +	} else if (adjust_next && next->anon_vma)
> +		anon_vma = next->anon_vma;
> +	if (anon_vma)
>  		anon_vma_lock(anon_vma);
> -	}
>  
>  	if (root) {
>  		flush_dcache_mmap_lock(mapping);

hm, OK.  How serious was that bug?  I'm suspecting "only needed in
3.7".

If we want to fix this in 3.6 and perhaps -stable, I'm a bit worried
about that new VM_BUG_ON().  Not that I don't trust you or anything,
but these things tend to go bang when people least expected it.


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]