Re: 2nd attempt: help with dma_alloc_coherent() + dma_free_coherent()

From: Linus Torvalds
Date: Tue Jan 08 2013 - 11:39:32 EST


On Tue, Jan 8, 2013 at 7:51 AM, Jeff Chua <jeff.chua.linux@xxxxxxxxx> wrote:
> No response so far ... I'm sure someone know this stuff ... Thanks, Jeff.
>
> I'm trying to understand how this oops in the diva driver and it's just a
> simple dma_alloc_coherent() followed by dma_free_coherent(), but it oops.
> Why?

Umm. You're using a NULL 'dev' pointer?

iommu_no_mapping() will look if the device is a PCI device, and that's
where it oopses.

Now, it looks like some users "know" that the device doesn't matter
(which is true on some platforms), but that's bogus. The device is how
you even find out what the rules for DMA access are (see for example
dma_set_mask() etc), so giving a NULL device is insane.

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