Messages in this thread |  | | Date | Wed, 9 Jan 2013 01:17:16 +0800 | Subject | Re: 2nd attempt: help with dma_alloc_coherent() + dma_free_coherent() | From | Jeff Chua <> |
| |
On Wed, Jan 9, 2013 at 12:39 AM, Linus Torvalds <torvalds@linux-foundation.org> wrote: > On Tue, Jan 8, 2013 at 7:51 AM, Jeff Chua <jeff.chua.linux@gmail.com> 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
Interesting, but there are 54 lines under the kernel directories that use "dma_alloc_coherent(NULL," followed by "dma_free_coherent(NULL,"
So, shouldn't they be fixed as well? ... unless they are so old that nobody cares anymore ...
# find . -exec grep -H "dma_alloc_coherent(NULL" {} \; | wc -l 54
#find . -exec grep -H "dma_free_coherent(NULL" {} \; | wc -l 72
Thanks, Jeff
|  |