From: Matt Fleming <matt@codeblueprint.co.uk>
To: Jiri Slaby <jslaby@suse.cz>
Cc: mingo@redhat.com, tglx@linutronix.de, hpa@zytor.com,
x86@kernel.org, linux-kernel@vger.kernel.org,
David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH 2/5] x86_32: boot, extract efi_pe_entry from startup_32
Date: Mon, 5 Jun 2017 15:20:14 +0100 [thread overview]
Message-ID: <20170605142014.GC3339@codeblueprint.co.uk> (raw)
In-Reply-To: <20170531081243.5709-2-jslaby@suse.cz>
On Wed, 31 May, at 10:12:40AM, Jiri Slaby wrote:
> efi_pe_entry body is somehow squashed into startup_32. In the old days,
> we forced startup_32 to start at offset 0x00 and efi_pe_entry to start
> at 0x10. But this requirement was removed in 99f857db8857 ("x86, build:
> Dynamically find entry points in compressed startup code") long time
> ago.
>
> The way it is now makes the code less readable and illogical. And given
> we can now safely extract the inlined efi_pe_entry body from
> startup_32 into a separate function, we do so and we separate it to two
> functions as they are marked already: efi_pe_entry + efi32_stub_entry.
>
> We also annotate the functions appropriatelly by ENTRY+ENDPROC.
>
> ABI offset is preserved:
> 0000 128 FUNC GLOBAL DEFAULT 6 startup_32
> 0080 60 FUNC GLOBAL DEFAULT 6 efi_pe_entry
> 00bc 68 FUNC GLOBAL DEFAULT 6 efi32_stub_entry
>
> On the top-level, it looked like:
> ENTRY(startup_32)
> #ifdef CONFIG_EFI_STUB ; start of inlined
> jmp preferred_addr
> ENTRY(efi_pe_entry)
> ... ; a lot of assembly (efi_pe_entry)
> ENTRY(efi32_stub_entry)
> ... ; a lot of assembly (efi32_stub_entry)
> leal preferred_addr(%eax), %eax
> jmp *%eax
> preferred_addr:
> #endif ; end of inlined
> ... ; a lot of assembly (startup_32)
> ENDPROC(startup_32)
>
> And it is converted into:
> ENTRY(startup_32)
> ... ; a lot of assembly (startup_32)
> ENDPROC(startup_32)
>
> #ifdef CONFIG_EFI_STUB
> ENTRY(efi_pe_entry)
> ... ; a lot of assembly (efi_pe_entry)
> ENDPROC(efi_pe_entry)
>
> ENTRY(efi32_stub_entry)
> ... ; a lot of assembly (efi32_stub_entry)
> leal startup_32(%eax), %eax
> jmp *%eax
> ENDPROC(efi32_stub_entry)
> #endif
>
> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: <x86@kernel.org>
> Cc: David Woodhouse <dwmw2@infradead.org>
> Cc: Matt Fleming <matt@codeblueprint.co.uk>
> ---
> arch/x86/boot/compressed/head_32.S | 129 ++++++++++++++++++-------------------
> 1 file changed, 64 insertions(+), 65 deletions(-)
Reviewed-by: Matt Fleming <matt@codeblueprint.co.uk>
next prev parent reply other threads:[~2017-06-05 14:20 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-31 8:12 [PATCH 1/5] x86: boot/copy, remove unused functions Jiri Slaby
2017-05-31 8:12 ` [PATCH 2/5] x86_32: boot, extract efi_pe_entry from startup_32 Jiri Slaby
2017-06-05 14:20 ` Matt Fleming [this message]
2017-05-31 8:12 ` [PATCH 3/5] x86_64: boot, extract efi_pe_entry from startup_64 Jiri Slaby
2017-06-05 14:20 ` Matt Fleming
2017-05-31 8:12 ` [PATCH 4/5] x86: math-emu, add ENDPROC to functions Jiri Slaby
2017-05-31 8:12 ` [PATCH 5/5] x86: entry, use ENTRY instead of ALIGN+GLOBAL for stub32_clone Jiri Slaby
2017-06-05 9:14 ` [tip:x86/boot] x86/boot: Remove unused copy_*_gs() functions tip-bot for Jiri Slaby
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170605142014.GC3339@codeblueprint.co.uk \
--to=matt@codeblueprint.co.uk \
--cc=dwmw2@infradead.org \
--cc=hpa@zytor.com \
--cc=jslaby@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.