diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2020-07-10 09:36:03 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-07-10 09:36:03 -0700 |
commit | 1bfde037425d91d1d615d30ec362f5f5c1ca0dd2 (patch) | |
tree | 7177ceb3bb71463236963ddb5e0123c19ebde039 /kernel | |
parent | 25aadbd2a8ad05ed0477cb94c7659075f540d158 (diff) | |
parent | 68d237056e007c88031d80900cdba0945121a287 (diff) |
Merge tag 'dma-mapping-5.8-5' of git://git.infradead.org/users/hch/dma-mapping
Pull dma-mapping fixes from Christoph Hellwig:
- add a warning when the atomic pool is depleted (David Rientjes)
- protect the parameters of the new scatterlist helper macros (Marek
Szyprowski )
* tag 'dma-mapping-5.8-5' of git://git.infradead.org/users/hch/dma-mapping:
scatterlist: protect parameters of the sg_table related macros
dma-mapping: warn when coherent pool is depleted
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/dma/pool.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/dma/pool.c b/kernel/dma/pool.c index 8cfa01243ed2..39ca26fa41b5 100644 --- a/kernel/dma/pool.c +++ b/kernel/dma/pool.c @@ -239,12 +239,16 @@ void *dma_alloc_from_pool(struct device *dev, size_t size, } val = gen_pool_alloc(pool, size); - if (val) { + if (likely(val)) { phys_addr_t phys = gen_pool_virt_to_phys(pool, val); *ret_page = pfn_to_page(__phys_to_pfn(phys)); ptr = (void *)val; memset(ptr, 0, size); + } else { + WARN_ONCE(1, "DMA coherent pool depleted, increase size " + "(recommended min coherent_pool=%zuK)\n", + gen_pool_size(pool) >> 9); } if (gen_pool_avail(pool) < atomic_pool_size) schedule_work(&atomic_pool_work); |