summaryrefslogtreecommitdiff
path: root/drivers/firmware
diff options
context:
space:
mode:
authorMatt Fleming <matt.fleming@intel.com>2014-09-05 17:52:26 +0400
committerMatt Fleming <matt.fleming@intel.com>2014-09-08 23:52:02 +0400
commit9cb0e394234d244fe5a97e743ec9dd7ddff7e64b (patch)
tree4828f610aab906bd7f4190ac32da0f777271480c /drivers/firmware
parent47226ad4f4cfd1e91ded7f2ec42f83ff1c624663 (diff)
downloadlinux-9cb0e394234d244fe5a97e743ec9dd7ddff7e64b.tar.xz
x86/efi: Fixup GOT in all boot code paths
Maarten reported that his Macbook pro 8.2 stopped booting after commit f23cf8bd5c1f49 ("efi/x86: efistub: Move shared dependencies to <asm/efi.h>"), the main feature of which is changing the visibility of symbol 'efi_early' from local to global. By making 'efi_early' global we end up requiring an entry in the Global Offset Table. Unfortunately, while we do include code to fixup GOT entries in the early boot code, it's only called after we've executed the EFI boot stub. What this amounts to is that references to 'efi_early' in the EFI boot stub don't point to the correct place. Since we've got multiple boot entry points we need to be prepared to fixup the GOT in multiple places, while ensuring that we never do it more than once, otherwise the GOT entries will still point to the wrong place. Reported-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Tested-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'drivers/firmware')
0 files changed, 0 insertions, 0 deletions