Re: [PATCH -v2] EFI: Runtime services virtual mapping

H. Peter Anvin
2013-09-22T15:28:14Z

The address that faults is interesting in that it is indeed just below -4G. The question at hand is probably what information you are using to build the EFI mappings in the secondary kernel and what could make it not match the primary.

Assuming it isn't as simple as the mappings never get built at all.

Borislav Petkov <bp@alien8.de> wrote:
>On Sun, Sep 22, 2013 at 08:35:15PM +0800, Dave Young wrote:
>> I tested your new patch, it works both with efi stub and grub boot in
>> 1st kernel.
>
>Good, thanks!
>
>> But it paniced in kexec boot with my kexec related patcheset, the
>patchset
>
>That's the second kernel, right?
>
>> contains 3 patch:
>> 1. introduce cmdline kexecboot=<0|1|2>; 1 == kexec, 2 == kdump
>> 2. export physical addr fw_vendor, runtime, tables to
>/sys/firmware/efi/systab
>> 3. if kexecboot != 0, use fw_vendor, runtime, tables from bootparams;
>Also do not
>> call SetVirtualAddressMao in case kexecboot.
>>
>> The panic happens at the last line of efi_init:
>> /* clean DUMMY object */
>> efi.set_variable(efi_dummy_name, &EFI_DUMMY_GUID,
>> EFI_VARIABLE_NON_VOLATILE |
>> EFI_VARIABLE_BOOTSERVICE_ACCESS |
>> EFI_VARIABLE_RUNTIME_ACCESS,
>> 0, NULL);
>>
>> Below is the dmesg:
>> [ 0.003359] pid_max: default: 32768 minimum: 301
>> [ 0.004792] BUG: unable to handle kernel paging request at
>fffffffefde97e70
>> [ 0.006666] IP: [<ffffffff8103a1db>]
>virt_efi_set_variable+0x40/0x54
>> [ 0.006666] PGD 36981067 PUD 35828063 PMD 0
>
>Here it is - fffffffefde97e70 is not mapped in the pagetable, PMD is 0.
>
>Ok, can you upload your patches somewhere and tell me exactly how to
>reproduce this so that I can take a look too?
>
>Thanks.

--
Sent from my mobile phone. Please pardon brevity and lack of formatting.