On Tue, Sep 22, 2009 at 9:19 PM, Andrea Gasparini <[email protected]> wrote:
>> You may want to take a look at this page,
>>
>> http://www.scs.ch/~frey/linux/memorymap.html
>>
>> This also contains a sample source code, here,
>> http://www.scs.ch/~frey/linux/mmap.example.tar
>> I tried this code on ARM architecture on a swapless board which works
>> fine.
>>
>> If you could share exact code, that would be easy to debug the problem
>> you are facing.
>
> Oh, solved!! \o/
> Don't know why, but it didn't take correctly PROT_NONE flag on (userspace)
> mmap.
>

sorry, did not read this till now.....great that u have solved it.
but looking at your program, (read my previous email too), there are
still a few bugs:

a.   check this out:

http://www.linuxjournal.com/article/1287

"As we have to allocate the DMA-able buffer by kmalloc(), we have to
free it by kfree(). Linux won't allows us to do so when automatically
unmapping the user reference, but without the user reference, we don't
need the buffer any more. Therefore, we implemented a skel_malloc()
which actually allocates the driver buffer and remaps it to the user
space as well, and skel_free() which release that space and unmaps it
(after checking if a DMA-transfer is running)."

same logic as yours here.....so u have to unmap the pages before
freeing the pages.

-- 
Regards,
Peter Teoh

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to