diff options
author | Dan Williams <dan.j.williams@intel.com> | 2009-12-22 17:21:47 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2009-12-22 17:21:47 -0700 |
commit | f80ca163d65903276bec7045a484a79c0897eb2d (patch) | |
tree | 97c7d61d43248b9db0757a76af80ff58b98b5599 /arch/mips/mm/dma-default.c | |
parent | 0794ec8ce327ec74416b569b8fb1951274693700 (diff) | |
parent | a6d52d70677e99bdb89b6921c265d0a58c22e597 (diff) |
Merge branch 'ioat' into fixes
Diffstat (limited to 'arch/mips/mm/dma-default.c')
-rw-r--r-- | arch/mips/mm/dma-default.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/mips/mm/dma-default.c b/arch/mips/mm/dma-default.c index 7e48e76148a..9367e33fbd1 100644 --- a/arch/mips/mm/dma-default.c +++ b/arch/mips/mm/dma-default.c @@ -90,6 +90,9 @@ void *dma_alloc_coherent(struct device *dev, size_t size, { void *ret; + if (dma_alloc_from_coherent(dev, size, dma_handle, &ret)) + return ret; + gfp = massage_gfp_flags(dev, gfp); ret = (void *) __get_free_pages(gfp, get_order(size)); @@ -122,6 +125,10 @@ void dma_free_coherent(struct device *dev, size_t size, void *vaddr, dma_addr_t dma_handle) { unsigned long addr = (unsigned long) vaddr; + int order = get_order(size); + + if (dma_release_from_coherent(dev, order, vaddr)) + return; plat_unmap_dma_mem(dev, dma_handle, size, DMA_BIDIRECTIONAL); |