From: Sumit Garg via OP-TEE <op-tee@lists.trustedfirmware.org>
To: Harshal Dev <harshal.dev@oss.qualcomm.com>
Cc: Jens Wiklander <jens.wiklander@oss.qualcomm.com>,
Amirreza Zarrabi <amirreza.zarrabi@oss.qualcomm.com>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>,
Basant Kumar <basantk@qti.qualcomm.com>,
Apurupa Pattapu <apurupa@qti.qualcomm.com>,
Arun Kumar Neelakantam <aneelaka@qti.qualcomm.com>,
op-tee@lists.trustedfirmware.org, linux-kernel@vger.kernel.org,
linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v3 2/6] tee: Add kernel client object invoke helper
Date: Thu, 1 Oct 2026 18:13:55 +0530 [thread overview]
Message-ID: <ar5Vi8ccysSh4fQ1@sumit-xelite> (raw)
In-Reply-To: <20261001-qcom_uefisecapp_migrate_qcomtee-v3-2-13df5c20c2e3@oss.qualcomm.com>
On Thu, 01 Oct 2026 at 16:32:34 +0530, Harshal Dev wrote:
>From: Amirreza Zarrabi <amirreza.zarrabi@oss.qualcomm.com>
>
>Kernel clients can open a TEE context and invoke regular TA commands
>through tee_client_invoke_func(). However, there is currently no
>equivalent helper for invoking TEE objects.
>
>Add tee_client_object_invoke_func() as a kernel client API for issuing
>object invocation requests. The helper checks that the backend provides
>object_invoke_func() before forwarding the request by setting the origin
>as TEE_OBJECT_INVOKE_KERNEL. This allows TEE backends to support
>privileged object-based calls from the kernel-space.
>
>Co-developed-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
>Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
>Signed-off-by: Amirreza Zarrabi <amirreza.zarrabi@oss.qualcomm.com>
>---
> drivers/tee/tee_core.c | 12 ++++++++++++
> include/linux/tee_drv.h | 13 +++++++++++++
> 2 files changed, 25 insertions(+)
Reviewed-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
-Sumit
>
>diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c
>index 30901390149c..a03a3d645dd1 100644
>--- a/drivers/tee/tee_core.c
>+++ b/drivers/tee/tee_core.c
>@@ -1404,6 +1404,18 @@ int tee_client_invoke_func(struct tee_context *ctx,
> }
> EXPORT_SYMBOL_GPL(tee_client_invoke_func);
>
>+int tee_client_object_invoke_func(struct tee_context *ctx,
>+ struct tee_ioctl_object_invoke_arg *arg,
>+ struct tee_param *param)
>+{
>+ if (!ctx->teedev->desc->ops->object_invoke_func)
>+ return -EINVAL;
>+
>+ return ctx->teedev->desc->ops->object_invoke_func(ctx, arg, param,
>+ TEE_OBJECT_INVOKE_KERNEL);
>+}
>+EXPORT_SYMBOL_GPL(tee_client_object_invoke_func);
>+
> int tee_client_cancel_req(struct tee_context *ctx,
> struct tee_ioctl_cancel_arg *arg)
> {
>diff --git a/include/linux/tee_drv.h b/include/linux/tee_drv.h
>index f3c5e106d853..369c87ad0205 100644
>--- a/include/linux/tee_drv.h
>+++ b/include/linux/tee_drv.h
>@@ -283,6 +283,19 @@ int tee_client_invoke_func(struct tee_context *ctx,
> struct tee_ioctl_invoke_arg *arg,
> struct tee_param *param);
>
>+/**
>+ * tee_client_object_invoke_func() - Invoke a TEE object from kernel space
>+ * @ctx: TEE Context
>+ * @arg: Invoke arguments, see description of
>+ * struct tee_ioctl_object_invoke_arg
>+ * @param: Parameters for the object invocation
>+ *
>+ * Return: On success, returns 0; on failure, returns < 0.
>+ */
>+int tee_client_object_invoke_func(struct tee_context *ctx,
>+ struct tee_ioctl_object_invoke_arg *arg,
>+ struct tee_param *param);
>+
> /**
> * tee_client_cancel_req() - Request cancellation of the previous open-session
> * or invoke-command operations in a Trusted Application
>
>--
>2.34.1
>
next prev parent reply other threads:[~2026-10-01 12:44 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-01 11:02 [PATCH v3 0/6] Add TEE based client driver for UEFI Secure Application Harshal Dev via OP-TEE
2026-10-01 11:02 ` [PATCH v3 1/6] tee: qcomtee: Track the object invocation context Harshal Dev via OP-TEE
2026-10-01 12:42 ` Sumit Garg via OP-TEE
2026-10-01 11:02 ` [PATCH v3 2/6] tee: Add kernel client object invoke helper Harshal Dev via OP-TEE
2026-10-01 12:43 ` Sumit Garg via OP-TEE [this message]
2026-10-01 11:02 ` [PATCH v3 3/6] tee: qcomtee: Allow object invokes from kernel clients Harshal Dev via OP-TEE
2026-10-01 12:47 ` Sumit Garg via OP-TEE
2026-10-01 11:02 ` [PATCH v3 4/6] tee: Export uuidv5 generation for TEE backends Harshal Dev via OP-TEE
2026-10-01 12:46 ` Sumit Garg via OP-TEE
2026-10-01 11:02 ` [PATCH v3 5/6] tee: qcomtee: Add support for registering QTEE services on TEE bus Harshal Dev via OP-TEE
2026-10-01 12:57 ` Sumit Garg via OP-TEE
2026-10-05 5:10 ` Harshal Dev via OP-TEE
2026-10-01 11:02 ` [PATCH v3 6/6] firmware: qcom: Add support for TEE based EFI-var client driver Harshal Dev via OP-TEE
2026-10-02 5:46 ` Krzysztof Kozlowski via OP-TEE
2026-10-05 4:40 ` Harshal Dev via OP-TEE
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=ar5Vi8ccysSh4fQ1@sumit-xelite \
--to=op-tee@lists.trustedfirmware.org \
--cc=amirreza.zarrabi@oss.qualcomm.com \
--cc=andersson@kernel.org \
--cc=aneelaka@qti.qualcomm.com \
--cc=apurupa@qti.qualcomm.com \
--cc=basantk@qti.qualcomm.com \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=harshal.dev@oss.qualcomm.com \
--cc=jens.wiklander@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=kuldeep.singh@oss.qualcomm.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sumit.garg@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.