diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2023-10-28 08:01:31 -1000 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2023-10-28 08:01:31 -1000 |
commit | bd80d2ef59bb6436effa6b7f77746b1418cf0a15 (patch) | |
tree | 694b490e7cb0d8a75eff7992425f33626d7dd9f9 | |
parent | db5cda7fd46881f88eee52f3960b7856ddf051fb (diff) | |
parent | d5090484b021794271280ab64d20253883b7f6fd (diff) | |
download | lwn-bd80d2ef59bb6436effa6b7f77746b1418cf0a15.tar.gz lwn-bd80d2ef59bb6436effa6b7f77746b1418cf0a15.zip |
Merge tag 'dma-mapping-6.6-2023-10-28' of git://git.infradead.org/users/hch/dma-mapping
Pull dma-mapping fix from Christoph Hellwig:
- reduce the initialy dynamic swiotlb size to remove an annoying but
harmless warning from the page allocator (Petr Tesarik)
* tag 'dma-mapping-6.6-2023-10-28' of git://git.infradead.org/users/hch/dma-mapping:
swiotlb: do not try to allocate a TLB bigger than MAX_ORDER pages
-rw-r--r-- | kernel/dma/swiotlb.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c index 01637677736f..dff067bd56b1 100644 --- a/kernel/dma/swiotlb.c +++ b/kernel/dma/swiotlb.c @@ -678,6 +678,11 @@ static struct io_tlb_pool *swiotlb_alloc_pool(struct device *dev, size_t pool_size; size_t tlb_size; + if (nslabs > SLABS_PER_PAGE << MAX_ORDER) { + nslabs = SLABS_PER_PAGE << MAX_ORDER; + nareas = limit_nareas(nareas, nslabs); + } + pool_size = sizeof(*pool) + array_size(sizeof(*pool->areas), nareas); pool = kzalloc(pool_size, gfp); if (!pool) |