From: Harshal Dev <harshal.dev@oss.qualcomm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>,
Jens Wiklander <jens.wiklander@oss.qualcomm.com>,
Sumit Garg <sumit.garg@kernel.org>,
Amirreza Zarrabi <amirreza.zarrabi@oss.qualcomm.com>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>
Cc: 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,
Harshal Dev <harshal.dev@oss.qualcomm.com>
Subject: [PATCH v2 2/6] tee: Add kernel client object invoke helper
Date: Wed, 22 Jul 2026 12:29:13 +0530 [thread overview]
Message-ID: <20260722-qcom_uefisecapp_migrate_qcomtee-v2-2-b8a8fcbe4211@oss.qualcomm.com> (raw)
In-Reply-To: <20260722-qcom_uefisecapp_migrate_qcomtee-v2-0-b8a8fcbe4211@oss.qualcomm.com>
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(+)
diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c
index dba5d4d2d47e..bb418490f3af 100644
--- a/drivers/tee/tee_core.c
+++ b/drivers/tee/tee_core.c
@@ -1410,6 +1410,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 e561a26f537a..ca99c6b747a8 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
WARNING: multiple messages have this Message-ID (diff)
From: Harshal Dev via OP-TEE <op-tee@lists.trustedfirmware.org>
To: Jens Wiklander <jens.wiklander@linaro.org>,
Jens Wiklander <jens.wiklander@oss.qualcomm.com>,
Sumit Garg <sumit.garg@kernel.org>,
Amirreza Zarrabi <amirreza.zarrabi@oss.qualcomm.com>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>
Cc: 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,
Harshal Dev <harshal.dev@oss.qualcomm.com>
Subject: [PATCH v2 2/6] tee: Add kernel client object invoke helper
Date: Wed, 22 Jul 2026 12:29:13 +0530 [thread overview]
Message-ID: <20260722-qcom_uefisecapp_migrate_qcomtee-v2-2-b8a8fcbe4211@oss.qualcomm.com> (raw)
In-Reply-To: <20260722-qcom_uefisecapp_migrate_qcomtee-v2-0-b8a8fcbe4211@oss.qualcomm.com>
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(+)
diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c
index dba5d4d2d47e..bb418490f3af 100644
--- a/drivers/tee/tee_core.c
+++ b/drivers/tee/tee_core.c
@@ -1410,6 +1410,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 e561a26f537a..ca99c6b747a8 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-07-22 6:59 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-22 6:59 [PATCH v2 0/6] Add TEE based client driver for UEFI Secure Application Harshal Dev via OP-TEE
2026-07-22 6:59 ` Harshal Dev
2026-07-22 6:59 ` [PATCH v2 1/6] tee: qcomtee: Track the object invocation context Harshal Dev
2026-07-22 6:59 ` Harshal Dev via OP-TEE
2026-07-22 6:59 ` Harshal Dev [this message]
2026-07-22 6:59 ` [PATCH v2 2/6] tee: Add kernel client object invoke helper Harshal Dev via OP-TEE
2026-07-22 6:59 ` [PATCH v2 3/6] tee: qcomtee: Allow object invokes from kernel clients Harshal Dev
2026-07-22 6:59 ` Harshal Dev via OP-TEE
2026-07-29 7:06 ` Amirreza Zarrabi via OP-TEE
2026-07-29 7:06 ` Amirreza Zarrabi
2026-07-31 7:38 ` Harshal Dev via OP-TEE
2026-07-31 7:38 ` Harshal Dev
2026-07-22 6:59 ` [PATCH v2 4/6] tee: Export uuidv5 generation for TEE backends Harshal Dev
2026-07-22 6:59 ` Harshal Dev via OP-TEE
2026-07-22 6:59 ` [PATCH v2 5/6] tee: qcomtee: Add support for registering QTEE services on TEE bus Harshal Dev
2026-07-22 6:59 ` Harshal Dev via OP-TEE
2026-07-22 8:29 ` Dmitry Baryshkov
2026-07-22 8:29 ` Dmitry Baryshkov via OP-TEE
2026-07-24 9:13 ` Harshal Dev via OP-TEE
2026-07-24 9:13 ` Harshal Dev
2026-07-29 7:05 ` Amirreza Zarrabi via OP-TEE
2026-07-29 7:05 ` Amirreza Zarrabi
2026-07-31 8:35 ` Harshal Dev via OP-TEE
2026-07-31 8:35 ` Harshal Dev
2026-07-22 6:59 ` [PATCH v2 6/6] firmware: qcom: Add support for TEE based EFI-var client driver Harshal Dev
2026-07-22 6:59 ` Harshal Dev via OP-TEE
2026-07-22 8:37 ` Dmitry Baryshkov
2026-07-22 8:37 ` Dmitry Baryshkov via OP-TEE
2026-07-24 9:14 ` Harshal Dev via OP-TEE
2026-07-24 9:14 ` Harshal Dev
2026-07-24 10:09 ` Harshal Dev
2026-07-24 10:09 ` Harshal Dev via OP-TEE
2026-07-22 8:26 ` [PATCH v2 0/6] Add TEE based client driver for UEFI Secure Application Dmitry Baryshkov
2026-07-22 8:26 ` Dmitry Baryshkov via OP-TEE
2026-07-24 9:13 ` Harshal Dev via OP-TEE
2026-07-24 9:13 ` Harshal Dev
2026-08-03 14:52 ` Harshal Dev via OP-TEE
2026-08-03 14:52 ` Harshal Dev
2026-08-10 5:41 ` Harshal Dev via OP-TEE
2026-08-10 5:41 ` Harshal Dev
2026-08-10 7:07 ` Dmitry Baryshkov via OP-TEE
2026-08-10 7:07 ` Dmitry Baryshkov
2026-08-12 11:30 ` Harshal Dev via OP-TEE
2026-08-12 11:30 ` Harshal Dev
2026-08-17 6:24 ` Harshal Dev via OP-TEE
2026-08-17 6:24 ` Harshal Dev
2026-08-21 8:34 ` Harshal Dev
2026-08-21 8:34 ` Harshal Dev via OP-TEE
2026-08-26 6:43 ` Harshal Dev via OP-TEE
2026-08-26 6:43 ` Harshal Dev
2026-08-29 14:49 ` Dmitry Baryshkov 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=20260722-qcom_uefisecapp_migrate_qcomtee-v2-2-b8a8fcbe4211@oss.qualcomm.com \
--to=harshal.dev@oss.qualcomm.com \
--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=jens.wiklander@linaro.org \
--cc=jens.wiklander@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=op-tee@lists.trustedfirmware.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.