summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAurora zuma automerger <aurora-zuma-automerger@google.com>2023-03-22 04:10:05 +0000
committerCopybara-Service <copybara-worker@google.com>2023-03-21 22:27:24 -0700
commit2ddcce971c7d6a92830220df66b8b70abb621392 (patch)
tree0f720c97864ca2ad639ba0f43864e2db1e210bb1
parent2ad1089b18c3ff61ee3423c36347b0c3b95cdfa2 (diff)
downloadzuma-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.c7
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;