+++ /dev/null
-From 9fc76127512229b74539276e0e7880beea85c0bf Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 16 Aug 2023 21:05:57 +0200
-Subject: efi/unaccepted: Use ACPI reclaim memory for unaccepted memory table
-
-From: Ard Biesheuvel <ardb@kernel.org>
-
-[ Upstream commit e7761d827e99919c32400056a884e481ef008ec4 ]
-
-Kyril reports that crashkernels fail to work on confidential VMs that
-rely on the unaccepted memory table, and this appears to be caused by
-the fact that it is not considered part of the set of firmware tables
-that the crashkernel needs to map.
-
-This is an oversight, and a result of the use of the EFI_LOADER_DATA
-memory type for this table. The correct memory type to use for any
-firmware table is EFI_ACPI_RECLAIM_MEMORY (including ones created by the
-EFI stub), even though the name suggests that is it specific to ACPI.
-ACPI reclaim means that the memory is used by the firmware to expose
-information to the operating system, but that the memory region has no
-special significance to the firmware itself, and the OS is free to
-reclaim the memory and use it as ordinary memory if it is not interested
-in the contents, or if it has already consumed them. In Linux, this
-memory is never reclaimed, but it is always covered by the kernel direct
-map and generally made accessible as ordinary memory.
-
-On x86, ACPI reclaim memory is translated into E820_ACPI, which the
-kexec logic already recognizes as memory that the crashkernel may need
-to to access, and so it will be mapped and accessible to the booting
-crash kernel.
-
-Fixes: 745e3ed85f71 ("efi/libstub: Implement support for unaccepted memory")
-Reported-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
-Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/firmware/efi/libstub/unaccepted_memory.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/firmware/efi/libstub/unaccepted_memory.c b/drivers/firmware/efi/libstub/unaccepted_memory.c
-index ca61f4733ea58..9a655f30ba47d 100644
---- a/drivers/firmware/efi/libstub/unaccepted_memory.c
-+++ b/drivers/firmware/efi/libstub/unaccepted_memory.c
-@@ -62,7 +62,7 @@ efi_status_t allocate_unaccepted_bitmap(__u32 nr_desc,
- bitmap_size = DIV_ROUND_UP(unaccepted_end - unaccepted_start,
- EFI_UNACCEPTED_UNIT_SIZE * BITS_PER_BYTE);
-
-- status = efi_bs_call(allocate_pool, EFI_LOADER_DATA,
-+ status = efi_bs_call(allocate_pool, EFI_ACPI_RECLAIM_MEMORY,
- sizeof(*unaccepted_table) + bitmap_size,
- (void **)&unaccepted_table);
- if (status != EFI_SUCCESS) {
---
-2.40.1
-