Hi Jens,

Any comments on this patch?

Thanks,
Peng
On Mon, Jan 15, 2018 at 05:27:35PM +0800, Peng Fan wrote:
>The privileged dev id range is [TEE_NUM_DEVICES / 2, TEE_NUM_DEVICES).
>The non-privileged dev id range is [0, TEE_NUM_DEVICES / 2).
>
>So when finding a slot for them, need to use different max value.
>
>Signed-off-by: Peng Fan <peng....@nxp.com>
>Cc: Jens Wiklander <jens.wiklan...@linaro.org>
>---
> drivers/tee/tee_core.c | 14 +++++++++-----
> 1 file changed, 9 insertions(+), 5 deletions(-)
>
>diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c
>index 3d49ac2e3c84..d1f4ecdbc8cc 100644
>--- a/drivers/tee/tee_core.c
>+++ b/drivers/tee/tee_core.c
>@@ -701,7 +701,7 @@ struct tee_device *tee_device_alloc(const struct tee_desc 
>*teedesc,
> {
>       struct tee_device *teedev;
>       void *ret;
>-      int rc;
>+      int rc, max_id;
>       int offs = 0;
> 
>       if (!teedesc || !teedesc->name || !teedesc->ops ||
>@@ -715,16 +715,20 @@ struct tee_device *tee_device_alloc(const struct 
>tee_desc *teedesc,
>               goto err;
>       }
> 
>-      if (teedesc->flags & TEE_DESC_PRIVILEGED)
>+      max_id = TEE_NUM_DEVICES / 2;
>+
>+      if (teedesc->flags & TEE_DESC_PRIVILEGED) {
>               offs = TEE_NUM_DEVICES / 2;
>+              max_id = TEE_NUM_DEVICES;
>+      }
> 
>       spin_lock(&driver_lock);
>-      teedev->id = find_next_zero_bit(dev_mask, TEE_NUM_DEVICES, offs);
>-      if (teedev->id < TEE_NUM_DEVICES)
>+      teedev->id = find_next_zero_bit(dev_mask, max_id, offs);
>+      if (teedev->id < max_id)
>               set_bit(teedev->id, dev_mask);
>       spin_unlock(&driver_lock);
> 
>-      if (teedev->id >= TEE_NUM_DEVICES) {
>+      if (teedev->id >= max_id) {
>               ret = ERR_PTR(-ENOMEM);
>               goto err;
>       }
>-- 
>2.14.1
>

-- 

Reply via email to