On Wed, 13 Feb 2008 10:10:24 +0100 Haavard Skinnemoen <hskinnemoen@xxxxxxxxx> wrote: > > > ip_tables: (C) 2000-2006 Netfilter Core Team > > > nf_conntrack version 0.5.0 (1024 buckets, 4096 max) > > > Unable to handle kernel paging request at virtual address d76a7138 > > > ptbr = 91d3b000 pgd = 0000e5f3 pte = 00014370 > > Hmm. It actually found something in the pte? Looks like a swap > entry...but that doesn't make sense at that virtual address. Userspace > is below 0x80000000. (...) > > If so, the bug could be almost anywhere - in slab, or in some random piece > > of code which scribbles on slab's data structures. > > Yes, it looks like memory corruption, especially since the page table > appears to be corrupted as well. But I'll have a look and see if the > code that dumps the pte is doing something bogus... Yes, that code is indeed buggy. The below patch should fix it, although the page tables probably won't contain anything interesting, and it could still be a memory corruption issue. And it definitely won't fix the real issue. I have a couple of patches that will eliminate the need for this fixup (and probably improve performance as well), but they are probably 2.6.26 material. Haavard diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c index 6560cb1..ce4e429 100644 --- a/arch/avr32/mm/fault.c +++ b/arch/avr32/mm/fault.c @@ -189,6 +189,8 @@ no_context: page = sysreg_read(PTBR); printk(KERN_ALERT "ptbr = %08lx", page); + if (address >= TASK_SIZE) + page = (unsigned long)swapper_pg_dir; if (page) { page = ((unsigned long *)page)[address >> 22]; printk(" pgd = %08lx", page); - To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html