From 56cc55aa8a1b886a724f42e87bc97b6027580a1e Mon Sep 17 00:00:00 2001 From: Hangyu Li Date: Sun, 7 Apr 2024 19:06:06 +0800 Subject: [PATCH] mm: fix cma allocation stuck problem. [1/1] PD#SWPL-161071 Problem: cma alloc stuck. Solution: add FOLL_LONGTERM flags in pin page. Verify: S7. Change-Id: Id011372a9431e07e69e1ee27ea134acda6959c82 Signed-off-by: Hangyu Li --- drivers/aml_tee/tee_shm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/aml_tee/tee_shm.c b/drivers/aml_tee/tee_shm.c index 4b81eac74..dd84f5ee0 100644 --- a/drivers/aml_tee/tee_shm.c +++ b/drivers/aml_tee/tee_shm.c @@ -238,7 +238,7 @@ register_shm_helper(struct tee_context *ctx, unsigned long addr, unsigned long start; size_t num_pages; void *ret; - int rc; + long rc; if (!tee_device_get(teedev)) return ERR_PTR(-EINVAL); @@ -273,8 +273,8 @@ register_shm_helper(struct tee_context *ctx, unsigned long addr, } if (flags & TEE_SHM_USER_MAPPED) - rc = pin_user_pages_fast(start, num_pages, FOLL_WRITE, - shm->pages); + rc = pin_user_pages(start, num_pages, FOLL_WRITE | FOLL_LONGTERM, + shm->pages, NULL); else rc = shm_get_kernel_pages(start, num_pages, shm->pages); if (rc > 0)