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."