From 93b7b634092bc5d23af14c880866b3ac2e26f7d4 Mon Sep 17 00:00:00 2001 From: Krishna Reddy Date: Tue, 8 Oct 2013 22:20:56 -0700 Subject: base: dma-coherent: fix overflow issue fix overflow issue during coherent memory free. Bug 1375907 Change-Id: Ib7164508acf9dd399d1028bd07c5b532c205aa02 Signed-off-by: Krishna Reddy Reviewed-on: http://git-master/r/283737 (cherry picked from commit 8cd3e197e00cb4402f0b6d01aa3ea7412baaf58d) Reviewed-on: http://git-master/r/294259 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Vandana Salve --- drivers/base/dma-coherent.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/base') diff --git a/drivers/base/dma-coherent.c b/drivers/base/dma-coherent.c index 7e4d53183b4a..8ca472af251b 100644 --- a/drivers/base/dma-coherent.c +++ b/drivers/base/dma-coherent.c @@ -190,8 +190,8 @@ int dma_release_from_coherent(struct device *dev, int order, void *vaddr) else mem_addr = mem->virt_base; - if (mem && vaddr >= mem_addr && vaddr < - (mem_addr + (mem->size << PAGE_SHIFT))) { + if (mem && vaddr >= mem_addr && + vaddr - mem_addr < mem->size << PAGE_SHIFT) { int page = (vaddr - mem_addr) >> PAGE_SHIFT; bitmap_release_region(mem->bitmap, page, order); -- cgit v1.2.3