]> git.baikalelectronics.ru Git - kernel.git/commit
dma-coherent: Restore dma_alloc_from_coherent() large alloc fall back policy.
authorPaul Mundt <lethal@linux-sh.org>
Wed, 21 Jan 2009 09:51:53 +0000 (18:51 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 21 Jan 2009 09:51:53 +0000 (18:51 +0900)
commit4fe64dbe926331fae092f9034285a7bb92055b9d
tree0acb503e18c4a807d2a5d9a2417ecd3c292a7026
parent5c7d9eda905082fbf0fb08c1373644f2737ec430
dma-coherent: Restore dma_alloc_from_coherent() large alloc fall back policy.

When doing large allocations (larger than the per-device coherent area)
the generic memory allocators are silently fallen back on regardless of
consideration for the per-device constraints.

In the DMA_MEMORY_EXCLUSIVE case falling back on generic memory is not
an option, as it tends not to be addressable by the DMA hardware in
question. This issue showed up with the 8139too breakage on the
Dreamcast, where non-addressable buffers were silently allocated due to
the size mismatch calculation -- while it should have simply errored out
upon being unable to satisfy the allocation with the given device
constraints.

This restores fall back behaviour to what it was before the oversized
request change caused multiple regressions.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
kernel/dma-coherent.c