lkml.org 
[lkml]   [2019]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 2/3] x86/boot: Introduce the kernel_info.setup_type_max
    Date
    This field contains maximal allowed type for setup_data.

    Now bump the setup_header version in arch/x86/boot/header.S.

    Suggested-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
    Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Reviewed-by: Ross Philipson <ross.philipson@oracle.com>
    ---
    Documentation/x86/boot.rst | 9 ++++++++-
    arch/x86/boot/compressed/kernel_info.S | 5 +++++
    arch/x86/boot/header.S | 2 +-
    arch/x86/include/uapi/asm/bootparam.h | 3 +++
    4 files changed, 17 insertions(+), 2 deletions(-)

    diff --git a/Documentation/x86/boot.rst b/Documentation/x86/boot.rst
    index d5323a39f5e3..4c536bc8816d 100644
    --- a/Documentation/x86/boot.rst
    +++ b/Documentation/x86/boot.rst
    @@ -73,7 +73,7 @@ Protocol 2.14: BURNT BY INCORRECT COMMIT ae7e1238e68f2a472a125673ab506d49158c188
    (x86/boot: Add ACPI RSDP address to setup_header)
    DO NOT USE!!! ASSUME SAME AS 2.13.

    -Protocol 2.15: (Kernel 5.5) Added the kernel_info.
    +Protocol 2.15: (Kernel 5.5) Added the kernel_info and kernel_info.setup_type_max.
    ============= ============================================================

    .. note::
    @@ -976,6 +976,13 @@ Offset/size: 0x0008/4
    This field contains the size of the kernel_info including kernel_info.header
    and kernel_info.kernel_info_var_len_data.

    +============ ==============
    +Field name: setup_type_max
    +Offset/size: 0x0008/4
    +============ ==============
    +
    + This field contains maximal allowed type for setup_data and setup_indirect structs.
    +

    The Image Checksum
    ==================
    diff --git a/arch/x86/boot/compressed/kernel_info.S b/arch/x86/boot/compressed/kernel_info.S
    index 8ea6f6e3feef..f818ee8fba38 100644
    --- a/arch/x86/boot/compressed/kernel_info.S
    +++ b/arch/x86/boot/compressed/kernel_info.S
    @@ -1,5 +1,7 @@
    /* SPDX-License-Identifier: GPL-2.0 */

    +#include <asm/bootparam.h>
    +
    .section ".rodata.kernel_info", "a"

    .global kernel_info
    @@ -12,6 +14,9 @@ kernel_info:
    /* Size total. */
    .long kernel_info_end - kernel_info

    + /* Maximal allowed type for setup_data and setup_indirect structs. */
    + .long SETUP_TYPE_MAX
    +
    kernel_info_var_len_data:
    /* Empty for time being... */
    kernel_info_end:
    diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
    index 22dcecaaa898..97d9b6d6c1af 100644
    --- a/arch/x86/boot/header.S
    +++ b/arch/x86/boot/header.S
    @@ -300,7 +300,7 @@ _start:
    # Part 2 of the header, from the old setup.S

    .ascii "HdrS" # header signature
    - .word 0x020d # header version number (>= 0x0105)
    + .word 0x020f # header version number (>= 0x0105)
    # or else old loadlin-1.5 will fail)
    .globl realmode_swtch
    realmode_swtch: .word 0, 0 # default_switch, SETUPSEG
    diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h
    index a1ebcd7a991c..dbb41128e5a0 100644
    --- a/arch/x86/include/uapi/asm/bootparam.h
    +++ b/arch/x86/include/uapi/asm/bootparam.h
    @@ -11,6 +11,9 @@
    #define SETUP_APPLE_PROPERTIES 5
    #define SETUP_JAILHOUSE 6

    +/* max(SETUP_*) */
    +#define SETUP_TYPE_MAX SETUP_JAILHOUSE
    +
    /* ram_size flags */
    #define RAMDISK_IMAGE_START_MASK 0x07FF
    #define RAMDISK_PROMPT_FLAG 0x8000
    --
    2.11.0
    \
     
     \ /
      Last update: 2019-10-09 12:55    [W:2.956 / U:0.128 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site