Re: [3.9-rc1 x86] Bug in ioremap code?

From: Dave Hansen
Date: Tue Mar 05 2013 - 17:26:32 EST


Just booted a qemu-kvm guest with this .config. It didn't trip over
anything, so I'm looking for some more ACPI tables to feed in to it.

Looking through the code, it looks like this is the __pa() that's
hitting the BUG_ON():

static int __cpa_process_fault(struct cpa_data *cpa, unsigned long
...
if (within(vaddr, PAGE_OFFSET,
PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT))) {
cpa->numpages = 1;
cpa->pfn = __pa(vaddr) >> PAGE_SHIFT;
return 0;
} else {

The within() check should ensure that we're not doing __pa() on
vmalloc() addresses. So, either somebody managed to remap part of the
kernel identity mapping, or that within() check is failing us somehow.

What kind of hardware is this?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/