From: Jens Wiklander <jens.wiklander@linaro.org>
To: linux-kernel@vger.kernel.org, op-tee@lists.trustedfirmware.org
Cc: Sumit Garg <sumit.garg@linaro.org>,
Herbert Xu <herbert@gondor.apana.org.au>,
Devaraj Rangasamy <Devaraj.Rangasamy@amd.com>,
Rijo Thomas <Rijo-john.Thomas@amd.com>,
David Howells <dhowells@redhat.com>,
Tyler Hicks <tyhicks@linux.microsoft.com>,
Jens Wiklander <jens.wiklander@linaro.org>
Subject: [PATCH v2 00/12] tee: shared memory updates
Date: Fri, 14 Jan 2022 16:08:12 +0100 [thread overview]
Message-ID: <20220114150824.3578829-1-jens.wiklander@linaro.org> (raw)
Hi all,
This patchset is a general cleanup of shared memory handling in the TEE
subsystem.
Until now has the in-kernel tee clients used tee_shm_alloc() and
tee_shm_register() to share memory with secure world. These two function
exposes via a flags parameter a bit more of the internals of the TEE
subsystem than one would like. So in order to make things easier are those
two functions replaced by few functions which should provide better
abstraction.
Two in-kernel tee clients are updated to use these new functions.
The shared memory pool handling is simplified, an internal matter for the
two TEE drivers OP-TEE and AMDTEE.
An OP-TEE driver internal tee_context is added to handle shared memory
allocations received via RPC, for instance the argument structure needed
to make more complex RPC requests. The tee_context used when doing such a
memory allocation must be kept until the memory is freed. With this we can
avoid keeping a tee_context of a client around for longer than necessary.
In the v1 review it was suggested [1] to allow physically non-contiguous
memory allocations by the drivers. It turned out to be harder than
anticipated so I'll save that for a separate patch.
This patchset is also available at [2] and is based on the asynchronous
notification patches [3] which was just merged during this merge window.
Thanks,
Jens
[1] https://lore.kernel.org/linux-arm-kernel/20210609145811.GJ4910@sequoia/
[2] https://git.linaro.org/people/jens.wiklander/linux-tee.git/log/?h=tee_shm_v2
[3] https://git.linaro.org/people/jens.wiklander/linux-tee.git/log/?h=async_notif
v1->v2:
* The commits three "tee: add tee_shm_alloc_kernel_buf()",
"tpm_ftpm_tee: use tee_shm_alloc_kernel_buf()" and
"firmware: tee_bnxt: use tee_shm_alloc_kernel_buf()" has been merged some
time ago as part of another patchset.
* Another in-kernel tee client is updated with the commit
"KEYS: trusted: tee: use tee_shm_register_kernel_buf()"
* tee_shm_alloc_anon_kernel_buf() is replaced with an easier to use function
tee_shm_alloc_priv_kernel_buf() and tee_shm_free_anon_kernel_buf() has
been dropped.
* A driver internal struct tee_context is used to when doing driver internal
calls to secure world.
* Adds patches to replace tee_shm_register() in a similar way as how
tee_shm_alloc() is replaced.
* A patch is added to clean up the TEE_SHM_* flags
* Fixed a warning reported by kernel test robot <lkp@intel.com>
Jens Wiklander (12):
hwrng: optee-rng: use tee_shm_alloc_kernel_buf()
tee: remove unused tee_shm_pool_alloc_res_mem()
tee: add tee_shm_alloc_user_buf()
tee: simplify shm pool handling
tee: replace tee_shm_alloc()
optee: add driver private tee_context
optee: use driver internal tee_contex for some rpc
optee: add optee_pool_op_free_helper()
tee: add tee_shm_register_{user,kernel}_buf()
KEYS: trusted: tee: use tee_shm_register_kernel_buf()
tee: replace tee_shm_register()
tee: refactor TEE_SHM_* flags
drivers/char/hw_random/optee-rng.c | 6 +-
drivers/tee/amdtee/shm_pool.c | 55 ++--
drivers/tee/optee/Kconfig | 8 -
drivers/tee/optee/call.c | 2 +-
drivers/tee/optee/core.c | 22 +-
drivers/tee/optee/device.c | 5 +-
drivers/tee/optee/ffa_abi.c | 136 ++++------
drivers/tee/optee/optee_private.h | 12 +-
drivers/tee/optee/smc_abi.c | 155 +++--------
drivers/tee/tee_core.c | 5 +-
drivers/tee/tee_private.h | 11 -
drivers/tee/tee_shm.c | 322 +++++++++++++++--------
drivers/tee/tee_shm_pool.c | 162 +++---------
include/linux/tee_drv.h | 133 +++-------
security/keys/trusted-keys/trusted_tee.c | 23 +-
15 files changed, 434 insertions(+), 623 deletions(-)
--
2.31.1
next reply other threads:[~2022-01-14 15:08 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-14 15:08 Jens Wiklander [this message]
2022-01-14 15:08 ` [PATCH v2 01/12] hwrng: optee-rng: use tee_shm_alloc_kernel_buf() Jens Wiklander
2022-01-18 12:12 ` Sumit Garg
2022-01-14 15:08 ` [PATCH v2 02/12] tee: remove unused tee_shm_pool_alloc_res_mem() Jens Wiklander
2022-01-18 12:57 ` Sumit Garg
2022-01-14 15:08 ` [PATCH v2 03/12] tee: add tee_shm_alloc_user_buf() Jens Wiklander
2022-01-18 13:11 ` Sumit Garg
2022-01-19 7:36 ` Jens Wiklander
2022-01-14 15:08 ` [PATCH v2 04/12] tee: simplify shm pool handling Jens Wiklander
2022-01-20 10:06 ` Sumit Garg
2022-01-20 12:56 ` Jens Wiklander
2022-01-21 13:06 ` Sumit Garg
2022-01-21 13:47 ` Jens Wiklander
2022-01-14 15:08 ` [PATCH v2 05/12] tee: replace tee_shm_alloc() Jens Wiklander
2022-01-20 10:41 ` Sumit Garg
2022-01-20 13:02 ` Jens Wiklander
2022-01-14 15:08 ` [PATCH v2 06/12] optee: add driver private tee_context Jens Wiklander
2022-01-21 12:48 ` Sumit Garg
2022-01-24 13:58 ` Jens Wiklander
2022-01-14 15:08 ` [PATCH v2 07/12] optee: use driver internal tee_contex for some rpc Jens Wiklander
2022-01-21 12:54 ` Sumit Garg
2022-01-21 13:28 ` Jerome Forissier
2022-01-21 13:37 ` Sumit Garg
2022-01-21 14:02 ` Jens Wiklander
2022-01-14 15:08 ` [PATCH v2 08/12] optee: add optee_pool_op_free_helper() Jens Wiklander
2022-01-20 10:57 ` Sumit Garg
2022-01-14 15:08 ` [PATCH v2 09/12] tee: add tee_shm_register_{user,kernel}_buf() Jens Wiklander
2022-01-20 11:00 ` Sumit Garg
2022-01-20 13:06 ` Jens Wiklander
2022-01-14 15:08 ` [PATCH v2 10/12] KEYS: trusted: tee: use tee_shm_register_kernel_buf() Jens Wiklander
2022-01-20 11:03 ` Sumit Garg
2022-01-14 15:08 ` [PATCH v2 11/12] tee: replace tee_shm_register() Jens Wiklander
2022-01-20 11:51 ` Sumit Garg
2022-01-20 14:12 ` Jens Wiklander
2022-01-21 12:57 ` Sumit Garg
2022-01-14 15:08 ` [PATCH v2 12/12] tee: refactor TEE_SHM_* flags Jens Wiklander
2022-01-20 13:03 ` Sumit Garg
2022-01-21 7:23 ` Jens Wiklander
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220114150824.3578829-1-jens.wiklander@linaro.org \
--to=jens.wiklander@linaro.org \
--cc=Devaraj.Rangasamy@amd.com \
--cc=Rijo-john.Thomas@amd.com \
--cc=dhowells@redhat.com \
--cc=herbert@gondor.apana.org.au \
--cc=linux-kernel@vger.kernel.org \
--cc=op-tee@lists.trustedfirmware.org \
--cc=sumit.garg@linaro.org \
--cc=tyhicks@linux.microsoft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®