diff options
author | Jens Wiklander <jens.wiklander@linaro.org> | 2016-12-23 13:13:27 +0100 |
---|---|---|
committer | Jens Wiklander <jens.wiklander@linaro.org> | 2018-11-06 09:47:38 +0100 |
commit | 27c825839023904e6f4b3a2e4b991ef685950d6b (patch) | |
tree | a42a01f1471f12e981250d38048c247289ba7f8b | |
parent | c41b0d82460bb48b9bb9c8d228f2c0341251691f (diff) |
tee: add tee_param_is_memref() for driver use
Cherry-picked from v4.16:
(84debcc53533 "tee: add tee_param_is_memref() for driver use")
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
-rw-r--r-- | drivers/tee/tee_core.c | 16 | ||||
-rw-r--r-- | include/linux/tee_drv.h | 12 |
2 files changed, 14 insertions, 14 deletions
diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c index a548c3695797..4220722f6a01 100644 --- a/drivers/tee/tee_core.c +++ b/drivers/tee/tee_core.c @@ -232,18 +232,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) { @@ -307,7 +295,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); @@ -369,7 +357,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); diff --git a/include/linux/tee_drv.h b/include/linux/tee_drv.h index cb889afe576b..f4a0ac05ebb4 100644 --- a/include/linux/tee_drv.h +++ b/include/linux/tee_drv.h @@ -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*/ |