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 6E2F0C7EE26 for ; Sun, 7 May 2023 23:46:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B4C226B0083; Sun, 7 May 2023 19:46:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AE01D6B0081; Sun, 7 May 2023 19:46:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7C8A56B0083; Sun, 7 May 2023 19:46:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 6E6406B0081 for ; Sun, 7 May 2023 19:46:45 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 45313140277 for ; Sun, 7 May 2023 23:46:45 +0000 (UTC) X-FDA: 80765096370.17.1F51D40 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by imf20.hostedemail.com (Postfix) with ESMTP id 2647F1C0004 for ; Sun, 7 May 2023 23:46:42 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=ZCllpkOK; spf=none (imf20.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.126) smtp.mailfrom=kirill.shutemov@linux.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=1683503203; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=5QNweM8SAaqY0llbQtMpYPXKIrYhie9z8hDfHUvFa6Y=; b=a4TJ8tHDi/n+d4Pc91+Zl+NNpCj2js8TdlolvfUyTZXM/a1YJPs9yuxC9gFCkmGA+zAlL7 bLtNj/G8kLKENcyJiSdVcmZ5DhMvLxl2RaAyPAKjFvdzdwJAq/6UrYo5yzuNmyWEvevsA2 c87/aPyq7LsQUAVGYdFNWbX9HC+rtTc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1683503203; a=rsa-sha256; cv=none; b=QEmPooui7yZ7VLbLprIFVHptXpGTxy9AMG55LN4Qdf1aN5nQMZD1G+C+7NsDUEiKfzzAfA NkZkxib49hC7tU/luvfVGHgC1lDi8ui2/LyUp3aoShwuZ1OHRE5BHMWA1+6VPYJtQxj2Hf Lntxy/gb6+nSYgdWy+hwrDB6+ZFYE0Q= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=ZCllpkOK; spf=none (imf20.hostedemail.com: domain of kirill.shutemov@linux.intel.com has no SPF policy when checking 134.134.136.126) smtp.mailfrom=kirill.shutemov@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1683503203; x=1715039203; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ZRWbbgKJS3P7pe8ruC5AYEzSpFJMHJrlR+e2/skszlg=; b=ZCllpkOK2S8ivLaKT+AhNDFGIrNnUU0y5m0zZJ3xaHIIBi5izZJO0Brg GRqirZW0Y5Peu7QWLw34gGxu8iifLk7QYiX38MAvtgAyqEBwOztjEGgBX JE60kesuvncPkCZfAyR+XP//XZnhdJ7e7VutXgo4MQ3y6Xq/DCxjoBQEz K6ds+n4HA6/yjJ+35VxEdBVCo8xxsFkKNRiCa0duK+6qgeqlcy1bnyNad dR9XtiU6b4D3XdNvd9vANQhPmrPQAGV5D4FjuS40X74PZlBROQhrndqLZ daL6lM+yYPtsoIzBqz2eY06AVHSt1MtJ1E1EujrrOzbcsfAKoOsIqn3SX w==; X-IronPort-AV: E=McAfee;i="6600,9927,10703"; a="333953554" X-IronPort-AV: E=Sophos;i="5.99,258,1677571200"; d="scan'208";a="333953554" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 May 2023 16:46:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10703"; a="675852971" X-IronPort-AV: E=Sophos;i="5.99,258,1677571200"; d="scan'208";a="675852971" Received: from dancaspi-mobl1.ger.corp.intel.com (HELO box.shutemov.name) ([10.252.61.73]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 May 2023 16:46:33 -0700 Received: by box.shutemov.name (Postfix, from userid 1000) id 76D6610D48D; Mon, 8 May 2023 02:46:20 +0300 (+03) From: "Kirill A. Shutemov" To: Borislav Petkov , Andy Lutomirski , Dave Hansen , Sean Christopherson , Andrew Morton , Joerg Roedel , Ard Biesheuvel Cc: Andi Kleen , Kuppuswamy Sathyanarayanan , David Rientjes , Vlastimil Babka , Tom Lendacky , Thomas Gleixner , Peter Zijlstra , Paolo Bonzini , Ingo Molnar , Dario Faggioli , Mike Rapoport , David Hildenbrand , Mel Gorman , marcelo.cerri@canonical.com, tim.gardner@canonical.com, khalid.elmously@canonical.com, philip.cox@canonical.com, aarcange@redhat.com, peterx@redhat.com, x86@kernel.org, linux-mm@kvack.org, linux-coco@lists.linux.dev, linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" , Dave Hansen Subject: [PATCHv10 10/11] x86/tdx: Refactor try_accept_one() Date: Mon, 8 May 2023 02:46:17 +0300 Message-Id: <20230507234618.18067-11-kirill.shutemov@linux.intel.com> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20230507234618.18067-1-kirill.shutemov@linux.intel.com> References: <20230507234618.18067-1-kirill.shutemov@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 2647F1C0004 X-Stat-Signature: jy6cza9pb9hru51acqgygdh54cy7mijq X-Rspam-User: X-HE-Tag: 1683503202-764465 X-HE-Meta: U2FsdGVkX1+NTNtKQH7MQbwmz91c6/zq6LqNMzbJbfp28hTREvlokZqoIefcMdILdMVxUiOShFV3LRN/04n/Rhq073B/iva0S52SN3Y93/FDn/0KSVkBj+F6I4X+Sh9zjKA78qLlxn7bl/SA0LVHEoHR3GIisCjW/VyqtJbmobHrtRuqDMlAZct/7uFWe4dCreKeNaAIQoJjK0/tCLmnc3zCrDUDSsQhMtAQ4/b26uL3yw6QZL0V02LZhvt6E2UxcJPCVEaNV559ML0TKCLUGlsDWp8n7VAQ821dIW/4A7qBB6EjU9RsRKXfRT6RAlFCPPYg14vYIX7rUP0fJH8aNzFsscKBxEZ0N48kmKRw/PdSMLAr92GBzIJAdGUMwXf97DU/aPLYv0Mp07SiVqZE978N5Ebr2F7feZkPO0bu8KL6zoPVavC7508XfH7VGtbey6fFWAWjk/ZPYEeFEeM7o5KbpwMjS0DGKNxkHmWK+U03PIfjO5Rv+PPrUpkUsRxgE+fFZTsSbL/Hfl/vsPrbyKJA5G2E5gEpmA8J6DxP5HnsZ1qdPOPGs4XsVU6ViPn+ZSfBK5FKyjnLiu/5Hgpg698MsHdn9EYKc5t8CCEQrSxo3JigyDroW6hFsRusy1p1yWxAx6YfwSFtVnEuTvSiP3chdpETKlUOUE/Ve0nNhkgPJtPMlJF0Shsv2qR6llixU9iaR5WXn8fSnFMCOzXj1i3NayQQCmJkocu6sGLL8c3Zb5Fger+rgB99uffp38O4lZveKSj7+rJwsZlfPmWq9R9lR053XVOTixX4CB2QxVBtX5d4RurbRfjsRg9MKnKNpjRWD5wJl7v6Ylto+FI+dDMnPAvGHNDqIsCHeYqWIq0y1WyxgMLFrSIJCdzI4Q/KoalbEZFblJDGeixGekVawQRwfhQuh7jG04Wc/lrYc0A5k8Ts9MvAfR+InIwpSC1xGMaps9Fwd46xQL+J9eJ pPtCVRsJ VkkBCZLlk0VfGaOAezB0RlpSOmhKVYb2L3fHC9jg5Bgcl1z/qHOlRiuwOLzbw6Tp6T54aKqO8mpFSVcLq/4agI9/zidjKYjyT4PtdsJkGzq4nJ3GqsoZoaElBcEm1zNhRecu0AGJRA+EmGhCe0IyRheoiwuHRiwOWndjJKgDBc7XOinz0kSsYsO+NYQ== 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: Rework try_accept_one() to return accepted size instead of modifying 'start' inside the helper. It makes 'start' in-only argument and streamlines code on the caller side. Signed-off-by: Kirill A. Shutemov Suggested-by: Borislav Petkov Reviewed-by: Dave Hansen --- arch/x86/coco/tdx/tdx.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/arch/x86/coco/tdx/tdx.c b/arch/x86/coco/tdx/tdx.c index e6f4c2758a68..0d5fe6e24e45 100644 --- a/arch/x86/coco/tdx/tdx.c +++ b/arch/x86/coco/tdx/tdx.c @@ -713,18 +713,18 @@ static bool tdx_cache_flush_required(void) return true; } -static bool try_accept_one(phys_addr_t *start, unsigned long len, - enum pg_level pg_level) +static unsigned long try_accept_one(phys_addr_t start, unsigned long len, + enum pg_level pg_level) { unsigned long accept_size = page_level_size(pg_level); u64 tdcall_rcx; u8 page_size; - if (!IS_ALIGNED(*start, accept_size)) - return false; + if (!IS_ALIGNED(start, accept_size)) + return 0; if (len < accept_size) - return false; + return 0; /* * Pass the page physical address to the TDX module to accept the @@ -743,15 +743,14 @@ static bool try_accept_one(phys_addr_t *start, unsigned long len, page_size = 2; break; default: - return false; + return 0; } - tdcall_rcx = *start | page_size; + tdcall_rcx = start | page_size; if (__tdx_module_call(TDX_ACCEPT_PAGE, tdcall_rcx, 0, 0, 0, NULL)) - return false; + return 0; - *start += accept_size; - return true; + return accept_size; } /* @@ -788,21 +787,22 @@ static bool tdx_enc_status_changed(unsigned long vaddr, int numpages, bool enc) */ while (start < end) { unsigned long len = end - start; + unsigned long accept_size; /* * Try larger accepts first. It gives chance to VMM to keep - * 1G/2M SEPT entries where possible and speeds up process by - * cutting number of hypercalls (if successful). + * 1G/2M Secure EPT entries where possible and speeds up + * process by cutting number of hypercalls (if successful). */ - if (try_accept_one(&start, len, PG_LEVEL_1G)) - continue; - - if (try_accept_one(&start, len, PG_LEVEL_2M)) - continue; - - if (!try_accept_one(&start, len, PG_LEVEL_4K)) + accept_size = try_accept_one(start, len, PG_LEVEL_1G); + if (!accept_size) + accept_size = try_accept_one(start, len, PG_LEVEL_2M); + if (!accept_size) + accept_size = try_accept_one(start, len, PG_LEVEL_4K); + if (!accept_size) return false; + start += accept_size; } return true; -- 2.39.3