lkml.org 
[lkml]   [2015]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.13.y-ckt 037/122] x86/efi: Store upper bits of command line buffer address in ext_cmd_line_ptr
    Date
    3.13.11-ckt22 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Roy Franz <roy.franz@linaro.org>

    commit 98b228f55014870092c15d7d168fecac69f2f12a upstream.

    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>
    Signed-off-by: Matt Fleming <matt.fleming@intel.com>
    Signed-off-by: Kamal Mostafa <kamal@canonical.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 a7677ba..3f88561 100644
    --- a/arch/x86/boot/compressed/eboot.c
    +++ b/arch/x86/boot/compressed/eboot.c
    @@ -493,6 +493,8 @@ struct boot_params *make_boot_params(void *handle, efi_system_table_t *_table)
    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;
    --
    1.9.1


    \
     
     \ /
      Last update: 2015-06-18 01:21    [W:4.156 / U:0.244 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site