Patch "efi/unaccepted: Use ACPI reclaim memory for unaccepted memory table" has been added to the 6.5-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    efi/unaccepted: Use ACPI reclaim memory for unaccepted memory table

to the 6.5-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     efi-unaccepted-use-acpi-reclaim-memory-for-unaccepte.patch
and it can be found in the queue-6.5 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 9fc76127512229b74539276e0e7880beea85c0bf
Author: Ard Biesheuvel <ardb@xxxxxxxxxx>
Date:   Wed Aug 16 21:05:57 2023 +0200

    efi/unaccepted: Use ACPI reclaim memory for unaccepted memory table
    
    [ 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@xxxxxxxxxxxxxxx>
    Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

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) {



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux