Thread (3 messages) 3 messages, 3 authors, 2006-12-29

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

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help