[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0804232217290.5444@sbz-30.cs.Helsinki.FI>
Date: Wed, 23 Apr 2008 22:19:22 +0300 (EEST)
From: Pekka J Enberg <penberg@...helsinki.fi>
To: Christoph Lameter <clameter@....com>
cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Zdenek Kabelac <zdenek.kabelac@...il.com>,
Ingo Molnar <mingo@...e.hu>, Jiri Slaby <jirislaby@...il.com>,
"Rafael J. Wysocki" <rjw@...k.pl>, paulmck@...ux.vnet.ibm.com,
David Miller <davem@...emloft.net>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-ext4@...r.kernel.org, herbert@...dor.apana.org.au
Subject: Re: 2.6.25-git2: BUG: unable to handle kernel paging request at
ffffffffffffffff
On Wed, 23 Apr 2008, Christoph Lameter wrote:
> We should have returned from the function and not printed this message. If
> we somehow skipped the test for !fault then end could have wrapped around
> which gets us to 4GB.
Aah, looks like it's just a silly bug in slab_fix(). If this looks ok to
Christoph, can you re-test with this patch applied Zdenek? That way we'll
actually know where SLUB expected to see POISON_INUSE.
Signed-off-by: Pekka Enberg <penberg@...helsinki.fi>
---
diff --git a/mm/slub.c b/mm/slub.c
index 7f8aaa2..dac50e3 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -456,6 +456,15 @@ static void print_page_info(struct page *page)
}
+static void __slab_bug(struct kmem_cache *s, char *buf)
+{
+ printk(KERN_ERR "========================================"
+ "=====================================\n");
+ printk(KERN_ERR "BUG %s: %s\n", s->name, buf);
+ printk(KERN_ERR "----------------------------------------"
+ "-------------------------------------\n\n");
+}
+
static void slab_bug(struct kmem_cache *s, char *fmt, ...)
{
va_list args;
@@ -464,11 +473,7 @@ static void slab_bug(struct kmem_cache *s, char *fmt, ...)
va_start(args, fmt);
vsnprintf(buf, sizeof(buf), fmt, args);
va_end(args);
- printk(KERN_ERR "========================================"
- "=====================================\n");
- printk(KERN_ERR "BUG %s: %s\n", s->name, buf);
- printk(KERN_ERR "----------------------------------------"
- "-------------------------------------\n\n");
+ __slab_bug(s, buf);
}
static void slab_fix(struct kmem_cache *s, char *fmt, ...)
@@ -533,7 +538,7 @@ static void slab_err(struct kmem_cache *s, struct page *page, char *fmt, ...)
va_start(args, fmt);
vsnprintf(buf, sizeof(buf), fmt, args);
va_end(args);
- slab_bug(s, fmt);
+ __slab_bug(s, buf);
print_page_info(page);
dump_stack();
}
--
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