]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
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)
committerJens Wiklander <jens.wiklander@linaro.org>
Wed, 29 Nov 2017 09:37:13 +0000 (10:37 +0100)
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
drivers/tee/tee_core.c
include/linux/tee_drv.h

index 58a5009eacc388b45231d747e7d142163f38e627..c78104589e426b471f434956bf48dcc95381df10 100644 (file)
@@ -221,18 +221,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)
 {
@@ -296,7 +284,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);
@@ -358,7 +346,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 cb889afe576b34db3c4293fa431c1eab28dcc4de..f4a0ac05ebb4ca9a2c230a7ded97bd2099233353 100644 (file)
@@ -275,4 +275,16 @@ 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;
+       }
+}
+
 #endif /*__TEE_DRV_H*/