From: Harshal Dev <harshal.dev@oss.qualcomm.com>
To: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
Abel Vesa <abelvesa@kernel.org>,
Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>,
Neeraj Soni <neeraj.soni@oss.qualcomm.com>,
Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>,
Sumit Garg <sumit.garg@oss.qualcomm.com>,
Selvam Sathappan Periakaruppan
<selvam.periakaruppan@oss.qualcomm.com>
Cc: Basant Kumar <basantk@qti.qualcomm.com>,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-crypto@vger.kernel.org
Subject: Re: [PATCH 3/5] firmware: qcom: Add an TEE bus based ICE back-end
Date: Sat, 24 Oct 2026 19:17:36 +0530 [thread overview]
Message-ID: <9be32afc-4794-4163-868b-a0af29d8a2f4@oss.qualcomm.com> (raw)
In-Reply-To: <21185cf6-253e-48bf-ae7c-bb160a4c089d@oss.qualcomm.com>
Hi Konrad,
On 22-10-2026 01:22 pm, Konrad Dybcio wrote:
> On 10/21/26 5:43 PM, Harshal Dev wrote:
>> Add support for a TEE client driver which forwards calls from the Inline
>> Crypto Engine (ICE) service (invoked by the ICE driver) to the OPTEE ICE
>> Psuedo-TA.
>>
>> The ICE PTA supports both ICE Legacy and Standard modes. In Standard mode
>> Hardware Key Manager v1 is supported.
>>
>> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
>> ---
>
> [...]
>
>> +static int qcom_ice_tee_generate_key(struct device *dev,
>> + u8 *lt_key, size_t lt_key_size)
>> +{
>> + struct qcom_ice_tee_private *data = dev_get_drvdata(dev);
>> + struct tee_ioctl_invoke_arg inv_arg = {
>> + .func = PTA_QCOM_ICE_GENERATE_KEY,
>> + .session = data->session_id,
>> + .num_params = TEE_NUM_PARAMS,
>> + };
>> + struct tee_param param[TEE_NUM_PARAMS] = { };
>> + struct tee_shm *key_shm;
>> + u8 *buf;
>> + size_t out_size;
>> + int ret;
>> +
>> + key_shm = tee_shm_alloc_kernel_buf(data->ctx, lt_key_size);
>> + if (IS_ERR(key_shm))
>> + return PTR_ERR(key_shm);
>> +
>> + param[0].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT;
>> + param[0].u.memref.shm = key_shm;
>> + param[0].u.memref.shm_offs = 0;
>> + param[0].u.memref.size = lt_key_size;
>> +
>> + ret = tee_client_invoke_func(data->ctx, &inv_arg, param);
>> + if (ret < 0 || inv_arg.ret != 0) {
>> + dev_err(dev,
>> + "ICE generate_key failed, ret=%d, err=0x%x\n",
>> + ret, inv_arg.ret);
>> + ret = ret ?: -EINVAL;
>> + goto out;
>> + }
>> +
>> + buf = tee_shm_get_va(key_shm, 0);
>> + out_size = param[0].u.memref.size;
>> +
>> + memcpy(lt_key, buf, lt_key_size);
>> + memzero_explicit(buf, out_size);
>
> LLM says: s/out_size/lt_key_size here?
>
> Or said another way, currently lt_key_size and out_size are not
> cross checked
>
Ack. Will cross-check these values.
> [...]
>
>> +static int qcom_ice_tee_probe(struct tee_client_device *ice_dev)
>> +{
>> + struct device *dev = &ice_dev->dev;
>> + struct qcom_ice_tee_private *data;
>> + struct tee_ioctl_open_session_arg sess_arg = {
>> + .clnt_login = TEE_IOCTL_LOGIN_REE_KERNEL,
>> + };
>> + int ret, err = -ENODEV;
>> +
>> + data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
>> + if (!data)
>> + return -ENOMEM;
>> +
>> + data->ctx = tee_client_open_context(NULL, optee_ctx_match, NULL, NULL);
>> + if (IS_ERR(data->ctx))
>> + return -ENODEV;
>> +
>> + export_uuid(sess_arg.uuid, &ice_dev->id.uuid);
>> + ret = tee_client_open_session(data->ctx, &sess_arg, NULL);
>> + if (ret < 0 || sess_arg.ret != 0) {
>> + dev_err(dev,
>> + "tee_client_open_session failed, ret=%d, err=0x%x\n",
>> + ret, sess_arg.ret);
>> + err = ret ?: -EINVAL;
>> + goto out_ctx;
>> + }
>> +
>> + data->session_id = sess_arg.session;
>> + dev_set_drvdata(dev, data);
>> +
>> + qcom_ice_ops_tee.dev = dev;
>> + qcom_ice_svc_ops_register(&qcom_ice_ops_tee);
>> +
>> + return ret;
>
> This is always a 'return 0'
>
Ack.
Regards,
Harshal
> Konrad
next prev parent reply other threads:[~2026-10-24 13:47 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-21 15:43 [PATCH 0/5] Add support for a TEE agnostic Inline Crypto Engine service Harshal Dev
2026-10-21 15:43 ` [PATCH 1/5] firmware: qcom: Add a generic ICE service Harshal Dev
2026-10-22 7:45 ` Konrad Dybcio
2026-10-24 13:46 ` Harshal Dev
2026-10-21 15:43 ` [PATCH 2/5] firmware: qcom_scm: Transition to the " Harshal Dev
2026-10-23 7:21 ` Abel Vesa
2026-10-21 15:43 ` [PATCH 3/5] firmware: qcom: Add an TEE bus based ICE back-end Harshal Dev
2026-10-22 7:47 ` Konrad Dybcio
2026-10-24 13:46 ` Harshal Dev
2026-10-22 7:51 ` Konrad Dybcio
2026-10-24 13:46 ` Harshal Dev
2026-10-22 7:52 ` Konrad Dybcio
2026-10-24 13:47 ` Harshal Dev [this message]
2026-10-21 15:43 ` [PATCH 4/5] soc: qcom: ice: Migrate to the generic ICE service Harshal Dev
2026-10-23 7:15 ` Abel Vesa
2026-10-21 15:43 ` [PATCH 5/5] firmware: qcom: scm: Drop exported ICE wrapper functions Harshal Dev
2026-10-23 7:16 ` Abel Vesa
2026-10-24 18:56 ` [PATCH 0/5] Add support for a TEE agnostic Inline Crypto Engine service Eric Biggers
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=9be32afc-4794-4163-868b-a0af29d8a2f4@oss.qualcomm.com \
--to=harshal.dev@oss.qualcomm.com \
--cc=abelvesa@kernel.org \
--cc=andersson@kernel.org \
--cc=basantk@qti.qualcomm.com \
--cc=konrad.dybcio@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=kuldeep.singh@oss.qualcomm.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=manivannan.sadhasivam@oss.qualcomm.com \
--cc=neeraj.soni@oss.qualcomm.com \
--cc=selvam.periakaruppan@oss.qualcomm.com \
--cc=sumit.garg@oss.qualcomm.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®