On Wed, Apr 03, 2013 at 09:14:01AM +0900, Minchan Kim wrote: > clear_huge_page(page, haddr, HPAGE_PMD_NR); > + /* > + * The memory barrier inside __SetPageUptodate makes sure that > + * clear_huge_page writes become visible after the set_pmd_at() s/after/before/ > + * write. > + */ > __SetPageUptodate(page); > > spin_lock(&mm->page_table_lock); > @@ -724,12 +729,6 @@ static int __do_huge_pmd_anonymous_page(struct mm_struct *mm, > } else { > pmd_t entry; > entry = mk_huge_pmd(page, vma); > - /* > - * The spinlocking to take the lru_lock inside > - * page_add_new_anon_rmap() acts as a full memory > - * barrier to be sure clear_huge_page writes become > - * visible after the set_pmd_at() write. > - */ > page_add_new_anon_rmap(page, vma, haddr); > set_pmd_at(mm, haddr, pmd, entry); > pgtable_trans_huge_deposit(mm, pgtable); > diff --git a/mm/memory.c b/mm/memory.c > index 494526a..d0da51e 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -3196,6 +3196,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma, > page = alloc_zeroed_user_highpage_movable(vma, address); > if (!page) > goto oom; > + /* > + * The memory barrier inside __SetPageUptodate makes sure that > + * preceeding stores to the page contents become visible after > + * the set_pte_at() write. > + */ s/after/before/ After the above correction it looks nice cleanup, thanks! Acked-by: Andrea Arcangeli <aarcange@xxxxxxxxxx> -- 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>