From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751456AbdI1WPE (ORCPT ); Thu, 28 Sep 2017 18:15:04 -0400 Received: from mail-bl2nam02on0064.outbound.protection.outlook.com ([104.47.38.64]:7104 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750946AbdI1WPB (ORCPT ); Thu, 28 Sep 2017 18:15:01 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@cavium.com; Date: Fri, 29 Sep 2017 01:14:46 +0300 From: Yury Norov To: Volodymyr Babchuk Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, tee-dev@lists.linaro.org, Jens Wiklander , Volodymyr Babchuk Subject: Re: [PATCH v1 04/14] tee: shm: add page accessor functions Message-ID: <20170928221446.s4qdrzfaurzus76d@yury-thinkpad> References: <1506621851-6929-1-git-send-email-volodymyr_babchuk@epam.com> <1506621851-6929-5-git-send-email-volodymyr_babchuk@epam.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1506621851-6929-5-git-send-email-volodymyr_babchuk@epam.com> User-Agent: NeoMutt/20170113 (1.7.2) X-Originating-IP: [176.59.116.150] X-ClientProxiedBy: DB6PR1001CA0007.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:4:b7::17) To SN4PR0701MB3840.namprd07.prod.outlook.com (2603:10b6:803:4f::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 134aca64-6b29-4ed6-90f5-08d506be5b68 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:SN4PR0701MB3840; X-Microsoft-Exchange-Diagnostics: 1;SN4PR0701MB3840;3:91JqbX1IYrloIM60gCrJkmYQpyCZqfp4L2IfEuVA5IkcOGz5RPuo1r3atpgLvf/92U6EKgMtIFdI0kKaVMKc1Ix29Qr1H91QpbqRnXmdYx9GBXDvYEBQMgmk0bdCg/IV6rbv/Ur7UFHJf99mwxGbCYglwcstruDTbdo4a+1sk4ZmoCbpimUoMP1bVsDMSehVaS403VnIQH/LeVBwy3fyRVGnJQk5+St58sEvk3+gv30bfEPKp6yaMp27wYkN5G0H;25:xyJpFPSPgVqT1BS4wm8mztJ8lXMpgUdyoHXxPx8Sgqx6gdpqeT6NOaPgycWkcJxlwo3xCy+5ZuHZju4tigdnnXPzKTJHyVFRQ0shS2k+Q/C45i8ma3pAfXfj/0PYWEkcEZ+PzZvd9cp8lh2o58x6+b89JRLIGIl2Zy7j7FGLf3L0u/pauLSXHNeOv326Pd6083DN/EvRVVWd1B6vQnZA80Oluvp1tErcODcrUXk4T35pJa2pyCnoLVK98FWVfci2sD3/i8RJyud/0iPfNYxr7oqFfwjz6WA77A0BfI3Lwgfu4ItyiNPkKHJJUcuxqobLU5ul+hR7zuMkJe5A3d/+/A==;31:8ZULv/90W0sYYn4p/lUXWKn9MxMLoc5ht8xiOlQsrYLMBbji170052L3/ujClG//LHRktYsd545Sl38GDIc2uzfbWdf5kYB1w5MoJ30OicQtIRzXg32AO433iKwOvzrj/V+1U6vUxemA5KegJzkAcZ7hEgJ071aqn3PG9xM9et2zL29Ja9a22XsGNCYOl3OLC/1r56pH3XLLqPNUkYnOCpO96trKjS4X5PCPXtJJt60= X-MS-TrafficTypeDiagnostic: SN4PR0701MB3840: X-Microsoft-Exchange-Diagnostics: 1;SN4PR0701MB3840;20:r7bGFAXBIqgr90Tm3h8zqdGLsCS0cFOy0TIdb6iuwxBWODdKGl3BhxKqiA5OMyxpcKI19+R1qW8v+/X5QgmdRXQYQZBIPIdRAhBhCbKJWukgshrwRlEjFxgOWoRJQln7Ec4L61PbQzz80Y+vEQN9HadDGocT/HIrpS8LW7LS7cF067nv+SCMH2AJSwnW0SYcHh6VtOEgAyW37nZi3GGFuBW36l53hKpRhwPGyrLRtlM6GsHOnLzhy9oCuYoT8CpyEOtH7jqWLhQEbyaHD/fm5e+sY4gFzovtPKLN0SWus6t8dnJ6eLXVGMDVV1bScCJFP1+MVPLXWxcc9xom1x4hhRYbgEHDU4oMN1wI/lJKpp01I2KVwgaxVcvKUWvo/vDChgwWmIHIg51SV5ZG7GKkBF+Nj6JF9BAvAqNEK4sNIjq27YIZVTmiwVOE06wYwgHORuHrjpZXU53X2rde+J4iyizWgeL8Vf1axKJGKehu/R1SoHYE6u5p8J9d06YNyQ0kucvAyg4WbseOJAYVwO+YBCkN3p4HfNUjeqHFdCZle1xbc99Rf67/9heWlOwQVcdm+y2Ow/DsHiJ6ZrIqs6Hq/cFFpsV+ahBAMNUTVH8mAeI=;4:p7qYvGYaH0nWJCxj1lIlzx3RGEFhXDPzWF12w4ujsgfvluPnZ21dHphMy7qc94yiPaCc/RgTy1p81Z8hSsOkN4avx01fRvWjuu0I9EEs08HxakdqW3COeuPi++86yCQ1pP7D6aIGYe4+TtGyfIqrfU/OHw6tE2OWOXfgr7Ko+30SFVE2YqlL8LGaQ1jzwfFITAEb7QYo8R4/sLZD/VGy6zBe2dSR/ExqN06HU0bO1Fd7yc9kPrQmzRn7jjBZfW9N X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(100000703101)(100105400095)(6041248)(20161123564025)(20161123555025)(20161123562025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:SN4PR0701MB3840;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:SN4PR0701MB3840; X-Forefront-PRVS: 0444EB1997 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6069001)(6009001)(7916004)(346002)(39830400002)(376002)(189002)(24454002)(199003)(3846002)(76176999)(54356999)(106356001)(1076002)(6116002)(33646002)(33716001)(23726003)(5660300001)(105586002)(6666003)(50986999)(50466002)(25786009)(81156014)(81166006)(72206003)(478600001)(305945005)(8936002)(8676002)(101416001)(76506005)(83506001)(7736002)(6246003)(6496005)(53936002)(39060400002)(316002)(4326008)(97736004)(58126008)(66066001)(16586007)(16526017)(9686003)(42882006)(189998001)(2950100002)(54906003)(2906002)(229853002)(47776003)(68736007)(6916009)(6486002);DIR:OUT;SFP:1101;SCL:1;SRVR:SN4PR0701MB3840;H:localhost;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN4PR0701MB3840;23:KUIqoBksy0C9Sxsdmh+g4a2Pzhtd8VXQ6GLkkd8?= =?us-ascii?Q?GPVe0BaKzCgOPtKSmgj+seCbF4sCa64n57uL3ZboDRRvQd53T28fve5DV9Pr?= =?us-ascii?Q?rZEPPA5CT/bqYroR2Fuy3WhbZ+E6U2szwTHYOLCEl+WBb+15WYXsqm2ZUyDh?= =?us-ascii?Q?k2Hh2qlNPXnbjb+443uhLhGFTEowG17tBQC+GyVUwQXk/bRdx/vv9Z1pf7/R?= =?us-ascii?Q?pPkekH/zQpNb9kTpstrgFFGX+41tkj2yD3coF1EqDBie+lOVTAOJq6Z88ksq?= =?us-ascii?Q?uMlZr7J390oOxXa69y7WUsW/L4y7ygwb2XDHn5Ir9rtqOy7VDo8KSfzNhx3h?= =?us-ascii?Q?rzLiGNsNDS9XqFInIejYCcUX5zdRdEn7+64Z2ts+Bt+3HenJ1cNk9DAraD0K?= =?us-ascii?Q?cNaK5bcNhvD2kTticlJ+e725kj2bRD0/iEQ2lB3iZ34ThWqaj0Ycfo7Utp44?= =?us-ascii?Q?+NmeCKZNOfKUABcJ0kCLq+KQPUx7qUYe9VD8RLYuxUHmJGuM+w30eQ8sscuA?= =?us-ascii?Q?NTAYiot7sZvqpF02c4M4U5nWamm3xq3eyJ5aP8a7K9FKrNs4seSeCHwFoe2m?= =?us-ascii?Q?t+Oxe3vqttBQd+XEUD9nGtEBnf85JN3s3Edm5GjuvEDdC1XwWUAX3pYwBNzK?= =?us-ascii?Q?OtcCgjXF1XMqST3jvDVLc9IEOZo4UuxEksBC0dgK9KA8jpJ2QcMxTqrKadXI?= =?us-ascii?Q?oRK97Glf29e5nE3V744IJI3A6TujjoYWczfeI7brQfIqT0aA9/X04hPpRgC7?= =?us-ascii?Q?Hsd6H5W0T/rvSgctLkz6OVz27IqKUTTfhTrbOIRW32nXRPm49aw+OWMBSRoH?= =?us-ascii?Q?gGGW5ZMuAbqOkmqpydOaE+pwHjNyfGBFSZguutkDZe3pPcWZwICi+psBAwkz?= =?us-ascii?Q?nnodxXwDZI4Ak3sbSWHgT8MC2wE1hzqNwj2Np7ngqbjzmWVfUVSNlH6UWeOS?= =?us-ascii?Q?HhSRQivNiH4YwKQHBC+HqB9Rn3wjlO/BrrBLA+BpnY/0mou+nmCtAGGRuzZ7?= =?us-ascii?Q?caWyeGPDDuelaLoCBp8bxuC+vB0DxXri9ug2L7tv1fEt44ay2sjSs+z45tO7?= =?us-ascii?Q?Yof2ZkA82GFFGnreiU5q765fH8cF93UzmqbFq2fR1cbs6fxKN1s8MfPszxze?= =?us-ascii?Q?JWDGYo8PiF4dW+/NQGTU94nO0+srV9c/EXTln/5WRGiQbsXgyec8NJi6KY2+?= =?us-ascii?Q?zXSoNsIPhIuqEg6fRQRUBh0OlKNEd189M4Zzugm2S2Yy0SQvpymGAVMuAzPf?= =?us-ascii?Q?tmqZQQTXKGf5qUWajHWqQeOWQqpe5DC98K2iBo9qzXfgrLDmON+rN8Kaeeow?= =?us-ascii?Q?86q0sF8p+C+6cFmgJHx9ffu8=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN4PR0701MB3840;6:Dbz6L03fxfCGoFsv7Uq67Mb1sJkUoXxe2icJiiM/3TyBvzCUAdmpvnDuaOzqZJSEIpG0Xda7KyCl2XGdgsHrKfF05rZt9qcROPeAkLWfFBJDyeyr1f6pJE1wGfSJE7HE47tsfq9gTHMgdptzqmEAZH1UQ9gvZHLzdwB5VJD7DTx1i0nb6JxEonLZxa4r8yq/10XQITsZiPjuF4CCY3CWoGkWayW+JxSamaUnP1Z+r+LNitIfuYKAe2N+8meFmGjhrzn9tyGQIMhOhOPPBVT84vqTrD6qxjolGOYiuLr61eTehkBZeFdd4c3UzZPlhttlhmGPEbuMTk3uaX4LPQzm6w==;5:ClUzwtTfQqvRgu1hjBXbsr50CQ8XZOSEK9Ax19bJxZWosi6Z8pNJ8wcY02hg+y1CewQCHEgHSHf+yRdWJ2sWzyV0uKjn3NWMTYDmoAXm2IGflEgm7JMIdFg6L8Hh23/uNrPujTqqvXnLbPWAw+Hfyg==;24:XVhtcpi4usz4+8a2ugNbd7cXISFrm/tqvI5GccRvq4DcCZe+380XyQ52vbVQj0RXDygLP/aIWergsxi9iUgtbRCsW2vTVi0Ye9gjBr17rQk=;7:TNnTyGusWEa+7ixOVR25rg4SC/cBZlJt7584vArfZPFbkho0OTtY8YjuNWgFZk7eQ3EytyZfyY4LdoZv3IBLebxHg0pMCPTBqLap3ik3iEs0Eb3eODl8F3dRjR2T85D/MiUXtFvXURyhY4bb+yFIbUR/3jyYxbkd+947AA6ghnIZfnlUxr5wpMPGyGaxJ6YtDf3xMjU58rH43D8BFG1toWRea2Q3Nh7FWJ/AMCR5XGo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2017 22:14:58.3050 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN4PR0701MB3840 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Volodymyr, On Thu, Sep 28, 2017 at 09:04:01PM +0300, Volodymyr Babchuk wrote: > From: Volodymyr Babchuk > > In order to register a shared buffer in TEE, we need accessor > function that return list of pages for that buffer. > > Signed-off-by: Volodymyr Babchuk > --- > include/linux/tee_drv.h | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/include/linux/tee_drv.h b/include/linux/tee_drv.h > index 6ba8b76..d773827 100644 > --- a/include/linux/tee_drv.h > +++ b/include/linux/tee_drv.h > @@ -394,6 +394,20 @@ static inline size_t tee_shm_get_size(struct tee_shm *shm) > } > > /** > + * tee_shm_get_pages() - Get list of pages that hold shared buffer > + * @shm: Shared memory handle > + * @num_pages: Number of pages will be stored there > + * @returns pointer to pages array > + */ > +static inline struct page **tee_shm_get_pages(struct tee_shm *shm, > + size_t *num_pages) > +{ > + if (num_pages) > + *num_pages = shm->num_pages; My concern is about this check The only use of the tee_shm_get_pages() I found is in patch #9: + size_t page_num; + + pages = tee_shm_get_pages(shm, &page_num); So there's no any valid scenario where you should pass NULL to the function. And I don't understand why you do this check. Even more, if in future there will be an occasion when function will be passed with NULL, the error will become hidden by this code. What about just drop it? Yury > + return shm->pages; > +} > + > +/** > * tee_shm_get_page_offset() - Get shared buffer offset from page start > * @shm: Shared memory handle > * @returns page offset of shared buffer > -- > 2.7.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: ynorov@caviumnetworks.com (Yury Norov) Date: Fri, 29 Sep 2017 01:14:46 +0300 Subject: [PATCH v1 04/14] tee: shm: add page accessor functions In-Reply-To: <1506621851-6929-5-git-send-email-volodymyr_babchuk@epam.com> References: <1506621851-6929-1-git-send-email-volodymyr_babchuk@epam.com> <1506621851-6929-5-git-send-email-volodymyr_babchuk@epam.com> Message-ID: <20170928221446.s4qdrzfaurzus76d@yury-thinkpad> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Volodymyr, On Thu, Sep 28, 2017 at 09:04:01PM +0300, Volodymyr Babchuk wrote: > From: Volodymyr Babchuk > > In order to register a shared buffer in TEE, we need accessor > function that return list of pages for that buffer. > > Signed-off-by: Volodymyr Babchuk > --- > include/linux/tee_drv.h | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/include/linux/tee_drv.h b/include/linux/tee_drv.h > index 6ba8b76..d773827 100644 > --- a/include/linux/tee_drv.h > +++ b/include/linux/tee_drv.h > @@ -394,6 +394,20 @@ static inline size_t tee_shm_get_size(struct tee_shm *shm) > } > > /** > + * tee_shm_get_pages() - Get list of pages that hold shared buffer > + * @shm: Shared memory handle > + * @num_pages: Number of pages will be stored there > + * @returns pointer to pages array > + */ > +static inline struct page **tee_shm_get_pages(struct tee_shm *shm, > + size_t *num_pages) > +{ > + if (num_pages) > + *num_pages = shm->num_pages; My concern is about this check The only use of the tee_shm_get_pages() I found is in patch #9: + size_t page_num; + + pages = tee_shm_get_pages(shm, &page_num); So there's no any valid scenario where you should pass NULL to the function. And I don't understand why you do this check. Even more, if in future there will be an occasion when function will be passed with NULL, the error will become hidden by this code. What about just drop it? Yury > + return shm->pages; > +} > + > +/** > * tee_shm_get_page_offset() - Get shared buffer offset from page start > * @shm: Shared memory handle > * @returns page offset of shared buffer > -- > 2.7.4