1. 12 8月, 2014 1 次提交
  2. 06 8月, 2014 1 次提交
    • M
      x86/efi: Enforce CONFIG_RELOCATABLE for EFI boot stub · 7b2a583a
      Matt Fleming 提交于
      Without CONFIG_RELOCATABLE the early boot code will decompress the
      kernel to LOAD_PHYSICAL_ADDR. While this may have been fine in the BIOS
      days, that isn't going to fly with UEFI since parts of the firmware
      code/data may be located at LOAD_PHYSICAL_ADDR.
      
      Straying outside of the bounds of the regions we've explicitly requested
      from the firmware will cause all sorts of trouble. Bruno reports that
      his machine resets while trying to decompress the kernel image.
      
      We already go to great pains to ensure the kernel is loaded into a
      suitably aligned buffer, it's just that the address isn't necessarily
      LOAD_PHYSICAL_ADDR, because we can't guarantee that address isn't in-use
      by the firmware.
      
      Explicitly enforce CONFIG_RELOCATABLE for the EFI boot stub, so that we
      can load the kernel at any address with the correct alignment.
      Reported-by: NBruno Prémont <bonbons@linux-vserver.org>
      Tested-by: NBruno Prémont <bonbons@linux-vserver.org>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      7b2a583a
  3. 05 8月, 2014 1 次提交
  4. 19 7月, 2014 21 次提交
  5. 10 7月, 2014 2 次提交
  6. 08 7月, 2014 7 次提交
  7. 07 7月, 2014 1 次提交
    • A
      efi/arm64: efistub: remove local copy of linux_banner · a55c072d
      Ard Biesheuvel 提交于
      The shared efistub code for ARM and arm64 contains a local copy of
      linux_banner, allowing it to be referenced from separate executables
      such as the ARM decompressor. However, this introduces a dependency on
      generated header files, causing unnecessary rebuilds of the stub itself
      and, in case of arm64, vmlinux which contains it.
      
      On arm64, the copy is not actually needed since we can reference the
      original symbol directly, and as it turns out, there may be better ways
      to deal with this for ARM as well, so let's remove it from the shared
      code. If it still needs to be reintroduced for ARM later, it should live
      under arch/arm anyway and not in shared code.
      Signed-off-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      a55c072d
  8. 27 6月, 2014 1 次提交
  9. 19 6月, 2014 4 次提交
    • C
      efi: Fix compiler warnings (unused, const, type) · 6fb8cc82
      Catalin Marinas 提交于
      This patch fixes a few compiler warning in the efi code for unused
      variable, discarding const qualifier and wrong pointer type:
      
      drivers/firmware/efi/fdt.c|66 col 22| warning: unused variable ‘name’ [-Wunused-variable]
      drivers/firmware/efi/efi.c|368 col 3| warning: passing argument 3 of ‘of_get_flat_dt_prop’ from incompatible pointer type [enabled by default]
      drivers/firmware/efi/efi.c|368 col 8| warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      6fb8cc82
    • Y
      x86/efi: Support initrd loaded above 4G · 4bf7111f
      Yinghai Lu 提交于
      For boot efi kernel directly without bootloader.
      If the kernel support XLF_CAN_BE_LOADED_ABOVE_4G, we should
      not limit initrd under hdr->initrd_add_max.
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      4bf7111f
    • M
      x86/efi: Use early_memunmap() to squelch sparse errors · 98a716b6
      Matt Fleming 提交于
      The kbuild reports the following sparse errors,
      
      >> arch/x86/platform/efi/quirks.c:242:23: sparse: incorrect type in >> argument 1 (different address spaces)
         arch/x86/platform/efi/quirks.c:242:23:    expected void [noderef] <asn:2>*addr
         arch/x86/platform/efi/quirks.c:242:23:    got void *[assigned] tablep
      >> arch/x86/platform/efi/quirks.c:245:23: sparse: incorrect type in >> argument 1 (different address spaces)
         arch/x86/platform/efi/quirks.c:245:23:    expected void [noderef] <asn:2>*addr
         arch/x86/platform/efi/quirks.c:245:23:    got struct efi_setup_data *[assigned] data
      
      Dave Young had made previous attempts to convert the early_iounmap()
      calls to early_memunmap() but ran into merge conflicts with commit
      9e5c33d7 ("mm: create generic early_ioremap() support").
      
      Now that we've got that commit in place we can switch to using
      early_memunmap() since we're already using early_memremap() in
      efi_reuse_config().
      
      Cc: Dave Young <dyoung@redhat.com>
      Cc: Saurabh Tangri <saurabh.tangri@intel.com>
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      98a716b6
    • S
      x86/efi: Move all workarounds to a separate file quirks.c · eeb9db09
      Saurabh Tangri 提交于
      Currently, it's difficult to find all the workarounds that are
      applied when running on EFI, because they're littered throughout
      various code paths. This change moves all of them into a separate
      file with the hope that it will be come the single location for all
      our well documented quirks.
      Signed-off-by: NSaurabh Tangri <saurabh.tangri@intel.com>
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      eeb9db09
  10. 16 6月, 2014 1 次提交