kexec regression since 4.9 caused by efi

Omar Sandoval osandov at osandov.com
Thu Mar 9 01:54:08 PST 2017


On Thu, Mar 09, 2017 at 02:38:06PM +0800, Dave Young wrote:
> Add efi/kexec list.
> 
> On 03/08/17 at 12:16pm, Omar Sandoval wrote:

[snip]

> I have no more clue yet from your provided log, but the runtime value is
> odd to me. It is set in below code:
> 
> arch/x86/platform/efi/efi.c: efi_systab_init()
> 	efi_systab.runtime = data ?
> 			     (void *)(unsigned long)data->runtime :
> 			     (void *)(unsigne long)systab64->runtime;
> 
> Here data is the setup_data passed by kexec-tools from normal kernel to
> kexec kernel, efi_setup_data structure is like below: 
> struct efi_setup_data {
>         u64 fw_vendor;
>         u64 runtime;
>         u64 tables;
>         u64 smbios;
>         u64 reserved[8];
> };
> 
> kexec-tools get the runtime address from /sys/firmware/efi/runtime
> 
> So can you do some debuggin on your side, eg. see the sysfs runtime
> value is correct or not. And add some printk in efi init path etc.

The attached patch fixes this for me.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-efi-adjust-virt_addr-when-splitting-descriptors-in-e.patch
Type: text/x-diff
Size: 2223 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/kexec/attachments/20170309/3dfd0b3f/attachment.bin>


More information about the kexec mailing list