Re: usb_mon oops Re: tcpdump crashes 2.6.29.1 (and 2.6.29-rc5)

From: Pete Zaitcev
Date: Mon Apr 13 2009 - 19:42:51 EST


On Thu, 9 Apr 2009 09:59:31 -0400, "John Stoffel" <john@xxxxxxxxxxx> wrote:

> Here's a dmesg of bootup:

> [ 0.000000] Linux version 2.6.29.1 (john@sail) (gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) ) #24 SMP PREEMPT Tue Apr 7 11:30:52 EDT 2009
> [ 0.000999] Checking aperture...
> [ 0.000999] No AGP bridge found
> [ 0.000999] Node 0: aperture @ 20000000 size 32 MB
> [ 0.000999] Aperture pointing to e820 RAM. Ignoring.
> [ 0.000999] Your BIOS doesn't leave a aperture memory hole
> [ 0.000999] Please enable the IOMMU option in the BIOS setup
> [ 0.000999] This costs you 64 MB of RAM
> [ 0.000999] Mapping aperture over 65536 KB of RAM @ 20000000

> [ 1396.271782] BUG: unable to handle kernel paging request at ffff880020a15cc0

So 20a15000 is in the aperture. Oh well, I screwed up. I meant to
check for this back in 2006 but forgot, and miraclously it worked
until now.

Here's the problem:

pg = phys_to_page(dma_addr);
map = kmap_atomic(pg, KM_IRQ0);
offset = mon_copy_to_buff(rp, offset, map + page_off, step_len);
kunmap_atomic(map, KM_IRQ0);

Obviously we don't want the page that's overlayed by the aperture,
but the page where IOMMU is pointing.

-- Pete
--
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/