Re: [PATCH] x86/efistub: Fix PCI ROM preservation in mixed mode

From: Ard Biesheuvel
Date: Thu Aug 24 2023 - 05:37:26 EST


On Wed, 23 Aug 2023 at 23:53, Mikel Rychliski <mikel@xxxxxxxxxx> wrote:
>
> 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@xxxxxxxxxx>

Thanks, I've queued this up as a fix.


> ---
> drivers/firmware/efi/libstub/x86-stub.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/firmware/efi/libstub/x86-stub.c b/drivers/firmware/efi/libstub/x86-stub.c
> index e976288728e9..2fee52ed335d 100644
> --- a/drivers/firmware/efi/libstub/x86-stub.c
> +++ b/drivers/firmware/efi/libstub/x86-stub.c
> @@ -72,7 +72,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,
> --
> 2.35.3
>