From e9377e7870c2332b0d5d1b4788cefcfe1b8d62f2 Mon Sep 17 00:00:00 2001 From: Varun Wadekar Date: Thu, 2 Jan 2014 12:06:40 +0530 Subject: security: tlk_driver: delete TLK_{GENERIC|EXTENDED}_SMC macros Generic cleanup to remove unnecessary macros. Change-Id: Ia5d8c89622b9689c0c0a2658495cb4d33a2da7f5 Signed-off-by: Varun Wadekar Reviewed-on: http://git-master/r/351304 --- security/tlk_driver/ote_comms.c | 48 ++++++++++++++++++++++++++++++++------ security/tlk_driver/ote_device.c | 6 ++--- security/tlk_driver/ote_fs.c | 4 ++-- security/tlk_driver/ote_log.c | 6 ++--- security/tlk_driver/ote_protocol.h | 40 +------------------------------ 5 files changed, 50 insertions(+), 54 deletions(-) (limited to 'security') diff --git a/security/tlk_driver/ote_comms.c b/security/tlk_driver/ote_comms.c index 8cb11a288f6b..19861adca5d0 100644 --- a/security/tlk_driver/ote_comms.c +++ b/security/tlk_driver/ote_comms.c @@ -155,7 +155,7 @@ static void te_unpin_temp_buffers(struct te_request *request, #ifdef CONFIG_SMP cpumask_t saved_cpu_mask; -void switch_cpumask_to_cpu0(void) +static void switch_cpumask_to_cpu0(void) { long ret; cpumask_t local_cpu_mask = CPU_MASK_NONE; @@ -167,15 +167,18 @@ void switch_cpumask_to_cpu0(void) pr_err("sched_setaffinity #1 -> 0x%lX", ret); } -void restore_cpumask(void) +static void restore_cpumask(void) { long ret = sched_setaffinity(0, &saved_cpu_mask); if (ret) pr_err("sched_setaffinity #2 -> 0x%lX", ret); } +#else +static inline void switch_cpumask_to_cpu0(void) {}; +static inline void restore_cpumask(void) {}; #endif -uint32_t tlk_generic_smc(uint32_t arg0, uint32_t arg1, uint32_t arg2) +static uint32_t _tlk_generic_smc(uint32_t arg0, uint32_t arg1, uint32_t arg2) { register uint32_t r0 asm("r0") = arg0; register uint32_t r1 asm("r1") = arg1; @@ -197,7 +200,22 @@ uint32_t tlk_generic_smc(uint32_t arg0, uint32_t arg1, uint32_t arg2) return r0; } -uint32_t tlk_extended_smc(uint32_t *regs) +uint32_t tlk_generic_smc(uint32_t arg0, uint32_t arg1, uint32_t arg2) +{ + uint32_t retval; + + switch_cpumask_to_cpu0(); + + retval = _tlk_generic_smc(arg0, arg1, arg2); + while (retval == 0xFFFFFFFD) + retval = _tlk_generic_smc((60 << 24), 0, 0); + + restore_cpumask(); + + return retval; +} + +static uint32_t _tlk_extended_smc(uint32_t *regs) { register uint32_t r0 asm("r0") = (uint32_t)regs; @@ -219,6 +237,21 @@ uint32_t tlk_extended_smc(uint32_t *regs) return r0; } +uint32_t tlk_extended_smc(uint32_t *regs) +{ + uint32_t retval; + + switch_cpumask_to_cpu0(); + + retval = _tlk_extended_smc(regs); + while (retval == 0xFFFFFFFD) + retval = _tlk_generic_smc((60 << 24), 0, 0); + + restore_cpumask(); + + return retval; +} + /* * Do an SMC call */ @@ -238,7 +271,7 @@ static void do_smc(struct te_request *request, struct tlk_device *dev) smc_params = (uint32_t)virt_to_phys(request->params); } - TLK_GENERIC_SMC(request->type, smc_args, smc_params); + tlk_generic_smc(request->type, smc_args, smc_params); /* * Check to see if there are any logs in written by TLK. @@ -257,7 +290,8 @@ int te_set_vpr_params(void *vpr_base, size_t vpr_size) /* Share the same lock used when request is send from user side */ mutex_lock(&smc_lock); - retval = TLK_GENERIC_SMC(TE_SMC_PROGRAM_VPR, (uint32_t)vpr_base, vpr_size); + retval = tlk_generic_smc(TE_SMC_PROGRAM_VPR, (uint32_t)vpr_base, + vpr_size); mutex_unlock(&smc_lock); @@ -344,7 +378,7 @@ void te_launch_operation(struct te_launchop *cmd, static int __init tlk_register_irq_handler(void) { - TLK_GENERIC_SMC(TE_SMC_REGISTER_IRQ_HANDLER, + tlk_generic_smc(TE_SMC_REGISTER_IRQ_HANDLER, (unsigned int)tlk_irq_handler, 0); return 0; } diff --git a/security/tlk_driver/ote_device.c b/security/tlk_driver/ote_device.c index 29b860a7068c..63c9a912e1aa 100644 --- a/security/tlk_driver/ote_device.c +++ b/security/tlk_driver/ote_device.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 NVIDIA Corporation. All rights reserved. + * Copyright (c) 2013-2014 NVIDIA Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -56,7 +56,7 @@ static int te_create_free_cmd_list(struct tlk_device *dev) * phys addresses are passed in do_smc). */ dev->req_param_buf = NULL; - use_reqbuf = !TLK_GENERIC_SMC(TE_SMC_REGISTER_REQ_BUF, 0, 0); + use_reqbuf = !tlk_generic_smc(TE_SMC_REGISTER_REQ_BUF, 0, 0); if (use_reqbuf) { dev->req_param_buf = kmalloc((2 * PAGE_SIZE), GFP_KERNEL); @@ -66,7 +66,7 @@ static int te_create_free_cmd_list(struct tlk_device *dev) dev->param_addr = (struct te_oper_param *) (dev->req_param_buf + PAGE_SIZE); - TLK_GENERIC_SMC(TE_SMC_REGISTER_REQ_BUF, + tlk_generic_smc(TE_SMC_REGISTER_REQ_BUF, (uint32_t)dev->req_addr, (2 * PAGE_SIZE)); } else { dev->req_addr = dma_alloc_coherent(NULL, PAGE_SIZE, diff --git a/security/tlk_driver/ote_fs.c b/security/tlk_driver/ote_fs.c index b43eae69799f..3ac9ebdb1e37 100644 --- a/security/tlk_driver/ote_fs.c +++ b/security/tlk_driver/ote_fs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 NVIDIA Corporation. All rights reserved. + * Copyright (c) 2013-2014 NVIDIA Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -223,7 +223,7 @@ static int __init tlk_fs_register_handlers(void) smc_args[4] = (uint32_t)shmem_ptr->file_name; smc_args[5] = (uint32_t)shmem_ptr->file_data; - TLK_EXTENDED_SMC(smc_args); + tlk_extended_smc(smc_args); return 0; } diff --git a/security/tlk_driver/ote_log.c b/security/tlk_driver/ote_log.c index 6df01263f8d3..0cd4412d1470 100644 --- a/security/tlk_driver/ote_log.c +++ b/security/tlk_driver/ote_log.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 NVIDIA Corporation. All rights reserved. + * Copyright (c) 2013-2014 NVIDIA Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -180,14 +180,14 @@ static int __init ote_logger_init(void) smc_args[0] = TE_SMC_INIT_LOGGER; smc_args[1] = (uint32_t)cb; - tlk_extended_smc(smc_args); + tlk_generic_smc(smc_args[0], smc_args[1], 0); ote_logging_enabled = 1; ote_print_logs(); #else smc_args[0] = TE_SMC_INIT_LOGGER; smc_args[1] = 0; - tlk_extended_smc(smc_args); + tlk_generic_smc(smc_args[0], smc_args[1], 0); #endif return 0; diff --git a/security/tlk_driver/ote_protocol.h b/security/tlk_driver/ote_protocol.h index cff135dce349..a27b83b6ea1f 100644 --- a/security/tlk_driver/ote_protocol.h +++ b/security/tlk_driver/ote_protocol.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2014 NVIDIA Corporation. All rights reserved. + * Copyright (c) 2013-2014 NVIDIA Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -50,44 +50,6 @@ uint32_t tlk_generic_smc(uint32_t arg0, uint32_t arg1, uint32_t arg2); uint32_t tlk_extended_smc(uint32_t *args); void tlk_irq_handler(void); -#ifdef CONFIG_SMP -void switch_cpumask_to_cpu0(void); -void restore_cpumask(void); -#else -static inline void switch_cpumask_to_cpu0(void) {}; -static inline void restore_cpumask(void) {}; -#endif - -static inline uint32_t -TLK_GENERIC_SMC(uint32_t arg0, uint32_t arg1, uint32_t arg2) -{ - uint32_t retval; - - switch_cpumask_to_cpu0(); - retval = tlk_generic_smc(arg0, arg1, arg2); - while (retval == 0xFFFFFFFD) { - retval = tlk_generic_smc((60 << 24), 0, 0); - } - restore_cpumask(); - - return retval; -} - -static inline uint32_t -TLK_EXTENDED_SMC(uint32_t *args) -{ - uint32_t retval; - - switch_cpumask_to_cpu0(); - retval = tlk_extended_smc(args); - while (retval == 0xFFFFFFFD) { - retval = tlk_generic_smc((60 << 24), 0, 0); - } - restore_cpumask(); - - return retval; -} - struct tlk_device { struct te_request *req_addr; dma_addr_t req_addr_phys; -- cgit v1.2.3