optee: use uuid for sysfs driver entry
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-<uuid> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org> Reviewed-by: Sumit Garg <sumit.garg@linaro.org> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Tested-by: Sumit Garg <sumit.garg@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
This commit is contained in:
parent
3d77e6a880
commit
58df195cd4
8
Documentation/ABI/testing/sysfs-bus-optee-devices
Normal file
8
Documentation/ABI/testing/sysfs-bus-optee-devices
Normal file
@ -0,0 +1,8 @@
|
||||
What: /sys/bus/tee/devices/optee-ta-<uuid>/
|
||||
Date: May 2020
|
||||
KernelVersion 5.8
|
||||
Contact: op-tee@lists.trustedfirmware.org
|
||||
Description:
|
||||
OP-TEE bus provides reference to registered drivers under this directory. The <uuid>
|
||||
matches Trusted Application (TA) driver and corresponding TA in secure OS. Drivers
|
||||
are free to create needed API under optee-ta-<uuid> directory.
|
@ -12528,6 +12528,7 @@ OP-TEE DRIVER
|
||||
M: Jens Wiklander <jens.wiklander@linaro.org>
|
||||
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
|
||||
|
@ -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-%pUb", device_uuid)) {
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user