lkml.org 
[lkml]   [2015]   [May]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2] rmap: fix theoretical race between do_wp_page and shrink_active_list
On Tue, May 12, 2015 at 03:28:40PM -0700, Andrew Morton wrote:
> Please let's not put things like WRITE_ONCE() in there without
> documenting them - otherwise it's terribly hard for readers to work out
> why it was added.
>
> How's this look?
>
> --- a/mm/rmap.c~rmap-fix-theoretical-race-between-do_wp_page-and-shrink_active_list-fix
> +++ a/mm/rmap.c
> @@ -950,6 +950,11 @@ void page_move_anon_rmap(struct page *pa
> VM_BUG_ON_PAGE(page->index != linear_page_index(vma, address), page);
>
> anon_vma = (void *) anon_vma + PAGE_MAPPING_ANON;
> + /*
> + * Ensure that anon_vma and the PAGE_MAPPING_ANON bit are written
> + * simultaneously, so a concurrent reader (eg shrink_active_list) will
> + * not see one without the other.
> + */
> WRITE_ONCE(page->mapping, (struct address_space *) anon_vma);
> }

Looks good to me.

Thanks,
Vladimir


\
 
 \ /
  Last update: 2015-05-13 10:21    [W:0.538 / U:0.532 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site