tee: add tee_param_is_memref() for driver use
authorJens Wiklander <jens.wiklander@linaro.org>
Fri, 23 Dec 2016 12:13:27 +0000 (13:13 +0100)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:55:38 +0000 (15:55 -0500)
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
From: https://github.com/linaro-swg/linux.git
(cherry picked from commit 747f68059436ac55c330ebffc5176b79006aafcf)

drivers/tee/tee_core.c
include/linux/tee_drv.h

index 339787c..879bf3e 100644 (file)
@@ -270,18 +270,6 @@ static int params_to_user(struct tee_ioctl_param __user *uparams,
        return 0;
 }
 
-static bool param_is_memref(struct tee_param *param)
-{
-       switch (param->attr & TEE_IOCTL_PARAM_ATTR_TYPE_MASK) {
-       case TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT:
-       case TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT:
-       case TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT:
-               return true;
-       default:
-               return false;
-       }
-}
-
 static int tee_ioctl_open_session(struct tee_context *ctx,
                                  struct tee_ioctl_buf_data __user *ubuf)
 {
@@ -345,7 +333,7 @@ out:
        if (params) {
                /* Decrease ref count for all valid shared memory pointers */
                for (n = 0; n < arg.num_params; n++)
-                       if (param_is_memref(params + n) &&
+                       if (tee_param_is_memref(params + n) &&
                            params[n].u.memref.shm)
                                tee_shm_put(params[n].u.memref.shm);
                kfree(params);
@@ -407,7 +395,7 @@ out:
        if (params) {
                /* Decrease ref count for all valid shared memory pointers */
                for (n = 0; n < arg.num_params; n++)
-                       if (param_is_memref(params + n) &&
+                       if (tee_param_is_memref(params + n) &&
                            params[n].u.memref.shm)
                                tee_shm_put(params[n].u.memref.shm);
                kfree(params);
index 77c4879..8614713 100644 (file)
@@ -285,6 +285,18 @@ int tee_shm_get_id(struct tee_shm *shm);
  */
 struct tee_shm *tee_shm_get_from_id(struct tee_context *ctx, int id);
 
+static inline bool tee_param_is_memref(struct tee_param *param)
+{
+       switch (param->attr & TEE_IOCTL_PARAM_ATTR_TYPE_MASK) {
+       case TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT:
+       case TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT:
+       case TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INOUT:
+               return true;
+       default:
+               return false;
+       }
+}
+
 struct tee_context *tee_client_open_context(struct tee_context *start,
                        int (*match)(struct tee_ioctl_version_data *,
                                const void *),