DMA mapping and loadable modules

2 messages, 2 authors, 2001-02-08 · open the first message on its own page

DMA mapping and loadable modules

From: Dan Malek <hidden>
Date: 2001-02-08 19:09:13

It's amazing how things like this happen.........Today, at least
three different instances of this bug appeared, including one of
my own.

There is a problem when loadable drivers with "static" data stuctures
try to determine the physical address for DMA.  The "virt_to_bus"
macro doesn't work for these (or for any dynamically allocated memory).
These drivers will work fine when compiled in, and break when loaded
as modules.

As part of the IBM4xx and MPC8xx updates I have hanging around in my
tree, I have modified the virt_to_bus and other macros to be a little
smarter, and work the same on all platforms.  Basically, if there isn't
a BAT or other large mapping, it will search the page tables for the
proper physical address.  It still doesn't work exactly correct on the
PMac, but I hope to have it done today.


	-- Dan

--

	I like MMUs because I don't have a real life.

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

Re: DMA mapping and loadable modules

From: Roman Zippel <hidden>
Date: 2001-02-08 19:43:01

Hi,

On Thu, 8 Feb 2001, Dan Malek wrote:
There is a problem when loadable drivers with "static" data stuctures
try to determine the physical address for DMA.  The "virt_to_bus"
macro doesn't work for these (or for any dynamically allocated memory).
Sure, they can use get_free_page/kmalloc and it will work.
These drivers will work fine when compiled in, and break when loaded
as modules.
The same problem exists on any architecture.

bye, Roman


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help