Received: by 2002:a05:7412:b101:b0:e2:908c:2ebd with SMTP id az1csp3244308rdb; Thu, 16 Nov 2023 04:37:18 -0800 (PST) X-Google-Smtp-Source: AGHT+IH/1udZSuDkjlQZIonMblirN+mqNAONp+MPNzYwgKMB7j0wM/b2OcwNmc0UIOEl2HfUHGJo X-Received: by 2002:a17:90b:224f:b0:281:554d:b318 with SMTP id hk15-20020a17090b224f00b00281554db318mr12660984pjb.39.1700138238454; Thu, 16 Nov 2023 04:37:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700138238; cv=none; d=google.com; s=arc-20160816; b=mK0pU1PyDq75anWqJXTW9ha53Sl9XoV5PYiXIHQ9vSxVazfrw0NqvRznlElp/n/JOG 8NtkH5RtF+oSkvG5ikBWxarETisVgeHSAQxTs+IBUzbPry4boNhWJ2smV3RGo73BNbuS F+XfzH2VkICMILufCrPcVbr8IGv7OQ5XOslEVSH1tFmocUoyJkiuGDubcK9tc5LpIzkn VTc3MmacCxtTh4FBhjdGa6gboFUKeqSbS9SFVfQDJmUedY4nTwsTv0SmQcy0IVRZyMCA ff+u1sr22vHVWhyDHJxny4MjPai6QoP6IvUZWtn3k4ySisap58xvAxZKh28MSIPWvITe V6ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=sBqjvobuK0FG72tvSIgWFZ4Ol7xLHNtUSM4flgNPMpQ=; fh=VbPHU9Ui30yH5WJ0vCo8I6MJCml5CM+s9VWlxa9tKnk=; b=fq0qCmPcFcqr9twdMOVIhJGVW1mVXZqeX3FgkTAaiFEe5i0sms9ViTfW8BCSzTOz1Z 3W3ieIwZnUPZpO49add03/RTmQ3ChJutJrURisvT1UY8p+oymkPX+X1kv6gV65F2avgW IqOeNGnX3o7iN7bboJSMBtw21FtP9KTZpw79BSNqVM/3a0Xs2AbliLJZx9SsrannPa/B WsECpc1a/jxN0Gk5rWvE58sAc/XgO4vsOnkzQg5FZq9wvYrccu3l/vU5GLQxmnnpX4PO NooCXvxbASKl9q0Yu4vzwxkqP6talyCSkfVbyCrLYUb50/LM2+UL4YGjsOPjH78m5YJx dU3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=AQRpgwZ+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id j21-20020a17090aeb1500b002801b7112f5si1958681pjz.86.2023.11.16.04.37.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Nov 2023 04:37:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=AQRpgwZ+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id AC9AF80F9CB1; Thu, 16 Nov 2023 04:37:15 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345110AbjKPMhF (ORCPT + 99 others); Thu, 16 Nov 2023 07:37:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40354 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230385AbjKPMhE (ORCPT ); Thu, 16 Nov 2023 07:37:04 -0500 Received: from mail-ua1-x932.google.com (mail-ua1-x932.google.com [IPv6:2607:f8b0:4864:20::932]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 920A3DD for ; Thu, 16 Nov 2023 04:36:59 -0800 (PST) Received: by mail-ua1-x932.google.com with SMTP id a1e0cc1a2514c-7bb3e55c120so297299241.0 for ; Thu, 16 Nov 2023 04:36:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1700138218; x=1700743018; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=sBqjvobuK0FG72tvSIgWFZ4Ol7xLHNtUSM4flgNPMpQ=; b=AQRpgwZ+sx25OdoEQiqmzzczY3UvFHBbye89mlcN9N5e71ygsNBCWUvuShK3Y+xb81 qz4s+q/7jpQHhqOrAM2rwCje3te7vA/UPo9AYEZ79+3T13Is6XJ+q3uxJ88yYIdzCFdI gDoVG5pCtRsrbQLIgxJlOWfwI1k2Ua2JdDvsedufT6uPA0yoFnigPT6CyqcD5QoN5/CA mdg4JGLEHIbkmLbsWOsHtB+ov5DG6e6FKTpyIsFj5m11o7N0GNeA+i/wO3hLYRUH/+vw /oqhnBs+5NO9XKugKbdRx2wGAJFP97BexjwqK47C73iH7Q0rJanrw9Gj7beDRjZ7cTfw MuYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700138218; x=1700743018; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=sBqjvobuK0FG72tvSIgWFZ4Ol7xLHNtUSM4flgNPMpQ=; b=e4VXRQ4E35vGLhyt3LABbEXZ56vk1flCG2DDuptXn9mkiJdAvFEZ5CaXwyV6PD6Bzk U6Y5p7KBp2wJ5H0VHIrM29Ms4uTTtbAVTRKBmtFLs6pD3BpmlbVWRG7cn191OxH4w1LN OMljRYDyql/PWRs3rovdE9sp9uhcyMgcqs0np0pudkuoZqAN7Khfr7216TuHUDqHynKk oQagcuvNxkyHzhovmWA3EZ5o+LE7AvmqVkCAqsdGDakXq4by6oyzrS1Ge2fK35T4tDzg iuAafbwbi+5wujXb4Sat41hGewOrDTgg3MSuMpJAGiRta4heyAN/SjDCqzXsCW2YCoZc lujA== X-Gm-Message-State: AOJu0YzKo+kb1ZdqsogjqQ7d9TB9ovdT+L6CXlSPx7pUHCibSrvJICaM 82zIC3D80xqywHRFJRqb6ZsegGPerAbVAH/s1uhiCA== X-Received: by 2002:a1f:2b8e:0:b0:49a:466c:199e with SMTP id r136-20020a1f2b8e000000b0049a466c199emr13179848vkr.2.1700138218480; Thu, 16 Nov 2023 04:36:58 -0800 (PST) MIME-Version: 1.0 References: <20231114095217.1142360-1-jens.wiklander@linaro.org> <20231114095217.1142360-3-jens.wiklander@linaro.org> In-Reply-To: <20231114095217.1142360-3-jens.wiklander@linaro.org> From: Sumit Garg Date: Thu, 16 Nov 2023 18:06:47 +0530 Message-ID: Subject: Re: [PATCH v3 2/2] optee: allocate shared memory with alloc_pages_exact() To: Jens Wiklander Cc: linux-kernel@vger.kernel.org, op-tee@lists.trustedfirmware.org, Jerome Forissier , Shyam Saini Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Thu, 16 Nov 2023 04:37:15 -0800 (PST) On Tue, 14 Nov 2023 at 15:22, Jens Wiklander wrote: > > Allocate memory to share with the secure using alloc_pages_exact() s/with the secure using/with the secure world using/ > instead of alloc_pages() for more efficient memory usage. > > Signed-off-by: Jens Wiklander > --- > drivers/tee/optee/core.c | 20 +++++++++----------- > 1 file changed, 9 insertions(+), 11 deletions(-) > Apart from nit above, feel free to add: Reviewed-by: Sumit Garg -Sumit > diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c > index 38ea2fecfc2e..4a4b03b4fc7d 100644 > --- a/drivers/tee/optee/core.c > +++ b/drivers/tee/optee/core.c > @@ -26,10 +26,8 @@ int optee_pool_op_alloc_helper(struct tee_shm_pool *pool, struct tee_shm *shm, > size_t num_pages, > unsigned long start)) > { > - unsigned int order = get_order(size); > - unsigned int nr_pages = 1 << order; > + size_t nr_pages = roundup(size, PAGE_SIZE) / PAGE_SIZE; > struct page **pages; > - struct page *page; > unsigned int i; > int rc = 0; > > @@ -37,13 +35,13 @@ int optee_pool_op_alloc_helper(struct tee_shm_pool *pool, struct tee_shm *shm, > * Ignore alignment since this is already going to be page aligned > * and there's no need for any larger alignment. > */ > - page = alloc_pages(GFP_KERNEL | __GFP_ZERO, order); > - if (!page) > + shm->kaddr = alloc_pages_exact(nr_pages * PAGE_SIZE, > + GFP_KERNEL | __GFP_ZERO); > + if (!shm->kaddr) > return -ENOMEM; > > - shm->kaddr = page_address(page); > - shm->paddr = page_to_phys(page); > - shm->size = PAGE_SIZE << order; > + shm->paddr = virt_to_phys(shm->kaddr); > + shm->size = nr_pages * PAGE_SIZE; > > pages = kcalloc(nr_pages, sizeof(*pages), GFP_KERNEL); > if (!pages) { > @@ -52,7 +50,7 @@ int optee_pool_op_alloc_helper(struct tee_shm_pool *pool, struct tee_shm *shm, > } > > for (i = 0; i < nr_pages; i++) > - pages[i] = page + i; > + pages[i] = virt_to_page((u8 *)shm->kaddr + i * PAGE_SIZE); > > shm->pages = pages; > shm->num_pages = nr_pages; > @@ -66,7 +64,7 @@ int optee_pool_op_alloc_helper(struct tee_shm_pool *pool, struct tee_shm *shm, > > return 0; > err: > - free_pages((unsigned long)shm->kaddr, order); > + free_pages_exact(shm->kaddr, shm->size); > shm->kaddr = NULL; > return rc; > } > @@ -77,7 +75,7 @@ void optee_pool_op_free_helper(struct tee_shm_pool *pool, struct tee_shm *shm, > { > if (shm_unregister) > shm_unregister(shm->ctx, shm); > - free_pages((unsigned long)shm->kaddr, get_order(shm->size)); > + free_pages_exact(shm->kaddr, shm->size); > shm->kaddr = NULL; > kfree(shm->pages); > shm->pages = NULL; > -- > 2.34.1 >