]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86/efistub: Fix PCI ROM preservation in mixed mode
authorMikel Rychliski <mikel@mikelr.com>
Wed, 23 Aug 2023 21:51:58 +0000 (17:51 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Sep 2023 07:47:59 +0000 (09:47 +0200)
[ Upstream commit 8b94da92559f7e403dc7ab81937cc50f949ee2fd ]

preserve_pci_rom_image() was accessing the romsize field in
efi_pci_io_protocol_t directly instead of using the efi_table_attr()
helper. This prevents the ROM image from being saved correctly during a
mixed mode boot.

Fixes: 2c3625cb9fa2 ("efi/x86: Fold __setup_efi_pci32() and __setup_efi_pci64() into one function")
Signed-off-by: Mikel Rychliski <mikel@mikelr.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/firmware/efi/libstub/x86-stub.c

index a0bfd31358ba97b1ac8b604c98b1981b19364ee2..9ae0d6d0c285f8549703f485852198acfe0e2d47 100644 (file)
@@ -61,7 +61,7 @@ preserve_pci_rom_image(efi_pci_io_protocol_t *pci, struct pci_setup_rom **__rom)
        rom->data.type  = SETUP_PCI;
        rom->data.len   = size - sizeof(struct setup_data);
        rom->data.next  = 0;
-       rom->pcilen     = pci->romsize;
+       rom->pcilen     = romsize;
        *__rom = rom;
 
        status = efi_call_proto(pci, pci.read, EfiPciIoWidthUint16,