diff --git a/drivers/tee/optee/call.c b/drivers/tee/optee/call.c index dad81340258f86..3b27347858a2e3 100644 --- a/drivers/tee/optee/call.c +++ b/drivers/tee/optee/call.c @@ -421,13 +421,11 @@ void optee_enable_shm_cache(struct optee *optee) } /** - * __optee_disable_shm_cache() - Disables caching of some shared memory - * allocation in OP-TEE + * optee_disable_shm_cache() - Disables caching of some shared memory allocation + * in OP-TEE * @optee: main service struct - * @is_mapped: true if the cached shared memory addresses were mapped by this - * kernel, are safe to dereference, and should be freed */ -static void __optee_disable_shm_cache(struct optee *optee, bool is_mapped) +void optee_disable_shm_cache(struct optee *optee) { struct optee_call_waiter w; @@ -446,13 +444,6 @@ static void __optee_disable_shm_cache(struct optee *optee, bool is_mapped) if (res.result.status == OPTEE_SMC_RETURN_OK) { struct tee_shm *shm; - /* - * Shared memory references that were not mapped by - * this kernel must be ignored to prevent a crash. - */ - if (!is_mapped) - continue; - shm = reg_pair_to_ptr(res.result.shm_upper32, res.result.shm_lower32); tee_shm_free(shm); @@ -463,27 +454,6 @@ static void __optee_disable_shm_cache(struct optee *optee, bool is_mapped) optee_cq_wait_final(&optee->call_queue, &w); } -/** - * optee_disable_shm_cache() - Disables caching of mapped shared memory - * allocations in OP-TEE - * @optee: main service struct - */ -void optee_disable_shm_cache(struct optee *optee) -{ - return __optee_disable_shm_cache(optee, true); -} - -/** - * optee_disable_unmapped_shm_cache() - Disables caching of shared memory - * allocations in OP-TEE which are not - * currently mapped - * @optee: main service struct - */ -void optee_disable_unmapped_shm_cache(struct optee *optee) -{ - return __optee_disable_shm_cache(optee, false); -} - #define PAGELIST_ENTRIES_PER_PAGE \ ((OPTEE_MSG_NONCONTIG_PAGE_SIZE / sizeof(u64)) - 1) diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c index 8fe7411b431d0c..ccad3c7c8f6dd0 100644 --- a/drivers/tee/optee/core.c +++ b/drivers/tee/optee/core.c @@ -719,15 +719,6 @@ static int optee_probe(struct platform_device *pdev) optee->memremaped_shm = memremaped_shm; optee->pool = pool; - /* - * Ensure that there are no pre-existing shm objects before enabling - * the shm cache so that there's no chance of receiving an invalid - * address during shutdown. This could occur, for example, if we're - * kexec booting from an older kernel that did not properly cleanup the - * shm cache. - */ - optee_disable_unmapped_shm_cache(optee); - optee_enable_shm_cache(optee); if (optee->sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM) diff --git a/drivers/tee/optee/optee_private.h b/drivers/tee/optee/optee_private.h index dbdd367be15683..e25b216a14ef8a 100644 --- a/drivers/tee/optee/optee_private.h +++ b/drivers/tee/optee/optee_private.h @@ -159,7 +159,6 @@ int optee_cancel_req(struct tee_context *ctx, u32 cancel_id, u32 session); void optee_enable_shm_cache(struct optee *optee); void optee_disable_shm_cache(struct optee *optee); -void optee_disable_unmapped_shm_cache(struct optee *optee); int optee_shm_register(struct tee_context *ctx, struct tee_shm *shm, struct page **pages, size_t num_pages,