• Matt Fleming's avatar
    Revert "efi/x86: efistub: Move shared dependencies to <asm/efi.h>" · 84be8805
    Matt Fleming authored
    This reverts commit f23cf8bd ("efi/x86: efistub: Move shared
    dependencies to <asm/efi.h>") as well as the x86 parts of commit
    f4f75ad5 ("efi: efistub: Convert into static library").
    
    The road leading to these two reverts is long and winding.
    
    The above two commits were merged during the v3.17 merge window and
    turned the common EFI boot stub code into a static library. This
    necessitated making some symbols global in the x86 boot stub which
    introduced new entries into the early boot GOT.
    
    The problem was that we weren't fixing up the newly created GOT entries
    before invoking the EFI boot stub, which sometimes resulted in hangs or
    resets. This failure was reported by Maarten on his Macbook pro.
    
    The proposed fix was commit 9cb0e394 ("x86/efi: Fixup GOT in all
    boot code paths"). However, that caused issues for Linus when booting
    his Sony Vaio Pro 11. It was subsequently reverted in commit
    f3670394.
    
    So that leaves us back with Maarten's Macbook pro not booting.
    
    At this stage in the release cycle the least risky option is to revert
    the x86 EFI boot stub to the pre-merge window code structure where we
    explicitly #include efi-stub-helper.c instead of linking with the static
    library. The arm64 code remains unaffected.
    
    We can take another swing at the x86 parts for v3.18.
    
    Conflicts:
    	arch/x86/include/asm/efi.h
    Tested-by: default avatarJosh Boyer <jwboyer@fedoraproject.org>
    Tested-by: default avatarMaarten Lankhorst <maarten.lankhorst@canonical.com>
    Tested-by: Leif Lindholm <leif.lindholm@linaro.org> [arm64]
    Tested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
    Cc: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
    84be8805
eboot.c 36 KB