Messages in this thread | | | Subject | Re: can device drivers return non-ram via vm_ops->nopage? | From | David Woodhouse <> | Date | Sun, 21 Mar 2004 22:23:15 +0000 |
| |
On Sun, 2004-03-21 at 13:53 -0800, Linus Torvalds wrote: > So I really put my veto on "nopage()" returning a PFN. That's just wrong, > wrong, wrong. It returns a "struct page" pointer, and it has lots of > reasons for that.
That's fine -- I wasn't suggesting nopage() should return a PFN.
I was suggesting that if someone wants to map something they're given by dma_alloc_coherent() into memory, they should be given a PFN to deal with -- _not_ a "struct page". Therefore, you can't use nopage() for mapping dma_coherent memory into userspace.
Basically, we should consider the stuff returned by dma_alloc_coherent to be 'non-RAM' in the context of your previous statement: 'If a driver wants to map non-RAM pages, that's perfectly ok, but it MUST NOT happen through "nopage()".'
There are machines where you _cannot_ sensibly use host memory for dma_coherent() allocations, but on which there _is_ a few megabytes of SRAM hanging off the PCI bus which was put there specifically for that purpose. So dma_alloc_coherent() returns something for which there is not a valid 'struct page'.
-- dwmw2
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |