All of lore.kernel.org
 help / color / mirror / Atom feed
* [tip:x86/urgent] x86/efi: Store upper bits of command line buffer address in ext_cmd_line_ptr
@ 2015-05-06  7:33 tip-bot for Roy Franz
  0 siblings, 0 replies; only message in thread
From: tip-bot for Roy Franz @ 2015-05-06  7:33 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: mingo, hpa, matt.fleming, stable, tglx, roy.franz

Commit-ID:  98b228f55014870092c15d7d168fecac69f2f12a
Gitweb:     http://git.kernel.org/tip/98b228f55014870092c15d7d168fecac69f2f12a
Author:     Roy Franz <roy.franz@linaro.org>
AuthorDate: Wed, 15 Apr 2015 16:32:24 -0700
Committer:  Matt Fleming <matt.fleming@intel.com>
CommitDate: Fri, 17 Apr 2015 15:46:32 +0100

x86/efi: Store upper bits of command line buffer address in ext_cmd_line_ptr

Until now, the EFI stub was only setting the 32 bit cmd_line_ptr in
the setup_header structure, so on 64 bit platforms this could be truncated.
This patch adds setting the upper bits of the buffer address in
ext_cmd_line_ptr.  This case was likely never hit, as the allocation
for this buffer is done at the lowest available address.  Only
x86_64 kernels have this problem, as the 1-1 mapping mandated
by EFI ensures that all memory is 32 bit addressable on 32 bit
platforms.  The EFI stub does not support mixed mode, so the
32 bit kernel on 64 bit firmware case does not need to be handled.

Signed-off-by: Roy Franz <roy.franz@linaro.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
---
 arch/x86/boot/compressed/eboot.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
index 92b9a5f..5999980 100644
--- a/arch/x86/boot/compressed/eboot.c
+++ b/arch/x86/boot/compressed/eboot.c
@@ -1110,6 +1110,8 @@ struct boot_params *make_boot_params(struct efi_config *c)
 	if (!cmdline_ptr)
 		goto fail;
 	hdr->cmd_line_ptr = (unsigned long)cmdline_ptr;
+	/* Fill in upper bits of command line address, NOP on 32 bit  */
+	boot_params->ext_cmd_line_ptr = (u64)(unsigned long)cmdline_ptr >> 32;
 
 	hdr->ramdisk_image = 0;
 	hdr->ramdisk_size = 0;

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-05-06  7:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-06  7:33 [tip:x86/urgent] x86/efi: Store upper bits of command line buffer address in ext_cmd_line_ptr tip-bot for Roy Franz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.