From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1ABB2C63797 for ; Sat, 4 Feb 2023 04:06:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1146A6B0078; Fri, 3 Feb 2023 23:06:53 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F2CCF6B007D; Fri, 3 Feb 2023 23:06:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DF5F16B007B; Fri, 3 Feb 2023 23:06:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id C243C6B0074 for ; Fri, 3 Feb 2023 23:06:52 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A08CBC05BD for ; Sat, 4 Feb 2023 04:06:52 +0000 (UTC) X-FDA: 80428273464.22.7E0587A Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by imf15.hostedemail.com (Postfix) with ESMTP id 6A410A0013 for ; Sat, 4 Feb 2023 04:06:50 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Ai1SHCtS; spf=pass (imf15.hostedemail.com: domain of ira.weiny@intel.com designates 134.134.136.31 as permitted sender) smtp.mailfrom=ira.weiny@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675483610; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=45AWBEPh2q+FkGentoy8tiOFsvJcM+s02Ya+Npu4Z5o=; b=qIePUkQOgaqTqbbe5uLmR0FgWNcusoScp3B4nX6VrIpJHBhg0gHXW2b69RL0szVNLcu7bv 0OUhMq/FXM+G3qF7rXDku5T25yG2MzUtoVlXSz31DihFVxfZKIZw/svmX6yZz2zIDRutUq vgdFPYLtj96MmHjV8oSvyImXNVLkxYs= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Ai1SHCtS; spf=pass (imf15.hostedemail.com: domain of ira.weiny@intel.com designates 134.134.136.31 as permitted sender) smtp.mailfrom=ira.weiny@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675483610; a=rsa-sha256; cv=none; b=R+TFvQwkjX1S9Vg11PlG1l55ZfgTDhe0bWkjagpGFJi/qUtbSLQ60MBvqi7f0fbF7TjsOE PTdXdDC00exlSsJKjLs9A9z/1WrmP9OgqqRex0OfaQi8CYoMVzIVms1ychxPQ/8kfVkIHn DdE75WWgUJ3/aGATm4N1mRuIUHidPsw= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675483610; x=1707019610; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=xPznNTTYEOG4Wgd/WE5V34/CM30jMXDiAV2/7i6RFQ0=; b=Ai1SHCtSEpixyrxupY6FWI4ewc/Mw7PN5Tov+DVLfgNN4qIeQ4IAQ5kt ip7z9oYsXjLKqlazjwVLQHzQH7q+rAC+o+AH9wHTDAY01SsYJCZuhH6hc 1BdUHc1Y2bCsDac2HuPjmoqncQIg8+Exgx4eV79N+AatcEnrZAvPMjei7 0/aOIfc4PUnxp+vAdS5OFobjclSJA8alBHCpKm/fgkkTS8Dan8lW90pH2 AnQ5opYKXmGtCmz/eV+BgVNB+Es9QfA9SniHiHTSSn5n8FX2rS/DR2kxk Xu7bcVmqgZX+fuPb82wZMfWxqzftfisnZrrHUItsTTOIiFQTz5DNU4B8S g==; X-IronPort-AV: E=McAfee;i="6500,9779,10610"; a="391309375" X-IronPort-AV: E=Sophos;i="5.97,272,1669104000"; d="scan'208";a="391309375" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Feb 2023 20:06:48 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10610"; a="734573734" X-IronPort-AV: E=Sophos;i="5.97,272,1669104000"; d="scan'208";a="734573734" Received: from iweiny-mobl.amr.corp.intel.com (HELO localhost) ([10.209.125.166]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Feb 2023 20:06:47 -0800 From: Ira Weiny Date: Fri, 03 Feb 2023 20:06:33 -0800 Subject: [PATCH v2 2/4] tee: Remove vmalloc page support MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230203-get_kernel_pages-v2-2-f1dc4af273f1@intel.com> References: <20230203-get_kernel_pages-v2-0-f1dc4af273f1@intel.com> In-Reply-To: <20230203-get_kernel_pages-v2-0-f1dc4af273f1@intel.com> To: Sumit Garg , Andrew Morton Cc: Al Viro , Christoph Hellwig , linux-kernel@vger.kernel.org, op-tee@lists.trustedfirmware.org, linux-mm@kvack.org, Jens Wiklander , "Fabio M. De Francesco" , Ira Weiny , John Hubbard , Linus Torvalds X-Mailer: b4 0.12-dev-cc11a X-Developer-Signature: v=1; a=ed25519-sha256; t=1675483603; l=2347; i=ira.weiny@intel.com; s=20221211; h=from:subject:message-id; bh=xPznNTTYEOG4Wgd/WE5V34/CM30jMXDiAV2/7i6RFQ0=; b=zI8xrMYrd7xg0YhdT9eEp6Z83hAZpqExdK8hmPMgjoJ6qOuEy8ld7Ir/IYtcWFpxBVOS3FyxJzDM vG51TsTlAIyGPK7gBX8LG5wQeeEIUZ7KSW8JEbAuIHayiyf/Ewxa X-Developer-Key: i=ira.weiny@intel.com; a=ed25519; pk=noldbkG+Wp1qXRrrkfY1QJpDf7QsOEthbOT7vm0PqsE= X-Stat-Signature: iukcfkq1xuy91ps469zx16ehsz8drzqa X-Rspam-User: X-Rspamd-Queue-Id: 6A410A0013 X-Rspamd-Server: rspam06 X-HE-Tag: 1675483610-51512 X-HE-Meta: U2FsdGVkX19oDtZzNygyvharrmqgrFSEDuSDw93fryEbtjinJM1W8EPlM94VimKZBd0fgVK4Smiijtt18KUxI0jC8Y5CBxnNpI0OrTH/Dswaoxos3DZTTLd8yCqFuZcnRFttD01In/iMDDrRHTxt5RvxFf0jii27sAT56PB6uPeUv8Yi8rOAqeJXOimjwco5d8JAQ8vnI6xXwPGc2UuvORLQUTOWD7tGu0zX2JyqdK5lwjRElS8VgmvxdLoDz8GSUUN4cmi2ATAMJ0CrPxyqfZ4q2TBYWX3o6uYlfFVfUpbZmEt5wri4iJf9EYdwCcvNZVORsiEVPH0lNi47d7JV0vqBs2vK/GMRuK97pMs9Z7gVjNU6BftkMCZEOokm4heo+VlgOBpbkYBpY+bgIqWMAfDszB2KMZT/eVDZJkpXGrmUjsyGYt2BRoa4NBdGS9S+TTC5qfkqI/ERTXU8qEtc4rIDQFUEypqQIb4BS2V3CeCiElHKgrrSkpIHAsdbo+y7R8bUphEkfPJhwECrpLaDRIC/QKJpqWM3i7T/F56g2PAdc1CgV5ofzfkyi2WkN0VbMATKJGExO89AE92WJjYtSyFTvoYHzp0OVMabM5WuIK2TqZXzjvshpYzQBb83ZR5IJO6ncOHVsis06HGzAoxdiUa8vac3McO9KXCHMlbiaYo2SZCNHXZaN2MheCw+Hd+x4fZCxwbQ59n9n6Xoo2EkcUvvVXYwvw+u+1LkgU0sYCmWLi6q+ZUu0/6kClsLnz3FvuGRwZoOswI/m+0RVUB1PYzqoTJsfTXSBjvE54VAwVwYJnok5KNi2Ooj/1tCrwRH4MR6nRXgCLm2qZrvqisPEkMbS8kgNQlADMIEwB6c/CBg6ZgxVcPHLyUNqJ2ASYE1UBHxgSnH1TimhnXT/nwb1AvSOED3GwNFfZ9kSgKqBfdpeOs/2gjddA2msvKwZSeK8xoVMVh1dOQihLGivsb ZLSFSqwT i+p4AOmBxcU61KW04cfa/XBNTDpOJw9gqitdaLyHSnMduwa3pF0U3Qwl0vR3Xe5GQBvgKeVQTzT+cU3kdnU89KH1QK4FPJqb4udeI/Op+fhiS3b2LtIeM+PCpDeqK59uRzR7jhHgwToKSBwRYswwpbteY9/FSJXIfgXfrLg11uLNaeoGTjmYmSNe+Ykm0OgQ7Huf+7j/rWVBGN2C/NnUI+cqqPb7A8lYUcLXpyuNAiIk6CPfLUxrR8rmhbKxX0R69EB2pYD8Juzkk6VC74YMn836B839LZumiZzruUl/f7REf8Bd3v9VK8JObJmbt9ko8ak2vbnTLBuw9q0MmJUPhFplYH+co14/7xbBpf7zu8C14wo5fz8R5hUTQxUF5viFxVTKG X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: The kernel pages used by shm_get_kernel_pages() are allocated using GFP_KERNEL through the following call stack: trusted_instantiate() trusted_payload_alloc() -> GFP_KERNEL tee_shm_register_kernel_buf() register_shm_helper() shm_get_kernel_pages() Where is one of: trusted_key_unseal() trusted_key_get_random() trusted_key_seal() Remove the vmalloc page support from shm_get_kernel_pages(). Replace with a warn on once. Cc: Al Viro Cc: "Fabio M. De Francesco" Cc: Christoph Hellwig Cc: Linus Torvalds Reviewed-by: Jens Wiklander Signed-off-by: Ira Weiny --- drivers/tee/tee_shm.c | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c index 27295bda3e0b..527a6eabc03e 100644 --- a/drivers/tee/tee_shm.c +++ b/drivers/tee/tee_shm.c @@ -24,37 +24,25 @@ static void shm_put_kernel_pages(struct page **pages, size_t page_count) static int shm_get_kernel_pages(unsigned long start, size_t page_count, struct page **pages) { + struct kvec *kiov; size_t n; int rc; - if (is_vmalloc_addr((void *)start)) { - struct page *page; - - for (n = 0; n < page_count; n++) { - page = vmalloc_to_page((void *)(start + PAGE_SIZE * n)); - if (!page) - return -ENOMEM; - - get_page(page); - pages[n] = page; - } - rc = page_count; - } else { - struct kvec *kiov; - - kiov = kcalloc(page_count, sizeof(*kiov), GFP_KERNEL); - if (!kiov) - return -ENOMEM; + if (WARN_ON_ONCE(is_vmalloc_addr((void *)start))) + return -EINVAL; - for (n = 0; n < page_count; n++) { - kiov[n].iov_base = (void *)(start + n * PAGE_SIZE); - kiov[n].iov_len = PAGE_SIZE; - } + kiov = kcalloc(page_count, sizeof(*kiov), GFP_KERNEL); + if (!kiov) + return -ENOMEM; - rc = get_kernel_pages(kiov, page_count, 0, pages); - kfree(kiov); + for (n = 0; n < page_count; n++) { + kiov[n].iov_base = (void *)(start + n * PAGE_SIZE); + kiov[n].iov_len = PAGE_SIZE; } + rc = get_kernel_pages(kiov, page_count, 0, pages); + kfree(kiov); + return rc; } -- 2.39.1