From patchwork Thu Jul 23 11:02:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Will Deacon X-Patchwork-Id: 11680607 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CDB1D138A for ; Thu, 23 Jul 2020 11:04:09 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A3C6E2080D for ; Thu, 23 Jul 2020 11:04:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="MVRs/vNG"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="pYh+m6c2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A3C6E2080D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=f7d8Z1vhDXyKviA+iYc7mtoq6sWPxPr+y5/p2X8JUl4=; b=MVRs/vNGf5KXIH8sNCnjIalR8 W1SuILfb3evAHnTrosDk8CrecTGlphdouaASvigauMpfHsVeYUYoPBeWBiRqS+s9uJDpKzsKt5hoa vO9M1zP+iWnALpllalOQ7h21Cg1wQOKrHgjUejsOab6dUqNIbhWoXgxjoBaatNqYyGzqX88rZIoE8 cVOeNu+pE563nxXwpXGCoVFjhsgYdrgdvb8d0/QTMGoR61GLV6OXqrMbXpx/mxd6IyjP3lJUhHcxZ t25G5un8btmMRuLGT3hC+2gmLj7aw/mJ7uQsl6mDP0TFPgFN/EOi+VupRZ/6fYuVVkC9lAFZcPW91 LK9kD3NgA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jyZ02-0004bN-4Y; Thu, 23 Jul 2020 11:02:54 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jyYzv-0004Zw-Bb for linux-arm-kernel@lists.infradead.org; Thu, 23 Jul 2020 11:02:48 +0000 Received: from localhost.localdomain (236.31.169.217.in-addr.arpa [217.169.31.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6D68922B43; Thu, 23 Jul 2020 11:02:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595502166; bh=RGohuwH1Kr4sI6kOzVad8F1yLFTUAZVX36aipG0twzA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pYh+m6c2MqBsL80u/3tab/oeksJl05188xJ8l+bDXgogc5nS1A9rRCTUHSNmtF8G/ JYBshQBxqPsoama7Z12LDN/WVplZBpsP8hZQOVMiQ7+ZbST3A7QIz13gfupYaeIfXj G4uPg8sdPgN6Z2qYlz8pXyPc31DTBUn2j07y2fBg= From: Will Deacon To: kvmarm@lists.cs.columbia.edu Subject: [PATCH 1/3] KVM: arm64: Don't free memcache pages in kvm_phys_addr_ioremap() Date: Thu, 23 Jul 2020 12:02:25 +0100 Message-Id: <20200723110227.16001-2-will@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200723110227.16001-1-will@kernel.org> References: <20200723110227.16001-1-will@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200723_070247_508174_06AF6FBD X-CRM114-Status: GOOD ( 11.88 ) X-Spam-Score: -5.2 (-----) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-5.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at https://www.dnswl.org/, high trust [198.145.29.99 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.0 DKIMWL_WL_HIGH DKIMwl.org - Whitelisted High sender X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Will Deacon , suzuki.poulose@arm.com, maz@kernel.org, qperret@google.com, james.morse@arm.com, kernel-team@android.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org kvm_phys_addr_ioremap() unconditionally empties out the memcache pages for the current vCPU on return. This causes subsequent topups to allocate fresh pages and is at odds with the behaviour when mapping memory in user_mem_abort(). Remove the call to mmu_free_memory_cache() from kvm_phys_addr_ioremap(), allowing the cached pages to be used by a later mapping. Cc: Marc Zyngier Cc: Quentin Perret Signed-off-by: Will Deacon --- arch/arm64/kvm/mmu.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index 31058e6e7c2a..9102373a9744 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -1484,19 +1484,17 @@ int kvm_phys_addr_ioremap(struct kvm *kvm, phys_addr_t guest_ipa, kvm_mmu_cache_min_pages(kvm), KVM_NR_MEM_OBJS); if (ret) - goto out; + break; spin_lock(&kvm->mmu_lock); ret = stage2_set_pte(kvm, &cache, addr, &pte, KVM_S2PTE_FLAG_IS_IOMAP); spin_unlock(&kvm->mmu_lock); if (ret) - goto out; + break; pfn++; } -out: - mmu_free_memory_cache(&cache); return ret; } From patchwork Thu Jul 23 11:02:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Will Deacon X-Patchwork-Id: 11680613 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1DDF51709 for ; Thu, 23 Jul 2020 11:04:11 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EBBA52080D for ; Thu, 23 Jul 2020 11:04:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ac7aAYFl"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="XpRtxF1x" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EBBA52080D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=MEdGIYuUeeEd8agy1F+evqwrDsCpb78eKj2tCLc8+zI=; b=ac7aAYFlmGiH2IVonnx1otuNu Qv61aDkne3TuI+S51fmvlWnlxVrXeLU37iFqc5WLZdIQlZmgcFlCe0tlcBYcHIhztcR5yQqltHe+J 3ZGw34DGNOYZNkh3OJHp8DCI/tMJVXIb9ulNQ7UnAVvvcyqvwzKvanvECF99Pk5LiFAaqEBXz0OrB DsNlNBhAk020qIqyPBmWqdin5KRChZzRL0J0vPrMaQFEHdn9zXfY01Mwlq+bI0ECR8EIS+QCB/XFQ 0utRJFd59se7RWcC+Qx34zUP549K5wd9krI1Y7rbw7JsTqe6twDFpywaZaguXpmpVeTvWrZ2XhoU5 qCxhDfwRA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jyZ04-0004bh-4I; Thu, 23 Jul 2020 11:02:56 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jyYzx-0004aT-5h for linux-arm-kernel@lists.infradead.org; Thu, 23 Jul 2020 11:02:50 +0000 Received: from localhost.localdomain (236.31.169.217.in-addr.arpa [217.169.31.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4037A22B47; Thu, 23 Jul 2020 11:02:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595502168; bh=jqcKXwCs4+bR/ZYDvVpNPCJYc6OYESncYiMpQXpiKFE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XpRtxF1xXLnHmsMrKGyN6zPTKY6sVY5CaP52ZjivB9Sq2RX4b2pXEbHFjwE40W1FM O4dPHFz98Rd0vjiwJUxEjDLKsJasg4yyicc3NKfm3cGJpdVeRlIVvSH+xNWiieAg2p JBymImnBGE0uaqLijYIz3+6o1PRvN+uizR4he7d4= From: Will Deacon To: kvmarm@lists.cs.columbia.edu Subject: [PATCH 2/3] KVM: arm64: Simplify mmu_topup_memory_cache() Date: Thu, 23 Jul 2020 12:02:26 +0100 Message-Id: <20200723110227.16001-3-will@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200723110227.16001-1-will@kernel.org> References: <20200723110227.16001-1-will@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200723_070249_344862_59A4620E X-CRM114-Status: GOOD ( 12.41 ) X-Spam-Score: -5.2 (-----) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-5.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at https://www.dnswl.org/, high trust [198.145.29.99 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.0 DKIMWL_WL_HIGH DKIMwl.org - Whitelisted High sender X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Will Deacon , suzuki.poulose@arm.com, maz@kernel.org, qperret@google.com, james.morse@arm.com, kernel-team@android.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org All callers of mmu_topup_memory_cache() pass the same min/max limits. Simplify the code by just passing the 'struct kvm' instead. Cc: Marc Zyngier Cc: Quentin Perret Signed-off-by: Will Deacon --- arch/arm64/kvm/mmu.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index 9102373a9744..e55a28178164 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -124,20 +124,22 @@ static void stage2_dissolve_pud(struct kvm *kvm, phys_addr_t addr, pud_t *pudp) put_page(virt_to_page(pudp)); } -static int mmu_topup_memory_cache(struct kvm_mmu_memory_cache *cache, - int min, int max) +static int mmu_topup_memory_cache(struct kvm *kvm, + struct kvm_mmu_memory_cache *cache) { void *page; - BUG_ON(max > KVM_NR_MEM_OBJS); - if (cache->nobjs >= min) + if (cache->nobjs >= kvm_mmu_cache_min_pages(kvm)) return 0; - while (cache->nobjs < max) { + + while (cache->nobjs < KVM_NR_MEM_OBJS) { page = (void *)__get_free_page(GFP_PGTABLE_USER); if (!page) return -ENOMEM; + cache->objects[cache->nobjs++] = page; } + return 0; } @@ -1480,9 +1482,7 @@ int kvm_phys_addr_ioremap(struct kvm *kvm, phys_addr_t guest_ipa, if (writable) pte = kvm_s2pte_mkwrite(pte); - ret = mmu_topup_memory_cache(&cache, - kvm_mmu_cache_min_pages(kvm), - KVM_NR_MEM_OBJS); + ret = mmu_topup_memory_cache(kvm, &cache); if (ret) break; spin_lock(&kvm->mmu_lock); @@ -1880,8 +1880,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, mmap_read_unlock(current->mm); /* We need minimum second+third level pages */ - ret = mmu_topup_memory_cache(memcache, kvm_mmu_cache_min_pages(kvm), - KVM_NR_MEM_OBJS); + ret = mmu_topup_memory_cache(kvm, memcache); if (ret) return ret; From patchwork Thu Jul 23 11:02:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Will Deacon X-Patchwork-Id: 11680609 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A38C5138C for ; Thu, 23 Jul 2020 11:04:10 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7D7EC2086A for ; Thu, 23 Jul 2020 11:04:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="CratnSKO"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="EgBgnx3P" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7D7EC2086A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=BMBONhjIRfCU/YVRoEm4WQNJ00OjGBZ+DrARhuqY0C4=; b=CratnSKOfPWQhweDu/n2fQupE 7b4P/rK7DnPUhlpiKHoyNqgeC7TyvsQVh242Rg9AxNkNI+rWFoP6PYAUy6q9SyxxRa2ksHyJ4rKzF ax2BmwLzHzleBD6RIR9/InXdJ0UhCpZhAkDD+KbP+OalXipPqDoE1C39pRYA9wKfcMEHHbyLrkU8m DxeKdsrCdt744gn3fclfGYzD3YtsPJW+17wBws63blXT4w0P8zOGLvpV4d/7kj/kqkGZOvcNJ0lUX LF5CTJvBw0d71Gku+mXyvO3e7p0JEtB4neFHkwF6LvxCAboeufJ26tPZAvUmqo4mvbXWVeqG+QS/j 6ine5dn1w==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jyZ06-0004c3-OY; Thu, 23 Jul 2020 11:02:58 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jyYzz-0004av-1e for linux-arm-kernel@lists.infradead.org; Thu, 23 Jul 2020 11:02:52 +0000 Received: from localhost.localdomain (236.31.169.217.in-addr.arpa [217.169.31.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 13B3D22B49; Thu, 23 Jul 2020 11:02:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595502170; bh=vnxV2at0yNF7SZXAp8UJrz+ILyMv6iv9WyDBZVhM+hk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EgBgnx3PFT3fTH5HWivi/a8dDjqSJkwSzjr4JntmtV3LyC3MpkLgsUkJ126QZjxXM wCJAfUaXoDpqshUQzYTpq99AmFMWM62fNGNpTJv/lt3dqw6RBd2De2gKtPfnc5gzo8 w9448Y8BzY3vPKOd+kVZN6Zz4TmHXhiL2jlSX5rs= From: Will Deacon To: kvmarm@lists.cs.columbia.edu Subject: [PATCH 3/3] KVM: arm64: Remove mmu_free_memory_cache() Date: Thu, 23 Jul 2020 12:02:27 +0100 Message-Id: <20200723110227.16001-4-will@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200723110227.16001-1-will@kernel.org> References: <20200723110227.16001-1-will@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200723_070251_392667_D88EDC28 X-CRM114-Status: GOOD ( 10.98 ) X-Spam-Score: -5.2 (-----) X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: Content analysis details: (-5.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at https://www.dnswl.org/, high trust [198.145.29.99 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.0 DKIMWL_WL_HIGH DKIMwl.org - Whitelisted High sender X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Will Deacon , suzuki.poulose@arm.com, maz@kernel.org, qperret@google.com, james.morse@arm.com, kernel-team@android.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org mmu_free_memory_cache() is only called by kvm_mmu_free_memory_caches(), so inline the implementation and get rid of the extra function. Cc: Marc Zyngier Cc: Quentin Perret Signed-off-by: Will Deacon --- arch/arm64/kvm/mmu.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index e55a28178164..df2a8025ec8a 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -143,8 +143,10 @@ static int mmu_topup_memory_cache(struct kvm *kvm, return 0; } -static void mmu_free_memory_cache(struct kvm_mmu_memory_cache *mc) +void kvm_mmu_free_memory_caches(struct kvm_vcpu *vcpu) { + struct kvm_mmu_memory_cache *mc = &vcpu->arch.mmu_page_cache; + while (mc->nobjs) free_page((unsigned long)mc->objects[--mc->nobjs]); } @@ -2302,11 +2304,6 @@ int kvm_test_age_hva(struct kvm *kvm, unsigned long hva) kvm_test_age_hva_handler, NULL); } -void kvm_mmu_free_memory_caches(struct kvm_vcpu *vcpu) -{ - mmu_free_memory_cache(&vcpu->arch.mmu_page_cache); -} - phys_addr_t kvm_mmu_get_httbr(void) { if (__kvm_cpu_uses_extended_idmap())