arm: dma-mapping: page align size before flush tlb

start and end must be page aligned while calling
flush_tlb_kernel_range else the last page may get
missed while invalidation.

Change-Id: Ibaab202c47a475623e197a13191b2fed638ce20b
Signed-off-by: Shiraz Hashim <shashim@codeaurora.org>
This commit is contained in:
Shiraz Hashim 2016-11-03 20:44:14 +05:30 committed by Gerrit - the friendly Code Review server
parent e95375540c
commit adcf23cfd5
2 changed files with 2 additions and 0 deletions

View file

@ -807,6 +807,7 @@ static void arm_dma_unremap(struct device *dev, void *remapped_addr,
unsigned int flags = VM_ARM_DMA_CONSISTENT | VM_USERMAP; unsigned int flags = VM_ARM_DMA_CONSISTENT | VM_USERMAP;
struct vm_struct *area; struct vm_struct *area;
size = PAGE_ALIGN(size);
remapped_addr = (void *)((unsigned long)remapped_addr & PAGE_MASK); remapped_addr = (void *)((unsigned long)remapped_addr & PAGE_MASK);
area = find_vm_area(remapped_addr); area = find_vm_area(remapped_addr);

View file

@ -455,6 +455,7 @@ static void arm64_dma_unremap(struct device *dev, void *remapped_addr,
{ {
struct vm_struct *area; struct vm_struct *area;
size = PAGE_ALIGN(size);
remapped_addr = (void *)((unsigned long)remapped_addr & PAGE_MASK); remapped_addr = (void *)((unsigned long)remapped_addr & PAGE_MASK);
area = find_vm_area(remapped_addr); area = find_vm_area(remapped_addr);