[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100128014312.47c5045d@annuminas.surriel.com>
Date: Thu, 28 Jan 2010 01:43:12 -0500
From: Rik van Riel <riel@...hat.com>
To: linux-mm@...ck.org
Cc: linux-kernel@...r.kernel.org,
KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>,
lwoodman@...hat.com, akpm@...ux-foundation.org,
Lee Schermerhorn <Lee.Schermerhorn@...com>, aarcange@...hat.com
Subject: [PATCH -mm] rmap: remove obsolete check from __page_check_anon_rmap
When an anonymous page is inherited from a parent process, the
vma->anon_vma can differ from the page anon_vma. This can trip
up __page_check_anon_rmap, which is indirectly called from
do_swap_page().
Remove that obsolete check to prevent an oops.
Signed-off-by: Rik van Riel <riel@...hat.com>
---
The previous patch survived a short AIM7 run and only got upset when I
invoked pkill. Presumably pkill paged in a page that was created in the
parent process of the process is was scanning. With this patch it all
seems to be stable.
diff --git a/mm/rmap.c b/mm/rmap.c
index de7fde0..9e63424 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -755,9 +755,6 @@ static void __page_check_anon_rmap(struct page *page,
* are initially only visible via the pagetables, and the pte is locked
* over the call to page_add_new_anon_rmap.
*/
- struct anon_vma *anon_vma = vma->anon_vma;
- anon_vma = (void *) anon_vma + PAGE_MAPPING_ANON;
- BUG_ON(page->mapping != (struct address_space *)anon_vma);
BUG_ON(page->index != linear_page_index(vma, address));
#endif
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists