diff options
| -rw-r--r-- | kernel/dma/remap.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/kernel/dma/remap.c b/kernel/dma/remap.c index 18cc09fc27b9..7a723194ecbe 100644 --- a/kernel/dma/remap.c +++ b/kernel/dma/remap.c | |||
| @@ -204,8 +204,7 @@ void *arch_dma_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle, | |||
| 204 | ret = dma_alloc_from_pool(size, &page, flags); | 204 | ret = dma_alloc_from_pool(size, &page, flags); |
| 205 | if (!ret) | 205 | if (!ret) |
| 206 | return NULL; | 206 | return NULL; |
| 207 | *dma_handle = phys_to_dma(dev, page_to_phys(page)); | 207 | goto done; |
| 208 | return ret; | ||
| 209 | } | 208 | } |
| 210 | 209 | ||
| 211 | page = __dma_direct_alloc_pages(dev, size, dma_handle, flags, attrs); | 210 | page = __dma_direct_alloc_pages(dev, size, dma_handle, flags, attrs); |
| @@ -215,8 +214,10 @@ void *arch_dma_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle, | |||
| 215 | /* remove any dirty cache lines on the kernel alias */ | 214 | /* remove any dirty cache lines on the kernel alias */ |
| 216 | arch_dma_prep_coherent(page, size); | 215 | arch_dma_prep_coherent(page, size); |
| 217 | 216 | ||
| 218 | if (attrs & DMA_ATTR_NO_KERNEL_MAPPING) | 217 | if (attrs & DMA_ATTR_NO_KERNEL_MAPPING) { |
| 219 | return page; /* opaque cookie */ | 218 | ret = page; /* opaque cookie */ |
| 219 | goto done; | ||
| 220 | } | ||
| 220 | 221 | ||
| 221 | /* create a coherent mapping */ | 222 | /* create a coherent mapping */ |
| 222 | ret = dma_common_contiguous_remap(page, size, VM_USERMAP, | 223 | ret = dma_common_contiguous_remap(page, size, VM_USERMAP, |
| @@ -227,9 +228,9 @@ void *arch_dma_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle, | |||
| 227 | return ret; | 228 | return ret; |
| 228 | } | 229 | } |
| 229 | 230 | ||
| 230 | *dma_handle = phys_to_dma(dev, page_to_phys(page)); | ||
| 231 | memset(ret, 0, size); | 231 | memset(ret, 0, size); |
| 232 | 232 | done: | |
| 233 | *dma_handle = phys_to_dma(dev, page_to_phys(page)); | ||
| 233 | return ret; | 234 | return ret; |
| 234 | } | 235 | } |
| 235 | 236 | ||
