All of lore.kernel.org
 help / color / mirror / Atom feed
From: "tip-bot2 for Michael Kelley" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: Michael Kelley <mikelley@microsoft.com>,
	"Borislav Petkov (AMD)" <bp@alien8.de>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip: x86/sev] x86/mm: Handle decryption/re-encryption of bss_decrypted consistently
Date: Mon, 27 Mar 2023 20:09:53 -0000	[thread overview]
Message-ID: <167994779300.5837.15408896550338511854.tip-bot2@tip-bot2> (raw)
In-Reply-To: <1678329614-3482-5-git-send-email-mikelley@microsoft.com>

The following commit has been merged into the x86/sev branch of tip:

Commit-ID:     c7b5254bd802ee3868f1c59333545272dc700d6d
Gitweb:        https://git.kernel.org/tip/c7b5254bd802ee3868f1c59333545272dc700d6d
Author:        Michael Kelley <mikelley@microsoft.com>
AuthorDate:    Wed, 08 Mar 2023 18:40:05 -08:00
Committer:     Borislav Petkov (AMD) <bp@alien8.de>
CommitterDate: Mon, 27 Mar 2023 09:23:21 +02:00

x86/mm: Handle decryption/re-encryption of bss_decrypted consistently

sme_postprocess_startup() decrypts the bss_decrypted section when
sme_me_mask is non-zero.

mem_encrypt_free_decrypted_mem() re-encrypts the unused portion based
on CC_ATTR_MEM_ENCRYPT.

In a Hyper-V guest VM using vTOM, these conditions are not equivalent
as sme_me_mask is always zero when using vTOM. Consequently,
mem_encrypt_free_decrypted_mem() attempts to re-encrypt memory that was
never decrypted.

So check sme_me_mask in mem_encrypt_free_decrypted_mem() too.

Hyper-V guests using vTOM don't need the bss_decrypted section to be
decrypted, so skipping the decryption/re-encryption doesn't cause a
problem.

Signed-off-by: Michael Kelley <mikelley@microsoft.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Link: https://lore.kernel.org/r/1678329614-3482-5-git-send-email-mikelley@microsoft.com
---
 arch/x86/mm/mem_encrypt_amd.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/arch/x86/mm/mem_encrypt_amd.c b/arch/x86/mm/mem_encrypt_amd.c
index 9c4d8db..e0b51c0 100644
--- a/arch/x86/mm/mem_encrypt_amd.c
+++ b/arch/x86/mm/mem_encrypt_amd.c
@@ -513,10 +513,14 @@ void __init mem_encrypt_free_decrypted_mem(void)
 	npages = (vaddr_end - vaddr) >> PAGE_SHIFT;
 
 	/*
-	 * The unused memory range was mapped decrypted, change the encryption
-	 * attribute from decrypted to encrypted before freeing it.
+	 * If the unused memory range was mapped decrypted, change the encryption
+	 * attribute from decrypted to encrypted before freeing it. Base the
+	 * re-encryption on the same condition used for the decryption in
+	 * sme_postprocess_startup(). Higher level abstractions, such as
+	 * CC_ATTR_MEM_ENCRYPT, aren't necessarily equivalent in a Hyper-V VM
+	 * using vTOM, where sme_me_mask is always zero.
 	 */
-	if (cc_platform_has(CC_ATTR_MEM_ENCRYPT)) {
+	if (sme_me_mask) {
 		r = set_memory_encrypted(vaddr, npages);
 		if (r) {
 			pr_warn("failed to free unused decrypted pages\n");

  reply	other threads:[~2023-03-27 20:10 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-09  2:40 [PATCH v6 00/13] Add PCI pass-thru support to Hyper-V Confidential VMs Michael Kelley
2023-03-09  2:40 ` [PATCH v6 01/13] x86/ioremap: Add hypervisor callback for private MMIO mapping in coco VM Michael Kelley
2023-03-27 20:09   ` [tip: x86/sev] " tip-bot2 for Michael Kelley
2023-03-09  2:40 ` [PATCH v6 02/13] x86/hyperv: Reorder code to facilitate future work Michael Kelley
2023-03-09  2:40 ` [PATCH v6 03/13] Drivers: hv: Explicitly request decrypted in vmap_pfn() calls Michael Kelley
2023-03-09  2:40 ` [PATCH v6 04/13] x86/mm: Handle decryption/re-encryption of bss_decrypted consistently Michael Kelley
2023-03-27 20:09   ` tip-bot2 for Michael Kelley [this message]
2023-03-09  2:40 ` [PATCH v6 05/13] init: Call mem_encrypt_init() after Hyper-V hypercall init is done Michael Kelley
2023-03-27 20:09   ` [tip: x86/sev] " tip-bot2 for Michael Kelley
2023-03-09  2:40 ` [PATCH v6 06/13] x86/hyperv: Change vTOM handling to use standard coco mechanisms Michael Kelley
2023-03-20 11:22   ` Borislav Petkov
2023-03-20 13:30     ` Michael Kelley (LINUX)
2023-03-20 18:16       ` Borislav Petkov
2023-03-20 18:50         ` Michael Kelley (LINUX)
2023-03-23 13:43           ` Borislav Petkov
2023-03-24 15:48             ` Borislav Petkov
2023-03-24 17:10               ` Dexuan Cui
2023-03-24 17:28                 ` Sathyanarayanan Kuppuswamy
2023-03-24 18:30                 ` Borislav Petkov
2023-03-24 19:36               ` Michael Kelley (LINUX)
2023-03-25  0:04                 ` Michael Kelley (LINUX)
2023-03-09  2:40 ` [PATCH v6 07/13] swiotlb: Remove bounce buffer remapping for Hyper-V Michael Kelley
2023-03-09  2:40 ` [PATCH v6 08/13] Drivers: hv: vmbus: Remove second mapping of VMBus monitor pages Michael Kelley
2023-03-09  2:40 ` [PATCH v6 09/13] Drivers: hv: vmbus: Remove second way of mapping ring buffers Michael Kelley
2023-03-09  2:40 ` [PATCH v6 10/13] hv_netvsc: Remove second mapping of send and recv buffers Michael Kelley
2023-03-09  2:40 ` [PATCH v6 11/13] Drivers: hv: Don't remap addresses that are above shared_gpa_boundary Michael Kelley
2023-03-09  2:40 ` [PATCH v6 12/13] PCI: hv: Add hypercalls to read/write MMIO space Michael Kelley
2023-03-24 14:48   ` Lorenzo Pieralisi
2023-03-24 15:13     ` Michael Kelley (LINUX)
2023-03-24 15:24       ` Lorenzo Pieralisi
2023-03-09  2:40 ` [PATCH v6 13/13] PCI: hv: Enable PCI pass-thru devices in Confidential VMs Michael Kelley
2023-03-20 11:27 ` [PATCH v6 00/13] Add PCI pass-thru support to Hyper-V " Borislav Petkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=167994779300.5837.15408896550338511854.tip-bot2@tip-bot2 \
    --to=tip-bot2@linutronix.de \
    --cc=bp@alien8.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mikelley@microsoft.com \
    --cc=thomas.lendacky@amd.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.