summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Diver <diverj@google.com>2024-02-26 12:25:44 +0000
committerJack Diver <diverj@google.com>2024-03-15 10:14:24 +0000
commit0f87558146392c9f46282a2c3862c6d6f792aeee (patch)
tree14195a378fe99f7e61d14f4e9ee9b5d360f334bf
parentfd025f58ca46a4f88ce645c3f5649bd4a35b22e4 (diff)
downloadgpu-android-gs-pantah-5.10-android14-qpr3-beta.tar.gz
[DO NOT MERGE ANYWHERE] mali_kbase: Prevent page migration for shrinkable regionsandroid-u-qpr3-beta-2.1_r0.4android-gs-pantah-5.10-android14-qpr3-beta
Bug: 324565943 Change-Id: I706bef805b96113ad4dc1b44d3ea1a8f12652965 Signed-off-by: Jack Diver <diverj@google.com> (cherry picked from commit 0ade90bc0ce15b8bfc74a7a42e1a48a4b1d1312f)
-rw-r--r--mali_kbase/platform/pixel/pixel_gpu_slc.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/mali_kbase/platform/pixel/pixel_gpu_slc.c b/mali_kbase/platform/pixel/pixel_gpu_slc.c
index cb00d05..622971d 100644
--- a/mali_kbase/platform/pixel/pixel_gpu_slc.c
+++ b/mali_kbase/platform/pixel/pixel_gpu_slc.c
@@ -49,7 +49,7 @@ struct gpu_slc_liveness_update_info {
static void gpu_slc_lock_as(struct kbase_context *kctx)
{
down_write(kbase_mem_get_process_mmap_lock());
- kbase_gpu_vm_lock(kctx);
+ kbase_gpu_vm_lock_with_pmode_sync(kctx);
}
/**
@@ -59,7 +59,7 @@ static void gpu_slc_lock_as(struct kbase_context *kctx)
*/
static void gpu_slc_unlock_as(struct kbase_context *kctx)
{
- kbase_gpu_vm_unlock(kctx);
+ kbase_gpu_vm_unlock_with_pmode_sync(kctx);
up_write(kbase_mem_get_process_mmap_lock());
}
@@ -97,6 +97,12 @@ static struct kbase_va_region* gpu_slc_get_region(struct kbase_context *kctx, u6
/* Validate the region */
if (kbase_is_region_invalid_or_free(reg))
goto invalid;
+ /* Might be shrunk */
+ if (kbase_is_region_shrinkable(reg))
+ goto invalid;
+ /* Driver internal alloc */
+ if (kbase_va_region_is_no_user_free(reg))
+ goto invalid;
return reg;