mirror of https://gitee.com/openkylin/linux.git
dma-mapping fixes for 5.8
- fixes for the SEV atomic pool (Geert Uytterhoeven and David Rientjes) -----BEGIN PGP SIGNATURE----- iQI/BAABCgApFiEEgdbnc3r/njty3Iq9D55TZVIEUYMFAl7pxQwLHGhjaEBsc3Qu ZGUACgkQD55TZVIEUYN7kg/9F/S+fE587iJhn+6LbJHyNiAWtASi+cogBoO+Qdx/ GDby8YP+s2+6hxIskavfdCSzY6W3UbCslgwxeZNKD60semb8BacAtf55N2PEK0/H UE8J9d/EInbe1ehrJvd7xCcuWxkesHGa/zcFbMBPvXxphX6SNfgPV0fdgg3UuWM9 ZxRPENA14hXOF2ehKnbQNHcgodOm6SGM22PEk3g8GqASc2zCL+E+CVcRVFgoYmzw BgRgv5CaaHCHGvmWWtN4wWNmOm5YCqYmMuEAElbuWhY6VhcPVirMVtLju+3RfSmY 1QEQQ0jQRtlQe9SuqhUPiegtReFMIvwC0Aoip7FaCSVMMean6uSzk3ubapkigCza r5dwG6RiLzVpRJyoYbDhCHh7gOUsXTMXqUzy33Jr5bTbGSJcelbycehL7gP9Qzag fFQ9Yep+BLDYESf7H5KzhDv9siZqGX2kXj3Z/gJGGMjkCUeAKNviRsi9t/IhQuzt cVAJCcU9vLJk2MJRuQ0P/7lCDvUIR4yGalN9Jl9J1ZTsVR7go330RVvonPhlTcXX 9HrroqzSkqnLfaUFB3ml3LHj4SqygfUGtjbJ6qxkXxrChMfySe/VWbBrmOVUlta3 SfKfXRcEYeHlgS7TtkxHkstaXfVA+fKN7V//PoycP9+rvoX74e2h++ujUY9kf8xJ QPQ= =uKpw -----END PGP SIGNATURE----- Merge tag 'dma-mapping-5.8-3' of git://git.infradead.org/users/hch/dma-mapping Pull dma-mapping fixes from Christoph Hellwig: "Fixes for the SEV atomic pool (Geert Uytterhoeven and David Rientjes)" * tag 'dma-mapping-5.8-3' of git://git.infradead.org/users/hch/dma-mapping: dma-pool: decouple DMA_REMAP from DMA_COHERENT_POOL dma-pool: fix too large DMA pools on medium memory size systems
This commit is contained in:
commit
1b50440210
|
@ -73,18 +73,18 @@ config SWIOTLB
|
|||
config DMA_NONCOHERENT_MMAP
|
||||
bool
|
||||
|
||||
config DMA_COHERENT_POOL
|
||||
bool
|
||||
|
||||
config DMA_REMAP
|
||||
bool
|
||||
depends on MMU
|
||||
select GENERIC_ALLOCATOR
|
||||
select DMA_NONCOHERENT_MMAP
|
||||
bool
|
||||
|
||||
config DMA_COHERENT_POOL
|
||||
bool
|
||||
select DMA_REMAP
|
||||
|
||||
config DMA_DIRECT_REMAP
|
||||
bool
|
||||
select DMA_REMAP
|
||||
select DMA_COHERENT_POOL
|
||||
|
||||
config DMA_CMA
|
||||
|
|
|
@ -175,10 +175,9 @@ static int __init dma_atomic_pool_init(void)
|
|||
* sizes to 128KB per 1GB of memory, min 128KB, max MAX_ORDER-1.
|
||||
*/
|
||||
if (!atomic_pool_size) {
|
||||
atomic_pool_size = max(totalram_pages() >> PAGE_SHIFT, 1UL) *
|
||||
SZ_128K;
|
||||
atomic_pool_size = min_t(size_t, atomic_pool_size,
|
||||
1 << (PAGE_SHIFT + MAX_ORDER-1));
|
||||
unsigned long pages = totalram_pages() / (SZ_1G / SZ_128K);
|
||||
pages = min_t(unsigned long, pages, MAX_ORDER_NR_PAGES);
|
||||
atomic_pool_size = max_t(size_t, pages << PAGE_SHIFT, SZ_128K);
|
||||
}
|
||||
INIT_WORK(&atomic_pool_work, atomic_pool_work_fn);
|
||||
|
||||
|
|
Loading…
Reference in New Issue