x86/boot: Grab kernel_info offset from zoffset header directly
authorArd Biesheuvel <ardb@kernel.org>
Fri, 15 Sep 2023 17:16:25 +0000 (17:16 +0000)
committerIngo Molnar <mingo@kernel.org>
Sun, 17 Sep 2023 17:48:42 +0000 (19:48 +0200)
Instead of parsing zoffset.h and poking the kernel_info offset value
into the header from the build tool, just grab the value directly in the
asm file that describes this header.

This change has no impact on the resulting bzImage binary.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20230915171623.655440-11-ardb@google.com
arch/x86/boot/header.S
arch/x86/boot/tools/build.c

index 6059f87b159d0e14d64f61875570a9dd1730e0d6..5575d0f06bab19189f003c00425c2067db40f733 100644 (file)
@@ -526,7 +526,7 @@ pref_address:               .quad LOAD_PHYSICAL_ADDR        # preferred load addr
 
 init_size:             .long INIT_SIZE         # kernel initialization size
 handover_offset:       .long 0                 # Filled in by build.c
-kernel_info_offset:    .long 0                 # Filled in by build.c
+kernel_info_offset:    .long ZO_kernel_info
 
 # End of setup header #####################################################
 
index 10b0207a6b1895e3bd884f57cabe196895be85c6..14ef13fe7ab021e7a5f47b75cd9f3ec7864d150c 100644 (file)
@@ -59,7 +59,6 @@ static unsigned long efi32_stub_entry;
 static unsigned long efi64_stub_entry;
 static unsigned long efi_pe_entry;
 static unsigned long efi32_pe_entry;
-static unsigned long kernel_info;
 static unsigned long _end;
 
 /*----------------------------------------------------------------------*/
@@ -337,7 +336,6 @@ static void parse_zoffset(char *fname)
                PARSE_ZOFS(p, efi64_stub_entry);
                PARSE_ZOFS(p, efi_pe_entry);
                PARSE_ZOFS(p, efi32_pe_entry);
-               PARSE_ZOFS(p, kernel_info);
                PARSE_ZOFS(p, _end);
 
                p = strchr(p, '\n');
@@ -419,8 +417,6 @@ int main(int argc, char ** argv)
        update_pecoff_text(setup_sectors * 512, i + (sys_size * 16));
 
        efi_stub_entry_update();
-       /* Update kernel_info offset. */
-       put_unaligned_le32(kernel_info, &buf[0x268]);
 
        crc = partial_crc32(buf, i, crc);
        if (fwrite(buf, 1, i, dest) != i)