On Wed, 17 May 2023 at 13:04, Christoph Hellwig hch@infradead.org wrote:
u32 page_flag = FOLL_WRITE; if (!tee_device_get(teedev)) return ERR_PTR(-EINVAL);
@@ -255,9 +256,11 @@ register_shm_helper(struct tee_context *ctx, unsigned long addr, ret = ERR_PTR(-ENOMEM); goto err_free_shm; }
+#if IS_ENABLED(CONFIG_CMA)
page_flag |= FOLL_LONGTERM;
+#endif if (flags & TEE_SHM_USER_MAPPED)
If this mapping is long live it should always use FOLL_LONGTERM.
It depends on the userspace application needs. However, I think it should be safe to use FOLL_LONGTERM by default to serve cases like secure media playback.
The ifdef does not make sense.
Agree.
-Sumit