Fix invalid page table entries from occuring. GPUCORE-40571 Fix invalid page table entries from occuring. This patch prevents the invalid page table entries from occuring. Bug: 316204010 Change-Id: I6aa1fdb9f0a40dab5d8a7d1dcd85f7485c960a22 Signed-off-by: Renato Grottesi <otaner@google.com> Test: platform can boot. Provenance: https://code.ipdelivery.arm.com/c/GPU/mali-ddk/+/6262
diff --git a/mali_kbase/mali_kbase_mem.c b/mali_kbase/mali_kbase_mem.c index 9de0893..5547bef 100644 --- a/mali_kbase/mali_kbase_mem.c +++ b/mali_kbase/mali_kbase_mem.c
@@ -4066,9 +4066,6 @@ if (reg->gpu_alloc->nents >= info->commit_pages) goto done; - /* Grow the backing */ - old_size = reg->gpu_alloc->nents; - /* Allocate some more pages */ delta = info->commit_pages - reg->gpu_alloc->nents; pages_required = delta; @@ -4111,6 +4108,17 @@ kbase_mem_pool_lock(pool); } + if (reg->gpu_alloc->nents >= info->commit_pages) { + kbase_mem_pool_unlock(pool); + spin_unlock(&kctx->mem_partials_lock); + dev_info( + kctx->kbdev->dev, + "JIT alloc grown beyond the required number of initially required pages, this grow no longer needed."); + goto done; + } + + old_size = reg->gpu_alloc->nents; + delta = info->commit_pages - old_size; gpu_pages = kbase_alloc_phy_pages_helper_locked(reg->gpu_alloc, pool, delta, &prealloc_sas[0]); if (!gpu_pages) {