lkml.org 
[lkml]   [2014]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: "54b52d87268034859191d671505bb1cfce6bd74d - x86/efi: Build our own EFI services pointer table" breaks boot on thinkpad t440s

* Matt Fleming <matt@console-pimps.org> wrote:

> On Thu, 10 Apr, at 12:43:43PM, Koen Kooi wrote:
> > Hi,
> >
> > After updating from 3.14-rc7 to a recent git the kernel fails to boot on my thinkpad t440s and displays:
> >
> > Failed to get file info size
> > Failed to alloc highmem for files
> >
> > After a morning of running git bisect and rebooting, the bad commit seems to be:
> >
> > 54b52d87268034859191d671505bb1cfce6bd74d - x86/efi: Build our own EFI services pointer table
>
> Thanks for the report. Can you try this patch against Linus' tree?
>
>
> diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
> index 1e6146137f8e..280165524ee4 100644
> --- a/arch/x86/boot/compressed/eboot.c
> +++ b/arch/x86/boot/compressed/eboot.c
> @@ -112,7 +112,7 @@ __file_size64(void *__fh, efi_char16_t *filename_16,
> efi_file_info_t *info;
> efi_status_t status;
> efi_guid_t info_guid = EFI_FILE_INFO_ID;
> - u32 info_sz;
> + u64 info_sz;

Might be prudent to do the same in __file_size32(), instead of
truncating silently, especially is that function too has a u64 output
AFAICS.

Also, while reviewing the file I noticed that there's "u32 fb_base",
which is recovered like:

status = __gop_query64(gop64, &info, &size, &fb_base);

but ->frame_buffer_base is u64. Is it always guaranteed u32?

Thanks,

Ingo


\
 
 \ /
  Last update: 2014-04-11 09:41    [W:0.083 / U:0.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site