Received: by 10.223.164.202 with SMTP id h10csp4397885wrb; Wed, 29 Nov 2017 05:52:39 -0800 (PST) X-Google-Smtp-Source: AGs4zMYva3Jq/hhF8Lc1Fl1/Xa3uCuMYHcBAKFgPI5Iy5VcWDEV317LbS2Kk4i+X/uW7Govxjyn0 X-Received: by 10.159.202.130 with SMTP id p2mr2885546plo.309.1511963559165; Wed, 29 Nov 2017 05:52:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511963559; cv=none; d=google.com; s=arc-20160816; b=0zDGw7ggrmzIAUBIdQa5eHswcjCKLhrwO7EIepWpP0iISzTCet52klrnivUVzlaHVN PGfs8H4pahtkteBlh8Xi2zTBqQTmtqL7cghW5KEZ8SaPjXsn9j6hgkg2UvcDC5XXXob2 2XyvkkOecFM0UzGO/rIP8PD7U6rtnTdd+CjOERUfanSWYB6wpK3ujU8X5CU7Ht9O9aM7 hWVD33llUu6ayOq403Au4gbXriHUC6usAYLEpA6i1lCoqKwaxH+aa/3Tna1B+cAVZmeq 0KwZe+Is7v7ug3a/iJ5BzjoCWOX58TjwGtxrGGBCUV9n91ch4diKSJ74/bskhZtSUzSs XMUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:arc-authentication-results; bh=02Z3Eg+g5k8UbLiTPgobvRPAKHTwdsoC9R26trZkvkQ=; b=Wv9bDAvrCt3uR1jlDb/u+ueD9rzy8hvrpgzbjp5T8fWm186Y4YtH7EvoTTt7mW3h91 X7AN+urieOqEhgdNTHygFBI9mt42dXQTyOU10qzJL0aJDRzFfI7R77XQ0D0UK9/vy4D+ nczK6CjfXpjbSolSk66INslRL113c9qZ4mukB9uTgJMKjkI9U71U+pE/Bu+hMFq2+YSb 2ilx6q+kUbnj+4Z6eomXb/ZyrDj0W96dpi4MrPgvkcEubccnYIiKlqbQ0M+9FWhXVnpK Sf/PQo1FPvGgbBugavkQyaXZq1OHJb9YnwFV81J5isK5sZHB/OcSX6sAKiOkTqqPTU9P zGBA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@epam.com header.s=selector1 header.b=a7ggHcZL; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s4si1308848pgo.278.2017.11.29.05.52.28; Wed, 29 Nov 2017 05:52:39 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@epam.com header.s=selector1 header.b=a7ggHcZL; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754902AbdK2MuN (ORCPT + 70 others); Wed, 29 Nov 2017 07:50:13 -0500 Received: from mail-he1eur01on0089.outbound.protection.outlook.com ([104.47.0.89]:64655 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932621AbdK2MuI (ORCPT ); Wed, 29 Nov 2017 07:50:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=02Z3Eg+g5k8UbLiTPgobvRPAKHTwdsoC9R26trZkvkQ=; b=a7ggHcZL+24NYHcS341+fL4UqWKlmtGgE5793bln/1waTSCUj9Nz6Vo5f6vICMa41BCSy8Jq14V1t3LgtrKtH2Sk2ujqPIX01gvk3cY5J5EjmySq2kCBwNQL8iv8j4/DEXpuiqAnF70goqR2AlVIJsxFx8aN+9hSRPeMWg8XAVY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Volodymyr_Babchuk@epam.com; Received: from EPUAKYIW2556.kyiv.epam.com (85.223.209.56) by DB5PR03MB1766.eurprd03.prod.outlook.com (2a01:111:e400:c580::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.260.4; Wed, 29 Nov 2017 12:50:03 +0000 Received: by EPUAKYIW2556.kyiv.epam.com (sSMTP sendmail emulation); Wed, 29 Nov 2017 14:49:59 +0200 From: Volodymyr Babchuk To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, tee-dev@lists.linaro.org, Jens Wiklander Cc: Volodymyr Babchuk , volodymyr_babchuk@epam.com Subject: [RESEND PATCH v2 12/14] tee: optee: enable dynamic SHM support Date: Wed, 29 Nov 2017 14:48:36 +0200 Message-Id: <1511959718-5421-13-git-send-email-volodymyr_babchuk@epam.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1511959718-5421-1-git-send-email-volodymyr_babchuk@epam.com> References: <1507923164-12796-1-git-send-email-volodymyr_babchuk@epam.com> <1511959718-5421-1-git-send-email-volodymyr_babchuk@epam.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [85.223.209.56] X-ClientProxiedBy: HE1PR0402CA0050.eurprd04.prod.outlook.com (2603:10a6:7:7c::39) To DB5PR03MB1766.eurprd03.prod.outlook.com (2a01:111:e400:c580::7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dcb5d0e5-e03b-48ed-4b3c-08d53727b65e X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(5600026)(4604075)(4534020)(4602075)(7168020)(4627115)(201703031133081)(201702281549075)(2017052603199);SRVR:DB5PR03MB1766; X-Microsoft-Exchange-Diagnostics: 1;DB5PR03MB1766;3:9wFI9QxjIGKG+YVs9CYsdDnB8w2FzhW5gD5jd1MhCU/VEfle2BeKo5W3sNLhNre8N0Wbl6S0aQD4qg1VpT87PjjooE1qIFvsOJdwnofUPQyPJIDUNDY9xTvj5VAyjwAweJWqUtLrLBybni7ESXr7UK9eLQFauSYIZ8y0TVqLc9gEkPSjGDCgHZRf7Sxmu5R9ZM6tNzOWHfKLwPvmG0yJB1pOihGA9QbbBHvJqn5FGpjlN2WXtG6cW+GGyB+srtP0;25:xn70BjY7V6cRMM7yX2oymdlnbqKlOqMOeVnE7V2Cb3uByCQcGlSu9lH1poBBy40IMV5ogq+hg9X/6sgmF8/TJudzL57L78SxMEtMQ9wQIiisEWHPfxD9xEusfrEP0JseSqnqrYuJUS3pUel2ngQgJJm5+86jxpGB8YL+USu5R0E4N+Z75ax0/c4IcPsFL7XHXvEhUmggyRK2vsPcw1cRa7Pejz0Ogb4PwrGY4FsW4a07aoGNyzpc9a8Ecpn7XkWpqbgrCvv2u5200KpOZpXg1pSiNizUIimVuXxR6i/+afe5+EdNPoK1TROZ1PsBXZeH43FLtQV8+Bd+2ZJktxX3hvYN9ju73fXqz1wFc04x1Dk=;31:94ebj77FPbHaZxf3XKViDWkIahuwVp0gKqq4V5lOc4hz8FOMdJNI8tpBQeArPi3S58wZ9ptD8UH1ia1l31wD3vSWfWSh2lihR4ju76RBBedhr2/DKNweOPOWhQrnhW0ml66tG9EYqXFH4S7IaEaujt32twz9BNM7jDEyW8m80GqjZJz6mRUPr+sjp2yn08d+lw5LddJM+j5iNUWulC8Qf87S7JFZSDJbtYXgzVNlpyo= X-MS-TrafficTypeDiagnostic: DB5PR03MB1766: X-Microsoft-Exchange-Diagnostics: 1;DB5PR03MB1766;20:wjn9DsZNgknDaoRaLUu6sxZ7JrFn7MbQ8LkDLTDYV/XBhKc7m7DuSJd8BaaHMkZ8FM7qxeA5CCMBGiZWiQ41i7LBmVPeyUdNilwwc+m2yWnPuU7fYZMI+28mooeK/JbrFSatA78ng2UmTmfisXe8GScDxgCsPul3N/apIP9TefK8c6Io1+a04v9r4oM+Ea6W/ja15Tj16yCItJfdGLSI+1rjPypXUN6KZ6DUByhQJgTi1cOAMoIJ5kLnssbcGhekhaRB5DHDZQoKo5J/AjfUMg8L+IY+QaHeaE312UwdnsPC8yKM6cS8Q99lL5+PrvmCDhQyZ2NE9atxqUZLBr1dtzHc9zntjVbS9P4eWOtKDAtW3hisu/C0SKglKS7S00HLGG9NWcHR/nCWarJCkMhKbjDSF2mdaZNGURQbNaROqS5dIDBh/ahbcg1+gVtYDTxFJPTvFjgPb6hmq7PZ+yfu5PxoPHyzcsC3AgoQE1IEyAFWz8U+Ni9f0d126xEC4CZH;4:sNRk98/gXyt5Jkg5ySEdN7t1AHpJ8IbctuO2jKZykb37oPPKzuxiXsMsHE3HjVcmW5QrCMe/bD29+40DF7SU+eYikpaolEt24TROVEYZbf6wqX0EA4xTGNYY8G+0UYa1Qo0mBkisuY0Rh0+2BdlNxQ18/1YoDdGHotT7BFItrg7BMsz7Idn+8llNgOZxgkAYvyU0hhEd7rTRKBlwsiRn/7/YwgTGZWTuZIHt3GRlx0y3KZRAbR53RPwqlhe002BzEfWlQ47/xE+4A0B73RgPRA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(2401047)(5005006)(8121501046)(3002001)(3231022)(93006095)(93001095)(10201501046)(6041248)(20161123564025)(20161123558100)(20161123555025)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:DB5PR03MB1766;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:DB5PR03MB1766; X-Forefront-PRVS: 05066DEDBB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(366004)(346002)(376002)(199003)(189002)(51416003)(80792005)(36756003)(50466002)(106356001)(33646002)(50986999)(105586002)(76176999)(39060400002)(72206003)(478600001)(107886003)(52116002)(4326008)(66066001)(55236003)(101416001)(53936002)(122856001)(16586007)(316002)(42186006)(48376002)(47776003)(8936002)(5660300001)(6666003)(6916009)(2950100002)(189998001)(6116002)(2906002)(3846002)(68736007)(50226002)(8676002)(7736002)(305945005)(97736004)(86362001)(81156014)(81166006)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:DB5PR03MB1766;H:EPUAKYIW2556.kyiv.epam.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: epam.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB5PR03MB1766;23:y/7fU0SKUAAm/ZI47kOh/9T5Zhxor8C7ad8dM883W?= =?us-ascii?Q?EJ0E8ipDgpb69KBVkRBsbqD9j8vPVIWUPjtNxt+jo0IcHBjSFyM7ZoDaKkq1?= =?us-ascii?Q?KADusQoBUpF/xcK/1FAT7tjD1uk34TQcK8ce4gZxZt2OsNNIZ6kU2llfLzcb?= =?us-ascii?Q?diVBnEMGYfjY5b7qrzusdB90fjf+JsVxN5R10pYAS/VjxUHvFY4BfEtFxvAW?= =?us-ascii?Q?BjbDyR+yV/EaN/Kr50be9sDmlcyFzZz0eR/zJC1VUs0Mai33XlltGN3lcee+?= =?us-ascii?Q?UksJyZfk4hfIcAXVnyxrrSn2x9NoWKLjEMQSLBoutoEjD8eUGXUnr/kcukXP?= =?us-ascii?Q?u1OKVNGzYDrHWxinhD4O51Eq4pIsCOZ8oxrZDvxnfztk8NblWCbIOjAnPqQd?= =?us-ascii?Q?5AsO16nKEIZLq2SAKKlublwb+ZtFb6k0wY9pFsVdSaJP1RPVv9G3L5uKeMM0?= =?us-ascii?Q?pdzB/uq0vBe5jeyVAVx+M9Acp3wZE8GeD+9yUG5bBQYtIuPqH8NnJX7ng0JT?= =?us-ascii?Q?SkcrEYzqfO+ynzYrJ/LV0DzpRzkETT+QKZF35MDdetacD9tsTnXkDI+D/AMi?= =?us-ascii?Q?YqUv5g99xAeiC2BPq5ozAq2A7bMyo2qmG/QCR4cD0jyDTOHh3EgDHuVGYXcT?= =?us-ascii?Q?c9CD4cL+s2LbhjyFy4qH1te7mQjQuoAhpWWmsBoo4YNo39hFcE9j/4GaRsAg?= =?us-ascii?Q?Cd4ZeYGLv2JHxBOvysWsepsOv0/tkKmdUxktCA7UY4oujcQOxAjhybqFvzc7?= =?us-ascii?Q?232DcTDzr1S0iTbcLGdUSPHAgoQEzqRNJrKN+DOxozCfpvs0MTPdwDaZkGdK?= =?us-ascii?Q?92ZTDfi1Xdl1joDM+Ir9JZIuubcqyjgW5npiW1OfbJKOA2bfSz+9B7Mw+C4B?= =?us-ascii?Q?O5U1dX1W0YhPZlT5M+RxX3w1FF3ob1JGZwKdLSRZsXG7IVyLJbPUH3pOB9VS?= =?us-ascii?Q?vkmDYuPuq6kF9BOBVdU4Nn14L++n/wWmoirnfNX+/ViDfcAhVa2Nq16txnLO?= =?us-ascii?Q?axf3rXf3UvcO5u+be5Ex5bpJqq8gC0CB9OIJbUXfmLfSX5viq26fz9yzgBOA?= =?us-ascii?Q?DNCPQmBRIFTbqvhxGmIRihZAUU4G7B8L5V3KKMb5qzsJtSJSA5AesevYVm+q?= =?us-ascii?Q?kk7j/CJ7qQTDOKJhMJZLEUWOEk3Jwl8KfkhPNlRbh7bRi7OUZO6XQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB5PR03MB1766;6:Fh4EdjyimViZbsl2aOj2XSZ+nlf8A2qsZTzYgUWSNUyOhuoohhCiEo2GqyBPeVqk/hi5KSLs4VSpryr7nY9hmbfS5lpBUrI3JqweCzVPxn1wSnb26xUiUCQqKBct0lX+W7b8nYo6X8tfjqPNm+xOTJZHUNjUbOacDbGZt5xe9sZmTIANcrMonNNbrcsROH/eLEfkdO2+Iw+YaiidxZp7SqcUv2DxGg5OEdbAlUQKjRRjgUF+2OmYirTxPMherz1PCI7t/OVzaAecOWBqidpNHmqZSJxUmz14HJMyDmuQqtMgAshpNyCy4/EmcSBBookCRukOTQE3XitIRvt7Oh9OMI6JmQigUrVDyaZGf+mAEgE=;5:mmGtYQxaiJrcvqRhW/94U45kfYM7BUYovzu31AxI5qBCkyx90Q52D4NyHblbyeIua1Z//re5EXT5tRRtku+QnsAefLkqrJftQSic0NnCKyBBp60CdkVWQPIVdEQomPLhnrW2tkyKC+J8wTjUVOwcbdn3v8z3hkNzPnQcgdtBx60=;24:i4+9ndTglGD3zSBqoa5ObKv8/nq49gD+g1PG5V6RkxIELFDoB+I2f2FWxPcNaOsCkoAp0nIBrRo3flkrPBuL76akg7rfg/hzWEs9KnSGIM0=;7:ZCR9xUwTtq/QX1o14x4rSgTd3EE1wwwLOC2xOJskjbtorfRxIh0DjaGGbEpZYReLau6aTVzpqpHcdd698dlRe8MMnU1oADzZACM5yZW5g2Vfp+22pwDWjjy4p08OGw2ACebIuTQa8HAZwridRNggUF5djaXPaaUDkATV0WEI56K5H4q7cHRhswuN8tYVT1GhqQUx0mX/G0MUA+r92PLDB19jq4sULDTs3xzV+jk6EeQO1xLD1q+a3HOamAfZdYzH SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2017 12:50:03.6771 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dcb5d0e5-e03b-48ed-4b3c-08d53727b65e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR03MB1766 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Volodymyr Babchuk Previous patches added various features that are needed for dynamic SHM. Dynamic SHM allows Normal World to share any buffers with OP-TEE. While original design suggested to use pre-allocated region (usually of 1M to 2M of size), this new approach allows to use all non-secure RAM for command buffers, RPC allocations and TA parameters. This patch checks capability OPTEE_SMC_SEC_CAP_DYNAMIC_SHM. If it was set by OP-TEE, then kernel part of OP-TEE will use kernel page allocator to allocate command buffers. Also it will set TEE_GEN_CAP_REG_MEM capability to tell userspace that it supports shared memory registration. Signed-off-by: Volodymyr Babchuk --- drivers/tee/optee/core.c | 69 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 18 deletions(-) diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c index dbe5a61..51d5575 100644 --- a/drivers/tee/optee/core.c +++ b/drivers/tee/optee/core.c @@ -28,6 +28,7 @@ #include #include "optee_private.h" #include "optee_smc.h" +#include "shm_pool.h" #define DRIVER_NAME "optee" @@ -219,6 +220,10 @@ static void optee_get_version(struct tee_device *teedev, .impl_caps = TEE_OPTEE_CAP_TZ, .gen_caps = TEE_GEN_CAP_GP, }; + struct optee *optee = tee_get_drvdata(teedev); + + if (optee->sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM) + v.gen_caps |= TEE_GEN_CAP_REG_MEM; *vers = v; } @@ -397,21 +402,22 @@ static bool optee_msg_exchange_capabilities(optee_invoke_fn *invoke_fn, } static struct tee_shm_pool * -optee_config_shm_memremap(optee_invoke_fn *invoke_fn, void **memremaped_shm) +optee_config_shm_memremap(optee_invoke_fn *invoke_fn, void **memremaped_shm, + u32 sec_caps) { union { struct arm_smccc_res smccc; struct optee_smc_get_shm_config_result result; } res; - struct tee_shm_pool *pool; unsigned long vaddr; phys_addr_t paddr; size_t size; phys_addr_t begin; phys_addr_t end; void *va; - struct tee_shm_pool_mem_info priv_info; - struct tee_shm_pool_mem_info dmabuf_info; + struct tee_shm_pool_mgr *priv_mgr; + struct tee_shm_pool_mgr *dmabuf_mgr; + void *rc; invoke_fn(OPTEE_SMC_GET_SHM_CONFIG, 0, 0, 0, 0, 0, 0, 0, &res.smccc); if (res.result.status != OPTEE_SMC_RETURN_OK) { @@ -441,22 +447,49 @@ optee_config_shm_memremap(optee_invoke_fn *invoke_fn, void **memremaped_shm) } vaddr = (unsigned long)va; - priv_info.vaddr = vaddr; - priv_info.paddr = paddr; - priv_info.size = OPTEE_SHM_NUM_PRIV_PAGES * PAGE_SIZE; - dmabuf_info.vaddr = vaddr + OPTEE_SHM_NUM_PRIV_PAGES * PAGE_SIZE; - dmabuf_info.paddr = paddr + OPTEE_SHM_NUM_PRIV_PAGES * PAGE_SIZE; - dmabuf_info.size = size - OPTEE_SHM_NUM_PRIV_PAGES * PAGE_SIZE; - - pool = tee_shm_pool_alloc_res_mem(&priv_info, &dmabuf_info); - if (IS_ERR(pool)) { - memunmap(va); - goto out; + /* + * If OP-TEE can work with unregistered SHM, we will use own pool + * for private shm + */ + if (sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM) { + rc = optee_shm_pool_alloc_pages(); + if (IS_ERR(rc)) + goto err_memunmap; + priv_mgr = rc; + } else { + const size_t sz = OPTEE_SHM_NUM_PRIV_PAGES * PAGE_SIZE; + + rc = tee_shm_pool_mgr_alloc_res_mem(vaddr, paddr, sz, + 3 /* 8 bytes aligned */); + if (IS_ERR(rc)) + goto err_memunmap; + priv_mgr = rc; + + vaddr += sz; + paddr += sz; + size -= sz; } + rc = tee_shm_pool_mgr_alloc_res_mem(vaddr, paddr, size, PAGE_SHIFT); + if (IS_ERR(rc)) + goto err_free_priv_mgr; + dmabuf_mgr = rc; + + rc = tee_shm_pool_alloc(priv_mgr, dmabuf_mgr); + if (IS_ERR(rc)) + goto err_free_dmabuf_mgr; + *memremaped_shm = va; -out: - return pool; + + return rc; + +err_free_dmabuf_mgr: + tee_shm_pool_mgr_destroy(dmabuf_mgr); +err_free_priv_mgr: + tee_shm_pool_mgr_destroy(priv_mgr); +err_memunmap: + memunmap(va); + return rc; } /* Simple wrapper functions to be able to use a function pointer */ @@ -534,7 +567,7 @@ static struct optee *optee_probe(struct device_node *np) if (!(sec_caps & OPTEE_SMC_SEC_CAP_HAVE_RESERVED_SHM)) return ERR_PTR(-EINVAL); - pool = optee_config_shm_memremap(invoke_fn, &memremaped_shm); + pool = optee_config_shm_memremap(invoke_fn, &memremaped_shm, sec_caps); if (IS_ERR(pool)) return (void *)pool; -- 2.7.4 From 1581172303188438412@xxx Fri Oct 13 19:36:55 +0000 2017 X-GM-THRID: 1579807701882531863 X-Gmail-Labels: Inbox,Category Forums