• Lars-Peter Clausen's avatar
    microblaze: Fix mmap for cache coherent memory · 3a8e3265
    Lars-Peter Clausen authored
    When running in non-cache coherent configuration the memory that was
    allocated with dma_alloc_coherent() has a custom mapping and so there is no
    1-to-1 relationship between the kernel virtual address and the PFN. This
    means that virt_to_pfn() will not work correctly for those addresses and the
    default mmap implementation in the form of dma_common_mmap() will map some
    random, but not the requested, memory area.
    
    Fix this by providing a custom mmap implementation that looks up the PFN
    from the page table rather than using virt_to_pfn.
    Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: default avatarMichal Simek <michal.simek@xilinx.com>
    3a8e3265
pgtable.h 18.1 KB