linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Mapping huge user buffers for DMA
@ 2005-08-30 17:27 Stephen Williams
  2005-08-31  0:10 ` Roger Larsson
  2005-08-31 14:03 ` Clemens Koller
  0 siblings, 2 replies; 4+ messages in thread
From: Stephen Williams @ 2005-08-30 17:27 UTC (permalink / raw)
  To: linuxppc-embedded


I have a PPC405GPr system with an image processing device, that
is creating potentially huge amounts of data. In one setup I
have a 256Meg system, and I'm trying to map a 192Meg destination
buffer using map_user_kiovec and an array of kiobufs.

I'm finding, however, that I'm getting an Oops in map_user_kiovec
when it tries this, and I'm wondering where I need to look for
any limits I might be overrunning.

Also, I've been considering skipping kiobufs all together and
instead using code like this (lifted from map_user_kiobuf)

	/* Try to fault in all of the necessary pages */
	down_read(&mm->mmap_sem);
	/* rw==READ means read from disk, write into memory area */
	err = get_user_pages(current, mm, va, pgcount,
			(rw==READ), 0, iobuf->maplist, NULL);
	up_read(&mm->mmap_sem);

to get the user pages directly. This is really what I want, and
I do not need the other functionality of kiobufs. Is the
get_user_pages function kosher for use by drivers? Is there
a limit to what get_user_pages may map?


-- 
Steve Williams                "The woods are lovely, dark and deep.
steve at icarus.com           But I have promises to keep,
http://www.icarus.com         and lines to code before I sleep,
http://www.picturel.com       And lines to code before I sleep."

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-08-31 14:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-30 17:27 Mapping huge user buffers for DMA Stephen Williams
2005-08-31  0:10 ` Roger Larsson
2005-08-31  0:35   ` Stephen Williams
2005-08-31 14:03 ` Clemens Koller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).