* [PATCH] bad_page: clear reclaim and slab
@ 2005-06-06 19:52 Hugh Dickins
0 siblings, 0 replies; only message in thread
From: Hugh Dickins @ 2005-06-06 19:52 UTC (permalink / raw)
To: Andrew Morton; +Cc: Nikita Danilov, linux-kernel
Since free_pages_check complains if PG_reclaim or PG_slab is set, bad_page
ought to clear them to avoid repetitive reports (Nikita noticed this too).
Let prep_new_page check page_count and PG_slab as free_pages_check does.
Signed-off-by: Hugh Dickins <hugh@veritas.com>
---
mm/page_alloc.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
--- 2.6.12-rc6/mm/page_alloc.c 2005-05-25 18:09:21.000000000 +0100
+++ linux/mm/page_alloc.c 2005-06-04 20:41:55.000000000 +0100
@@ -105,11 +105,13 @@ static void bad_page(const char *functio
printk(KERN_EMERG "Backtrace:\n");
dump_stack();
printk(KERN_EMERG "Trying to fix it up, but a reboot is needed\n");
- page->flags &= ~(1 << PG_private |
+ page->flags &= ~(1 << PG_lru |
+ 1 << PG_private |
1 << PG_locked |
- 1 << PG_lru |
1 << PG_active |
1 << PG_dirty |
+ 1 << PG_reclaim |
+ 1 << PG_slab |
1 << PG_swapcache |
1 << PG_writeback);
set_page_count(page, 0);
@@ -440,14 +442,17 @@ void set_page_refs(struct page *page, in
*/
static void prep_new_page(struct page *page, int order)
{
- if (page->mapping || page_mapcount(page) ||
- (page->flags & (
+ if ( page_mapcount(page) ||
+ page->mapping != NULL ||
+ page_count(page) != 0 ||
+ (page->flags & (
+ 1 << PG_lru |
1 << PG_private |
1 << PG_locked |
- 1 << PG_lru |
1 << PG_active |
1 << PG_dirty |
1 << PG_reclaim |
+ 1 << PG_slab |
1 << PG_swapcache |
1 << PG_writeback )))
bad_page(__FUNCTION__, page);
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-06-06 19:56 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-06-06 19:52 [PATCH] bad_page: clear reclaim and slab Hugh Dickins
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®