summaryrefslogtreecommitdiff
path: root/kernel/dma
diff options
context:
space:
mode:
authorRobin Murphy <robin.murphy@arm.com>2018-07-24 00:42:48 +0300
committerChristoph Hellwig <hch@lst.de>2018-07-25 14:32:58 +0300
commitd27fb99f62af7b79c542d161aa5155ed57271ddc (patch)
tree3e63ef28a310f1941ed1324683db0552566ae722 /kernel/dma
parentd72e90f33aa4709ebecc5005562f52335e106a60 (diff)
downloadlinux-d27fb99f62af7b79c542d161aa5155ed57271ddc.tar.xz
dma-mapping: relax warning for per-device areas
The reasons why dma_free_attrs() should not be called from IRQ context are not necessarily obvious and somewhat buried in the development history, so let's start by documenting the warning itself to help anyone who does happen to hit it and wonder what the deal is. However, this check turns out to be slightly over-restrictive for the way that per-device memory has been spliced into the general API, since for that case we know that dma_declare_coherent_memory() has created an appropriate CPU mapping for the entire area and nothing dynamic should be happening. Given that the usage model for per-device memory is often more akin to streaming DMA than 'real' coherent DMA (e.g. allocating and freeing space to copy short-lived packets in and out), it is also somewhat more reasonable for those operations to happen in IRQ handlers for such devices. Therefore, let's move the irqs_disabled() check down past the per-device area hook, so that that gets a chance to resolve the request before we reach definite "you're doing it wrong" territory. Reported-by: Fredrik Noring <noring@nocrew.org> Tested-by: Fredrik Noring <noring@nocrew.org> Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'kernel/dma')
0 files changed, 0 insertions, 0 deletions