On Thu, Sep 4, 2014 at 2:29 PM, Matt Fleming <matt@xxxxxxxxxxxxxxxxx> wrote: > On Thu, 04 Sep, at 01:59:05PM, H. Peter Anvin wrote: >> >> I am fine with this patch, but at the same time I do want to note that >> there is an alternative to double-buffer the patch and/or (if that >> applies to the buggy BIOS) round up the size of the target buffer. > > I'm not sure that rounding up the size of the target buffer will > workaround this issue correctly. > > As far as I know, the only thing that Mantas tried was rounding up the > size of the source file, by padding it. Hi Mantas, Can you try attached patch on top of linus tree? Thanks Yinghai
--- drivers/firmware/efi/libstub/efi-stub-helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: linux-2.6/drivers/firmware/efi/libstub/efi-stub-helper.c =================================================================== --- linux-2.6.orig/drivers/firmware/efi/libstub/efi-stub-helper.c +++ linux-2.6/drivers/firmware/efi/libstub/efi-stub-helper.c @@ -426,7 +426,7 @@ efi_status_t handle_cmdline_files(efi_sy if (size > EFI_READ_CHUNK_SIZE) chunksize = EFI_READ_CHUNK_SIZE; else - chunksize = size; + chunksize = round_up(size, EFI_PAGE_SIZE); status = efi_file_read(files[j].handle, &chunksize,