mmap & no cache regions

Steve Rossi srossi at
Wed Nov 14 08:41:46 EST 2001

Hi All -

I'm writing a driver for custom hardware on an 8xx based system. I'm
using MontaVista's Journeyman 2.0 (2.4.2 kernel). The driver uses
consistent_alloc to allocate a region of memory which is used for DMA. I
mmap that region to user space (using remap_page_range) such that the
user-level application can directly access the data that has been DMA'd
from the device. I learned that consistent_alloc is not sufficent to
guarantee cache coherency on the mmaped region - in fact I had to mark
these pages PAGE_NO_CACHE in the user space application's memory map as
well. Having figured that out, it all works great now - but my question
is: do I need to pay attention to how I deallocate and unmap that
space? I use consistent_free in the driver so that takes care of marking
the pages cacheable again in the kernel level mapping - but is it safe
to assume that the application's memory map will be destroyed so I don't
have to worry about marking the pages in that map as cacheable again?


Steven K. Rossi                     srossi at
Staff Engineer
Multimedia Communications Research Laboratory
Motorola Labs

** Sent via the linuxppc-embedded mail list. See

More information about the Linuxppc-embedded mailing list