mirror of https://github.com/torvalds/linux.git
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: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Michal Simek <michal.simek@xilinx.com> |
||
|---|---|---|
| .. | ||
| cpu | ||
| .gitignore | ||
| Makefile | ||
| asm-offsets.c | ||
| dma.c | ||
| early_printk.c | ||
| entry-nommu.S | ||
| entry.S | ||
| exceptions.c | ||
| ftrace.c | ||
| head.S | ||
| heartbeat.c | ||
| hw_exception_handler.S | ||
| intc.c | ||
| irq.c | ||
| kgdb.c | ||
| mcount.S | ||
| microblaze_ksyms.c | ||
| misc.S | ||
| module.c | ||
| platform.c | ||
| process.c | ||
| prom.c | ||
| prom_parse.c | ||
| ptrace.c | ||
| reset.c | ||
| setup.c | ||
| signal.c | ||
| stacktrace.c | ||
| sys_microblaze.c | ||
| syscall_table.S | ||
| timer.c | ||
| traps.c | ||
| unwind.c | ||
| vmlinux.lds.S | ||