[lkml]   [1998]   [Nov]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: virt_to_bus and >1G of memory (was MAX_DMA_ADDRESS ...)
On Fri, Nov 13, 1998 at 02:32:02AM -0800, David S. Miller wrote:
> Date: Fri, 13 Nov 1998 06:29:52 +0000
> From: Jamie Lokier <>
> One thing I've seen in some drivers is that virt_to_bus doesn't
> work on a user-space address, _or_ an address in a module.
> Right and I think it should stay this way, you must use normal
> physical page references and never vmalloc() or user mapping stuff
> when passing around buffers which should be DMA'd from/to

Oh, I agree.

Just pointing out that some drivers already use user space address, and
walk the page tables to translate. See bttv.c.

> Changing this would cause a lot of headaches for not only Intel, but
> various other ports as well. As mentioned in another email, the "walk
> the page tables" trick won't even work on sparc64 because no page
> tables exist at all for the kernel mappings.

:-) It's not a problem provided the translation routine knows when an
address is translated and when it is direct. Existing code doesn't know
about x86 4M pages either so it will break on x86 with a kernel address.

> Think about making any changes in this area later in 2.3.x, not now.
> And I think our energy right now is best directed at getting 2.2.x out
> the door already, not dreaming about proposed cleanups in 2.3.x


I am working on a generic user-space DMA device anyway, because I need
one. It's a driver, so doesn't conflict in any way with 2.2 issues. It
will clean up a lot of things.

Some thoughts on 2.3 cleanups spun off from that; I don't intend to
distract any further, be assured.

Stay on schedule,
-- Jamie

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:45    [W:0.047 / U:1.044 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site