aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/dma-coherent.c
diff options
context:
space:
mode:
authorDmitry Baryshkov <dbaryshkov@gmail.com>2008-07-18 05:29:57 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-18 15:14:01 -0400
commit538c29d43ebdac2edcef96ac07982d2296a63077 (patch)
treec68b2e64c9c10e02adf6d24390df16d0f7dcb530 /kernel/dma-coherent.c
parentf6dc8ccaab6d8f63cbae1e6c73fe972b26f5376c (diff)
Generic dma-coherent: fix DMA_MEMORY_EXCLUSIVE
Don't rewrite successfull allocation return values in case the memory was marked with DMA_MEMORY_EXCLUSIVE. Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Cc: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/dma-coherent.c')
-rw-r--r--kernel/dma-coherent.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/kernel/dma-coherent.c b/kernel/dma-coherent.c
index 89a554cfd936..56dff5cb0f29 100644
--- a/kernel/dma-coherent.c
+++ b/kernel/dma-coherent.c
@@ -105,8 +105,7 @@ int dma_alloc_from_coherent(struct device *dev, ssize_t size,
105 *dma_handle = mem->device_base + (page << PAGE_SHIFT); 105 *dma_handle = mem->device_base + (page << PAGE_SHIFT);
106 *ret = mem->virt_base + (page << PAGE_SHIFT); 106 *ret = mem->virt_base + (page << PAGE_SHIFT);
107 memset(*ret, 0, size); 107 memset(*ret, 0, size);
108 } 108 } else if (mem->flags & DMA_MEMORY_EXCLUSIVE)
109 if (mem->flags & DMA_MEMORY_EXCLUSIVE)
110 *ret = NULL; 109 *ret = NULL;
111 } 110 }
112 return (mem != NULL); 111 return (mem != NULL);