diff options
author | Aurora zuma automerger <aurora-zuma-automerger@google.com> | 2023-03-22 04:10:05 +0000 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-03-21 22:27:24 -0700 |
commit | 2ddcce971c7d6a92830220df66b8b70abb621392 (patch) | |
tree | 0f720c97864ca2ad639ba0f43864e2db1e210bb1 | |
parent | 2ad1089b18c3ff61ee3423c36347b0c3b95cdfa2 (diff) | |
download | zuma-2ddcce971c7d6a92830220df66b8b70abb621392.tar.gz |
gxp: [Copybara Auto Merge] Merge branch 'zuma' into 'android14-gs-pixel-5.15'
gcip: alloc_iova_fast requires the page number as power of 2
Bug: 274547226
GCIP_MAIN_REV_ID: ce9db9078ca08b346ef8667d3a5b7b73f9d96d58
GitOrigin-RevId: d7af7dd604cda09eb7c91df194bc0f5f72e4c04a
Change-Id: I274edc7ba1af3dc6d99ebb9d8cd1cf4e46d5cd13
-rw-r--r-- | gcip-kernel-driver/drivers/gcip/gcip-iommu.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcip-kernel-driver/drivers/gcip/gcip-iommu.c b/gcip-kernel-driver/drivers/gcip/gcip-iommu.c index 2e0dac6..979eb86 100644 --- a/gcip-kernel-driver/drivers/gcip/gcip-iommu.c +++ b/gcip-kernel-driver/drivers/gcip/gcip-iommu.c @@ -102,7 +102,12 @@ static dma_addr_t iovad_alloc_iova_space(struct gcip_iommu_domain *domain, size_ { unsigned long iova, shift = gcip_iommu_domain_shift(domain); - iova = alloc_iova_fast(&domain->iova_space.iovad, size >> shift, + size = size >> shift; + + if (size < (1 << (IOVA_RANGE_CACHE_MAX_SIZE - 1))) + size = roundup_pow_of_two(size); + + iova = alloc_iova_fast(&domain->iova_space.iovad, size, domain->domain_pool->last_daddr >> shift, true); return (dma_addr_t)iova << shift; |