|
@@ -226,7 +226,6 @@ int dma_common_mmap(struct device *dev, struct vm_area_struct *vma,
|
|
|
#ifndef CONFIG_ARCH_NO_COHERENT_DMA_MMAP
|
|
|
unsigned long user_count = vma_pages(vma);
|
|
|
unsigned long count = PAGE_ALIGN(size) >> PAGE_SHIFT;
|
|
|
- unsigned long pfn = page_to_pfn(virt_to_page(cpu_addr));
|
|
|
unsigned long off = vma->vm_pgoff;
|
|
|
|
|
|
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
|
|
@@ -234,12 +233,11 @@ int dma_common_mmap(struct device *dev, struct vm_area_struct *vma,
|
|
|
if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
|
|
|
return ret;
|
|
|
|
|
|
- if (off < count && user_count <= (count - off)) {
|
|
|
+ if (off < count && user_count <= (count - off))
|
|
|
ret = remap_pfn_range(vma, vma->vm_start,
|
|
|
- pfn + off,
|
|
|
+ page_to_pfn(virt_to_page(cpu_addr)) + off,
|
|
|
user_count << PAGE_SHIFT,
|
|
|
vma->vm_page_prot);
|
|
|
- }
|
|
|
#endif /* !CONFIG_ARCH_NO_COHERENT_DMA_MMAP */
|
|
|
|
|
|
return ret;
|