Re: 2.6.20-rc2: kernel BUG at include/asm/dma-mapping.h:110!
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2006-12-29 21:53:30
Also in:
lkml
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2006-12-29 21:53:30
Also in:
lkml
Bisecting has identified this commit:
commit 9b7d9c096dd4e4baacc21b2588662bbb56f36c4e
Author: Stefan Richter [off-list ref]
Date: Wed Nov 22 21:44:34 2006 +0100
ieee1394: sbp2: convert from PCI DMA to generic DMA
API conversion without change in functionality
Signed-off-by: Stefan Richter [off-list ref]
I'm only seeing this on ppc64, ppc32 seems to be working fine.The patch looks totally bogus to me. It's passing a random struct device from the hbsp host data structure to the dma_map_* routines. which they can't do anything about. The dma_map_* routines only know about some bus types. That's always been the case (that's why you also can't pass a usb device's struct device to them for example). Mostly, PCI, possibly others depending on the platform. So if you are to pass a struct device pointer to dma_map_*, use the one inside the pci_dev of the host. Or have the host driver provide you with the struct device pointer (which is the one from the pci_dev * for PCI implementations, and others give you what they are on, assuming the platform can do dma-* on that device). Ben.