Re: 2.6.39.1 immediately reboots/resets on EFI system

From: Yinghai Lu
Date: Mon Jun 06 2011 - 20:19:26 EST


On Mon, Jun 6, 2011 at 9:43 AM, Maarten Lankhorst
<m.b.lankhorst@xxxxxxxxx> wrote:
> Hi Jim,
>
> Op 06-06-11 18:11, Jim Bos schreef:
>> On 06/06/2011 05:27 PM, Maarten Lankhorst wrote:
>>> Hi Jim,
>>>
>>> 2011/6/3 Jim Bos <jim876@xxxxxxxxx>:
>>>> On 06/03/2011 03:33 PM, Matthew Garrett wrote:
>>>>> On Fri, Jun 03, 2011 at 03:05:26PM +0200, Jim Bos wrote:
>>>>>> *,
>>>>>>
>>>>>> Just applied 2.6.39.1 but my system: 64-bit SLackware, 8GB RAM, MSI mobo
>>>>>> P67A-C45 bios V1.9. previously happily booting via EFI (nice to see
>>>>>> Linux and the other OS actually NOT overwriting each others boot
>>>>>> loaders!) immediately re-booted just after loading the kernel.
>>>>>>
>>>>>> Not even a single message is making it on the console, almost immediate
>>>>>> system reset.  As I noticed there are several EFI related patches, I
>>>>>> first tried to backout the change to setup.c but that didn't help so
>>>>>> backing out all the efi changes in the 2.6.39.1 patch, i.e. the files:
>>>>>>  - arch/x86/kernel/setup.c
>>>>>>  - arch/x86/platform/efi/efi.c
>>>>>>  - arch/x86/platform/efi/efi_64.c
>>>>>> and sure enough system is booting on 2.6.39.1 with these changes removed.
>>>>> Can you try just reverting
>>>>>
>>>>> "x86, efi: Retain boot service code until after switching to virtual mode"
>>>>>
>>>>> ? You've got 143 boot services/code regions, which is more than I'd
>>>>> tested against, so I'm unsure whether we're overflowing something here.
>>>>>
>>>> That's seems to be the only EFI patch in 2.6.39.1 and I effectively
>>>> removed by =not= applying (skipping) the parts of the 2.6.39.1 patch to
>>>> above 3 files.
>>>> So yes removing "x86, efi: Retain boot service code until after
>>>> switching to virtual mode" indeed fixes the problem for me.
>>> Does manually applying commit 9cd2b07c1 fix things for 2.6.39.1?
>>> commit is: x86, efi: Consolidate EFI nx control
>>>
>>> There will be 1 apply  failure, need to change the call to
>>> early_mapping_set_exec in early_runtime_code_mapping_set_exec to
>>> efi_set_executable.
>>>
>>> ~Maarten
>>>
>> Maarten,
>>
>> Yes that boots, but with the "BUG Bad page state .." as well (so would
>> need you other patch).

that is not right fix.

>>
>> Jim
> So the options are applying that patch + free fix to stable,
> or revert the change. Also looking at the comments of the
> original patch, it seems it was changed because of Yinghai's comments:
>> No, at that point memblock is not used any more. after mm_init()/mem_init()
>> need to use free_bootmem_late() in free_efi_boot_services
>
> But that appears to have been incorrect now, seeing that
> commit 774ea0bcb27f57b removed that transition

free_bootmem_late() mean free early reserved pages (from memblock or
bootmem) after slab is available.


assume EFI in ram is not page-aligned?


Thanks

Yinghai Lu
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/