From patchwork Thu Dec 28 15:38:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jens Wiklander X-Patchwork-Id: 122844 Delivered-To: patches@linaro.org Received: by 10.140.22.227 with SMTP id 90csp3598701qgn; Thu, 28 Dec 2017 07:39:52 -0800 (PST) X-Received: by 10.46.99.131 with SMTP id s3mr17678061lje.143.1514475592657; Thu, 28 Dec 2017 07:39:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1514475592; cv=none; d=google.com; s=arc-20160816; b=bEHk29qFgGs1oO4fCZJ7xtis1Gmf3OESWi55A8uUQPR6WbpnToU4PIEdsrzB42Xa4C ibWHVbR+te4VYOvIJG+onGdqOgL9y9Lfk1EyxuxVR9QqopxFDsthM3XdViR/Y6mtIr8E PfrMHtsZ/FZRVovFg/SRYvwLIo6sNoc8XTcWZ2RLfsyJatqZv2Bvr5AY+sjKXaRPWWAS 8wKUTWUXU12X2zAwAyN70+H4oW70uHBcWPJBh4ZvRPeaJt8Lm+EWgkRCar03VvahUzT+ BY18wgKcTVo9C37gh+biCNReanzd6i7OVnk6WoRUU67Mz8uaFDla8FcLYVoaSWl8G0u+ 66sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=Ph9N/mzoC9i8GhMBaQzapBU40s1OEblScGoyYFGxq90=; b=u8ORRtAlxDkCFcjn5D0nyr6zCSHVYEdya3xAM0UDpqX+kCQvHDggia/u3TIBbAhHXM uiq1to1jLrhZwuy2In+hv1pY0kwb8L/A8quOJNu+UtbBqxMQ1zcDf+Sa7o4VLEnrlEAr +wM2C2u9DCmn2aTkAz6fqNBIrvPivnzURHeqMi5+BGyhIubKHGWr3CfFO7S9bhVWM4L0 mGM1ymxMVjB3Q/eNLaUVvWOkQ14cegOVHvPlUeqnmzpEKxJxk7V2RjxIrfTZmrNbfsTT 1lVz7j59+XwHLcMJmY5yffKs1gVWmpaXqYPFQGj+VN55vH5aFuPSleVNvZYOa3m4qK23 6/QQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=HJRWGquO; spf=pass (google.com: domain of jens.wiklander@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=jens.wiklander@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id f79sor3561480lfi.39.2017.12.28.07.39.52 for (Google Transport Security); Thu, 28 Dec 2017 07:39:52 -0800 (PST) Received-SPF: pass (google.com: domain of jens.wiklander@linaro.org designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=HJRWGquO; spf=pass (google.com: domain of jens.wiklander@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=jens.wiklander@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Ph9N/mzoC9i8GhMBaQzapBU40s1OEblScGoyYFGxq90=; b=HJRWGquO/WhkXqiVFpXsM1yvl5BQVQp/SZG7fOUHyLPXrxW7bs128wPFuBo2q+F3Q7 t+qGoqpjX1FZ97AKhXjcAnTr879rPGXfoUe976mSNeiFdEkx/2jjkjoGlKvswE8vsFHz lRURB35guE2FIAzfLYU5AorbJBONzl1QfPZrk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Ph9N/mzoC9i8GhMBaQzapBU40s1OEblScGoyYFGxq90=; b=akYZkRZMu+EZvjakh9M61fh28mkHYB8XAIY0ck4EbkPN1ZLHC4mUrpSo8JsG+vHBsj LFOAcE1xGF56OZBnBc7cTQI+2/RxYL7u+gj/us8ECmY0qxbk7UzKwmpullRjMBjGHtXE j6zwF173JJw7qsxm3EOv+Ow8v//zUk6GbAOMgeznaDjjH249hc25zVjlr2Rf1t+ahK+s qRM/J/K+N4O/M5dJAgPOxRubVhNHc6AAGb7aPn5flHZZ/qshsG2jQ9BktO5zL4KP9kds mWcxUeKrWNcw1/kr/ZmYDjX/j/1YUzgNpTdzPGpH2t4JW/s4pKGYJXaxzbir0WZsogzY yrug== X-Gm-Message-State: AKGB3mJQ21XrUl57mPlUESe2YrGclE2g+vla6zNP8JwJW3Sz6egEccB1 heKF2WXG0tZ0q7aTHx6rYGFq2efi X-Google-Smtp-Source: ACJfBosP0AOc/cPyO1mQ9pnddC9fdT5NzlrJqwg+oinyaf04KoX4mbsmTjmo8inStvm5+E+mQ+kzCg== X-Received: by 10.25.143.71 with SMTP id r68mr16435288lfd.85.1514475592341; Thu, 28 Dec 2017 07:39:52 -0800 (PST) Return-Path: Received: from localhost.localdomain (31-211-242-190.customers.ownit.se. [31.211.242.190]) by smtp.gmail.com with ESMTPSA id y70sm3986429lfk.78.2017.12.28.07.39.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Dec 2017 07:39:51 -0800 (PST) From: Jens Wiklander To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, tee-dev@lists.linaro.org Cc: Arnd Bergmann , zkong@codeaurora.org, bmanohar@qti.qualcomm.com, Volodymyr Babchuk , Volodymyr Babchuk , thomas zeng , Jens Wiklander Subject: [PATCH 1/2] tee: add start argument to shm_register callback Date: Thu, 28 Dec 2017 16:38:56 +0100 Message-Id: <20171228153857.30086-2-jens.wiklander@linaro.org> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20171228153857.30086-1-jens.wiklander@linaro.org> References: <20171228153857.30086-1-jens.wiklander@linaro.org> Adds a start argument to the shm_register callback to allow the callback to check memory type of the passed pages. Signed-off-by: Jens Wiklander --- drivers/tee/optee/call.c | 6 ++++-- drivers/tee/optee/optee_private.h | 6 ++++-- drivers/tee/tee_shm.c | 2 +- include/linux/tee_drv.h | 3 ++- 4 files changed, 11 insertions(+), 6 deletions(-) -- 2.14.1 diff --git a/drivers/tee/optee/call.c b/drivers/tee/optee/call.c index e675e82ff095..d61c14b788f2 100644 --- a/drivers/tee/optee/call.c +++ b/drivers/tee/optee/call.c @@ -536,7 +536,8 @@ void optee_free_pages_list(void *list, size_t num_entries) } int optee_shm_register(struct tee_context *ctx, struct tee_shm *shm, - struct page **pages, size_t num_pages) + struct page **pages, size_t num_pages, + unsigned long start) { struct tee_shm *shm_arg = NULL; struct optee_msg_arg *msg_arg; @@ -606,7 +607,8 @@ int optee_shm_unregister(struct tee_context *ctx, struct tee_shm *shm) } int optee_shm_register_supp(struct tee_context *ctx, struct tee_shm *shm, - struct page **pages, size_t num_pages) + struct page **pages, size_t num_pages, + unsigned long start) { /* * We don't want to register supplicant memory in OP-TEE. diff --git a/drivers/tee/optee/optee_private.h b/drivers/tee/optee/optee_private.h index de7962ebc1b6..f04930879762 100644 --- a/drivers/tee/optee/optee_private.h +++ b/drivers/tee/optee/optee_private.h @@ -173,11 +173,13 @@ void optee_enable_shm_cache(struct optee *optee); void optee_disable_shm_cache(struct optee *optee); int optee_shm_register(struct tee_context *ctx, struct tee_shm *shm, - struct page **pages, size_t num_pages); + struct page **pages, size_t num_pages, + unsigned long start); int optee_shm_unregister(struct tee_context *ctx, struct tee_shm *shm); int optee_shm_register_supp(struct tee_context *ctx, struct tee_shm *shm, - struct page **pages, size_t num_pages); + struct page **pages, size_t num_pages, + unsigned long start); int optee_shm_unregister_supp(struct tee_context *ctx, struct tee_shm *shm); int optee_from_msg_param(struct tee_param *params, size_t num_params, diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c index 04e1b8b37046..6a17b02ada5e 100644 --- a/drivers/tee/tee_shm.c +++ b/drivers/tee/tee_shm.c @@ -299,7 +299,7 @@ struct tee_shm *tee_shm_register(struct tee_context *ctx, unsigned long addr, } rc = teedev->desc->ops->shm_register(ctx, shm, shm->pages, - shm->num_pages); + shm->num_pages, start); if (rc) { ret = ERR_PTR(rc); goto err; diff --git a/include/linux/tee_drv.h b/include/linux/tee_drv.h index a1d7f467657c..230a1ebbf3bc 100644 --- a/include/linux/tee_drv.h +++ b/include/linux/tee_drv.h @@ -108,7 +108,8 @@ struct tee_driver_ops { int (*supp_send)(struct tee_context *ctx, u32 ret, u32 num_params, struct tee_param *param); int (*shm_register)(struct tee_context *ctx, struct tee_shm *shm, - struct page **pages, size_t num_pages); + struct page **pages, size_t num_pages, + unsigned long start); int (*shm_unregister)(struct tee_context *ctx, struct tee_shm *shm); };