[lkml]   [2018]   [Apr]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH v2] efi: Ignore unrealistically large option roms

On 28-04-18 08:40, Ard Biesheuvel wrote:
> Hi Hans,
> On 27 April 2018 at 23:35, Hans de Goede <> wrote:
>> setup_efi_pci() tries to save a copy of each PCI option ROM as this may
>> be necessary for the device driver for the PCI device to have access too.
>> On some systems the efi_pci_io_protocol_64's romimage and romsize fields
>> contain invalid data, which looks a bit like pointers pointing back into
>> other EFI code or data. Interpreting these pointers as romsize leads to
>> a very large value and if we then try to alloc this amount of memory to
>> save a copy the alloc call fails.
>> This leads to a "Failed to alloc mem for rom" error being printed on the
>> EFI console for each PCI device.
>> This commit avoids the printing of these errors, by checking romsize
>> before doing the alloc and if it is larger then 256M silently ignore the
>> ROM fields instead of trying to alloc mem and fail.
> The UEFI spec limits the size of option ROMs to 16 MiB, so I'd prefer
> we use that as the upper bound instead.
> With that changed,
> Reviewed-by: Ard Biesheuvel <>

Thanks for the review, fixed for v3 which I'm about to send.

> or I can take it via the EFI tree if desired.

I've no preference for how this goes upstream. x86 folks, please let
us know if you will take this, or if you would prefer for this to
go upstream through the EFI tree.



 \ /
  Last update: 2018-04-28 22:12    [W:0.074 / U:1.064 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site