Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp569685ybt; Wed, 17 Jun 2020 08:20:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxqsfmnxvYB/3oTD/9Q3Xapb6Zql2k5i/ClwhAgHlL5m1ql9jnhI9kD5RmOl4C4PBfmqqU4 X-Received: by 2002:a17:906:1d41:: with SMTP id o1mr8332885ejh.477.1592407248051; Wed, 17 Jun 2020 08:20:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592407248; cv=none; d=google.com; s=arc-20160816; b=w8yp0t8mi9QvkMOZB9mywZ/XKilkPe4WSw1+4TI/5DzDE4WwPqTXPF7RQvNx+dRy50 Dkdg/oLzwnPHhmFP0YgfM1Ge/mA9CriKREnR+WdM3pusY69AtZuJR7ne7g25WaO/Gurg UFntrkVmMC9NRw66xS27IHLPKczUZ08zss1kRq/PheHPD46KKrtsyjLCIcQvxCHp45jS ckYbtSwc+jtN+kgpZbTFFRVeLzd8JnyxSfD26rov0imiF1fNsTSFTA9S/enIutwUZ8uU Asg/EDnQ1cjQXfsfUKaTYQm1zJT3SEcZ7z4DL1ide9NCUkeoQ47p3nekPanatNI4NYF+ kxwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=2mz7VhPi60QWMA4Yhp954J2CHppq6HBliwPLxF6q0ko=; b=BiOSKRyEpqHg5N0MzLNXeGgPmZysuezDG0uAX5PNey4heTKeAosi5LApDZYMsG9lAR /RP4L7dT0XzbfpoCyPWP26LlGION8NJ0JLP4OWtkWbRaZKDVr8hAyoy9yCFUq663KqBz vtuBXq09ZRabpx4z4SogLduEAmjlQTqPI4KnEL75Yq+BI65SE1FkRSn3QpXc2dVvk79K blXv8XXPDEwH3JQ8M5ETbzxOxkmMDXoFtSdcs+8YtglTfrDslq0HoS6HewNV9ekjUk3V 4cWffZWHw7xHpYIGqGAaTutaMlZKUF1+kQqpFU9J0Ls+Chgwl9EOKplEQz1rP19REo4H 3YEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@forissier-org.20150623.gappssmtp.com header.s=20150623 header.b=f8VMnorB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gt18si90301ejb.467.2020.06.17.08.20.25; Wed, 17 Jun 2020 08:20:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@forissier-org.20150623.gappssmtp.com header.s=20150623 header.b=f8VMnorB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726857AbgFQPQ1 (ORCPT + 99 others); Wed, 17 Jun 2020 11:16:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38214 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726491AbgFQPQ0 (ORCPT ); Wed, 17 Jun 2020 11:16:26 -0400 Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 54126C061755 for ; Wed, 17 Jun 2020 08:16:25 -0700 (PDT) Received: by mail-wr1-x442.google.com with SMTP id l11so2774315wru.0 for ; Wed, 17 Jun 2020 08:16:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=forissier-org.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=2mz7VhPi60QWMA4Yhp954J2CHppq6HBliwPLxF6q0ko=; b=f8VMnorBNEQmOob70UHQhLW70WnwJGMe84NSTBnYjRhuXJSEE7xkJ0+J/QB95FkgvL wwPCBaIyUTeYCo5DIBHj+pE+yeGIX3yYhaNUHdupPXMr576tvN4kLfPSwhjFDV7OHq17 ZroNWuxap8RQLqmwuZYrVXj/EOIuID58iRJMwzCrbUfiL16FO8UBV+mQ6XKZJArS/g0A aV4BBoppo+wjE4ffk0NEkEaiMlDiGWgyg3/Is9DTCpk/QTKjOqhDdb3DOmDwdeXewTIk 61HwIGwDmhS2IaC1jvIFO9zWiA4p7LdJaVOA1J63NJc9IKEqztDlFBU0JOngFsIpneu1 eTDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=2mz7VhPi60QWMA4Yhp954J2CHppq6HBliwPLxF6q0ko=; b=KTfjMgUqq+P3WDl7rYlKMPSXJDekQQis5KhsdxJ3B0SV/n1BiYyoT3Umv9jHCecNV9 0Eql2Efi0bGNM2sCza3EKDUP/HyEbbFCLnHjgbS6hgcykQmS1ai6TQclrhORa+kuvvlX M/BYtNMBD07/VzvzBakwjx+N1+4iz/q4h46mCjxg1FgNRfdsBKDC9fzH8ZGc3XrZ7veb xkAfZ0xFR5fMpO7+q8u/uKFOWW51OTCigxAam2mT5qYbY2USGcy8FpsIPflqyHi0LuUm mpBUyiD6aAnVRwUeZ0S0kMA8t628WlEh1PqKs34FIi1I7m64iinmYuiUj4MtO7qqZpfZ eH8A== X-Gm-Message-State: AOAM5332OxzM3nIJfcO6DujZW4ClyLNXvxWlF+x4rg/CJ2TY7f329WrA 1DP6Sye7E3cfqW9V28Rsz0nRoA== X-Received: by 2002:a5d:4e03:: with SMTP id p3mr9183781wrt.350.1592406983819; Wed, 17 Jun 2020 08:16:23 -0700 (PDT) Received: from ?IPv6:2a01:e0a:3cb:7bb0:85f0:4cd7:3460:1772? ([2a01:e0a:3cb:7bb0:85f0:4cd7:3460:1772]) by smtp.gmail.com with ESMTPSA id g3sm38262100wrb.46.2020.06.17.08.16.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 17 Jun 2020 08:16:22 -0700 (PDT) Subject: Re: [Tee-dev] [PATCHv8 1/3] optee: use uuid for sysfs driver entry To: Sumit Garg , Maxim Uvarov Cc: Greg Kroah-Hartman , Linux Kernel Mailing List , Jarkko Sakkinen , Arnd Bergmann , "tee-dev @ lists . linaro . org" , Jason Gunthorpe , linux-integrity@vger.kernel.org, peterhuewe@gmx.de References: <20200604175851.758-1-maxim.uvarov@linaro.org> <20200604175851.758-2-maxim.uvarov@linaro.org> From: Jerome Forissier Message-ID: Date: Wed, 17 Jun 2020 17:16:21 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 6/17/20 3:58 PM, Sumit Garg wrote: > Hi Maxim, > > On Thu, 4 Jun 2020 at 23:28, Maxim Uvarov wrote: >> >> With the evolving use-cases for TEE bus, now it's required to support >> multi-stage enumeration process. But using a simple index doesn't >> suffice this requirement and instead leads to duplicate sysfs entries. >> So instead switch to use more informative device UUID for sysfs entry >> like: >> /sys/bus/tee/devices/optee-ta- >> >> Signed-off-by: Maxim Uvarov >> Reviewed-by: Sumit Garg >> --- >> Documentation/ABI/testing/sysfs-bus-optee-devices | 8 ++++++++ >> MAINTAINERS | 1 + >> drivers/tee/optee/device.c | 9 ++++++--- >> 3 files changed, 15 insertions(+), 3 deletions(-) >> create mode 100644 Documentation/ABI/testing/sysfs-bus-optee-devices >> >> diff --git a/Documentation/ABI/testing/sysfs-bus-optee-devices b/Documentation/ABI/testing/sysfs-bus-optee-devices >> new file mode 100644 >> index 000000000000..0ae04ae5374a >> --- /dev/null >> +++ b/Documentation/ABI/testing/sysfs-bus-optee-devices >> @@ -0,0 +1,8 @@ >> +What: /sys/bus/tee/devices/optee-ta-/ >> +Date: May 2020 >> +KernelVersion 5.7 >> +Contact: tee-dev@lists.linaro.org >> +Description: >> + OP-TEE bus provides reference to registered drivers under this directory. The >> + matches Trusted Application (TA) driver and corresponding TA in secure OS. Drivers >> + are free to create needed API under optee-ta- directory. >> diff --git a/MAINTAINERS b/MAINTAINERS >> index ecc0749810b0..6717afef2de3 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -12516,6 +12516,7 @@ OP-TEE DRIVER >> M: Jens Wiklander >> L: tee-dev@lists.linaro.org >> S: Maintained >> +F: Documentation/ABI/testing/sysfs-bus-optee-devices >> F: drivers/tee/optee/ >> >> OP-TEE RANDOM NUMBER GENERATOR (RNG) DRIVER >> diff --git a/drivers/tee/optee/device.c b/drivers/tee/optee/device.c >> index e3a148521ec1..23d264c8146e 100644 >> --- a/drivers/tee/optee/device.c >> +++ b/drivers/tee/optee/device.c >> @@ -65,7 +65,7 @@ static int get_devices(struct tee_context *ctx, u32 session, >> return 0; >> } >> >> -static int optee_register_device(const uuid_t *device_uuid, u32 device_id) >> +static int optee_register_device(const uuid_t *device_uuid) >> { >> struct tee_client_device *optee_device = NULL; >> int rc; >> @@ -75,7 +75,10 @@ static int optee_register_device(const uuid_t *device_uuid, u32 device_id) >> return -ENOMEM; >> >> optee_device->dev.bus = &tee_bus_type; >> - dev_set_name(&optee_device->dev, "optee-clnt%u", device_id); >> + if (dev_set_name(&optee_device->dev, "optee-ta-%pUl", device_uuid)) { > > You should be using format specifier as: "%pUb" instead of "%pUl" as > UUID representation for TAs is in big endian format. See below: Where does device_uuid come from? If it comes directly from OP-TEE, then it should be a pointer to the following struct: typedef struct { uint32_t timeLow; uint16_t timeMid; uint16_t timeHiAndVersion; uint8_t clockSeqAndNode[8]; } TEE_UUID; (GlobalPlatform TEE Internal Core API spec v1.2.1 section 3.2.4) - The spec does not mandate any particular endianness and simply warns about possible issues if secure and non-secure worlds differ in endianness. - OP-TEE uses %pUl assuming that host order is little endian (that is true for the Arm platforms that run OP-TEE currently). By the same logic %pUl should be fine in the kernel. - On the other hand, the UUID in a Trusted App header is always encoded big endian by the Python script that signs and optionally encrypts the TA. This should not have any visible impact on UUIDs exchanged between the secure and non-secure world though. So I am wondering why you had to use %pUb. There must be some inconsistency somewhere :-/ -- Jerome > > # ls /sys/bus/tee/devices/ > optee-ta-405b6ad9-e5c3-e321-8794-1002a5d5c61b > optee-ta-71d950bc-c9d4-c442-82cb-343fb7f37896 > optee-ta-e70f4af0-5d1f-9b4b-abf7-619b85b4ce8c > > While UUID for fTPM TA is in big endian format: > bc50d971-d4c9-42c4-82cb-343fb7f37896 > > Sorry that I missed it during review and noticed this while testing. > > With the above fix included, I tested this series using fTPM early TA > on Qemu for aarch64 and used basic random number generation test using > tpm2-tools. So feel free to add: > > Tested-by: Sumit Garg > > -Sumit > >> + kfree(optee_device); >> + return -ENOMEM; >> + } >> uuid_copy(&optee_device->id.uuid, device_uuid); >> >> rc = device_register(&optee_device->dev); >> @@ -144,7 +147,7 @@ int optee_enumerate_devices(void) >> num_devices = shm_size / sizeof(uuid_t); >> >> for (idx = 0; idx < num_devices; idx++) { >> - rc = optee_register_device(&device_uuid[idx], idx); >> + rc = optee_register_device(&device_uuid[idx]); >> if (rc) >> goto out_shm; >> } >> -- >> 2.17.1 >> > _______________________________________________ > Tee-dev mailing list > Tee-dev@lists.linaro.org > https://lists.linaro.org/mailman/listinfo/tee-dev >