Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3318907pxf; Mon, 22 Mar 2021 03:43:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy7HpW8fHtOsacm0YNvPLWWP2JItrNjrwo9tjO+ARMeM+zSDAYv5VkCLFbSOq16DQzDdkJE X-Received: by 2002:a17:906:8147:: with SMTP id z7mr18060040ejw.436.1616409826627; Mon, 22 Mar 2021 03:43:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616409826; cv=none; d=google.com; s=arc-20160816; b=YviwzBJYQzEpACQdo3Hb1QTOw1mO1ooiz61rdeICiQA/1kO5asfY020TBUe1llyWjW 9c0RJIWrPA4so0In6NDms5wUzgNunCiEgscWBWEtU9x7F+OWEMGDrR3ARoR+t+CBUK9r dmO2QRGX0z+XYF/tbs7HFripnYUyf8gTXBOGwdfkKBUXo7rjn99nQ3rt5bZO0wGyvRqv igDqQB5omv+l8JKKQb0+N29Ls5tl0B0ooGYw8BXN/iNJYpvWjjv1sP67tNoOC/098QXk bAbtNWiv/FkE7tBD1+qMyR52BU1NHDdcitECOoOiX+f7aOw3+ocSLEtxz6EQk3aAfN0R 5iQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Npq1QcnHn4NxnPlHvpzS6pWYN5f2LOT+P71d2a5rXTQ=; b=Tgv8ZoGTAmxR8V5lpdOBHM6xe9CLU8err4lS3a9Co2zvEOfNIiU7vN0++8yNIqhq36 JkT1Z1yXClEFal2Sz9peIbfumINsEPzm9QhxqOQlxhHwlt1yo4W5thNqrQ+fObdWIZmx Mkd3GNDov8EZIq1trngXhjzNJ83pdPnkeTkeksgDqkj1g0cP6Oq8f8++cd1Zno/qp3ep KNsMUh0QQI1pQxGIfsEQp6vMoPblvhAfoqsJMverSCRrUDrAhi/iAP9WEgJlhf6+kFRH WLCF7RnKKbbiRE8cFCu5GCvDBTjNd221e9Wz1aOIMx89fVV5XyaMN7QE9Espm61PeCWb oRdA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@forissier-org.20150623.gappssmtp.com header.s=20150623 header.b=IhXmDG7B; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l7si10333151ejd.455.2021.03.22.03.43.23; Mon, 22 Mar 2021 03:43:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@forissier-org.20150623.gappssmtp.com header.s=20150623 header.b=IhXmDG7B; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229526AbhCVKm0 (ORCPT + 99 others); Mon, 22 Mar 2021 06:42:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56448 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229829AbhCVKly (ORCPT ); Mon, 22 Mar 2021 06:41:54 -0400 Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5B101C061574 for ; Mon, 22 Mar 2021 03:41:53 -0700 (PDT) Received: by mail-wr1-x42b.google.com with SMTP id z2so16123917wrl.5 for ; Mon, 22 Mar 2021 03:41:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=forissier-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Npq1QcnHn4NxnPlHvpzS6pWYN5f2LOT+P71d2a5rXTQ=; b=IhXmDG7Bxq4BkoKH4a6LDJC5RSY0lxat1pOjpIvaXSi24aIejkN4Py0jDMMiD1SbSz 0U8XlFB5HJNxiwVR6Ee4rG6zwKZHDL7wPLN+3AaS3j7oBKPMaWiTcDxtTLDx0JXhUatS Qm5l0ixurOqOiiuh4Jq6wGYcWNWiyP1XBRsHmrz6UAEGHYd6zluu/LRSe5TaMkEsn/f/ NipPdeIWdU5xa6Mw29OtPMikf6SlJvaRaT5lx2AR37JEzkMl/4DCKchbVnJ5rsUcPIp9 8o1vcmGzn/h81Nv57b0lVt3v2DsFJP7NlYvE+eZhoHkOTkZC/vTDyjzXxYgbI1bOtLyg v3IA== 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:mime-version:content-transfer-encoding; bh=Npq1QcnHn4NxnPlHvpzS6pWYN5f2LOT+P71d2a5rXTQ=; b=dPNuMX1vXgg+fFrQGO+3pY31Gx5jL2l+RkIHAdHhN7LkSgynbZi/WEmb7UwHFfJPdh 5/xp3jT52NssfJt+d1BNb3LlJ3K2nfGvEjitJY44lZ4ayU6GOp7Wh3leWMVjQxpfCL/w MkNuxAObRHBG3w3c22m6gdOSZbrU5U4ed/0Cf0suzHo8VSK801GgLpagZ2qmcmb4vZ1U NfiENdtbf71OiQxLwSg3/9NU8OO4/fJx+AebcDKTH+z/yJ5rQSPSxmWKfRO4lqT3036d 9LRdj8ET8/ZcyG2PHi1wcJlrfGBGtH546CPsAZILj50XRJwJJ9gOiA5+NIKx5FGrhhMT I97w== X-Gm-Message-State: AOAM530cfYK/K3BTu0kM5AxMH1YPrmtEu2GvPePuEJU9MXXMDtYMsJGX ygXvpBHLmX0Y0Ms+x8+Nez0gZqQbd17tP+99Gfv1mw== X-Received: by 2002:a5d:4341:: with SMTP id u1mr17576927wrr.88.1616409712100; Mon, 22 Mar 2021 03:41:52 -0700 (PDT) Received: from matebook.home ([2a01:e0a:269:e210:2cc0:79ea:be45:b806]) by smtp.gmail.com with ESMTPSA id f2sm19495741wrq.34.2021.03.22.03.41.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Mar 2021 03:41:51 -0700 (PDT) From: Jerome Forissier To: Jens Wiklander , op-tee@lists.trustedfirmware.org, linux-kernel@vger.kernel.org Cc: Jerome Forissier Subject: [PATCH 1/1] tee: optee: do not check memref size on return from Secure World Date: Mon, 22 Mar 2021 11:40:37 +0100 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When Secure World returns, it may have changed the size attribute of the memory references passed as [in/out] parameters. The GlobalPlatform TEE Internal Core API specification does not restrict the values that this size can take. In particular, Secure World may increase the value to be larger than the size of the input buffer to indicate that it needs more. Therefore, the size check in optee_from_msg_param() is incorrect and needs to be removed. This fixes a number of failed test cases in the GlobalPlatform TEE Initial Configuratiom Test Suite v2_0_0_0-2017_06_09 when OP-TEE is compiled without dynamic shared memory support (CFG_CORE_DYN_SHM=n). Suggested-by: Jens Wiklander Signed-off-by: Jerome Forissier --- drivers/tee/optee/core.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c index 319a1e701163..ddb8f9ecf307 100644 --- a/drivers/tee/optee/core.c +++ b/drivers/tee/optee/core.c @@ -79,16 +79,6 @@ int optee_from_msg_param(struct tee_param *params, size_t num_params, return rc; p->u.memref.shm_offs = mp->u.tmem.buf_ptr - pa; p->u.memref.shm = shm; - - /* Check that the memref is covered by the shm object */ - if (p->u.memref.size) { - size_t o = p->u.memref.shm_offs + - p->u.memref.size - 1; - - rc = tee_shm_get_pa(shm, o, NULL); - if (rc) - return rc; - } break; case OPTEE_MSG_ATTR_TYPE_RMEM_INPUT: case OPTEE_MSG_ATTR_TYPE_RMEM_OUTPUT: -- 2.25.1