Messages in this thread | | | Subject | Re: [PATCH 02/13] mm: Revalidate anon_vma in page_lock_anon_vma() | From | Peter Zijlstra <> | Date | Tue, 25 May 2010 11:01:56 +0200 |
| |
On Mon, 2010-05-24 at 12:32 -0700, Andrew Morton wrote: > On Fri, 09 Apr 2010 10:44:53 +0200 > Peter Zijlstra <peterz@infradead.org> wrote: > > > On Fri, 2010-04-09 at 16:29 +0900, KOSAKI Motohiro wrote: > > > > > > > > > diff --git a/mm/rmap.c b/mm/rmap.c > > > index 8b088f0..b4a0b5b 100644 > > > --- a/mm/rmap.c > > > +++ b/mm/rmap.c > > > @@ -295,7 +295,7 @@ struct anon_vma *page_lock_anon_vma(struct page > > > *page) > > > unsigned long anon_mapping; > > > > > > rcu_read_lock(); > > > - anon_mapping = (unsigned long) ACCESS_ONCE(page->mapping); > > > + anon_mapping = (unsigned long) rcu_dereference(page->mapping); > > > if ((anon_mapping & PAGE_MAPPING_FLAGS) != PAGE_MAPPING_ANON) > > > goto out; > > > if (!page_mapped(page)) > > > > Yes, I think this is indeed required. > > > > I'll do a new version of the patch that includes the comment updates > > requested by Andrew. > > Either this didn't happen or I lost the patch.
It didn't happen, I got distracted.
> I parked mm-revalidate-anon_vma-in-page_lock_anon_vma.patch for now. > Hopefully everything still works without it..
Yes, I think it actually does due to a number of really non-obvious things ;-)
I'll try and get back to my make mmu_gather preemptible stuff shortly and write comments there.
| |