> + 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. The ifdef does not make sense.