From: Ingo Molnar <mingo@kernel.org>
To: Borislav Petkov <bp@alien8.de>
Cc: X86 ML <x86@kernel.org>, LKML <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH 2/2] x86/head_64.S: Pass struct boot_params' virtual address to C
Date: Tue, 7 Mar 2017 10:11:40 +0100 [thread overview]
Message-ID: <20170307091140.GD6946@gmail.com> (raw)
In-Reply-To: <20170304095611.11355-2-bp@alien8.de>
* Borislav Petkov <bp@alien8.de> wrote:
> From: Borislav Petkov <bp@suse.de>
>
> ... so that callees don't have to convert it and can use it directly.
> Simplifies C code a bit. Cleanup comments and formatting in the
> vicinity, while at it.
>
> Also, document what phys_base really is.
>
> No functionality change.
>
> Signed-off-by: Borislav Petkov <bp@suse.de>
> ---
> arch/x86/kernel/head64.c | 8 ++++----
> arch/x86/kernel/head_64.S | 10 +++++++---
> 2 files changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
> index 54a2372f5dbb..17ee20a9b4e4 100644
> --- a/arch/x86/kernel/head64.c
> +++ b/arch/x86/kernel/head64.c
> @@ -118,7 +118,7 @@ static unsigned long get_cmd_line_ptr(void)
>
> static void __init copy_bootdata(char *real_mode_data)
> {
> - char * command_line;
> + char *command_line;
> unsigned long cmd_line_ptr;
>
> memcpy(&boot_params, real_mode_data, sizeof boot_params);
> @@ -130,7 +130,7 @@ static void __init copy_bootdata(char *real_mode_data)
> }
> }
>
> -asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data)
> +asmlinkage __visible void __init x86_64_start_kernel(char *real_mode_data)
> {
> int i;
>
> @@ -163,7 +163,7 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data)
> set_intr_gate(i, early_idt_handler_array[i]);
> load_idt((const struct desc_ptr *)&idt_descr);
>
> - copy_bootdata(__va(real_mode_data));
> + copy_bootdata(real_mode_data);
>
> /*
> * Load microcode early on BSP.
> @@ -180,7 +180,7 @@ void __init x86_64_start_reservations(char *real_mode_data)
> {
> /* version is always not zero if it is copied */
> if (!boot_params.hdr.version)
> - copy_bootdata(__va(real_mode_data));
> + copy_bootdata(real_mode_data);
>
> x86_early_init_platform_quirks();
>
> diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
> index ac9d327d2e42..506de36293bc 100644
> --- a/arch/x86/kernel/head_64.S
> +++ b/arch/x86/kernel/head_64.S
> @@ -266,9 +266,12 @@ ENTRY(secondary_startup_64)
> movl initial_gs+4(%rip),%edx
> wrmsr
>
> - /* rsi is pointer to real mode structure with interesting info.
> - pass it to C */
> - movq %rsi, %rdi
> + /*
> + * %rsi is pointer to real mode struct boot_params with interesting info.
> + * Pass its virtual address to C.
> + */
> + movq $__PAGE_OFFSET_BASE, %rdi
> + addq %rsi, %rdi
The updated comments and other details are fine, but I'm not sure about the __va()
change: the patch essentially open codes __va() in assembly - which would make any
changes to __va() [for whatever reason] more difficult, right?
Right now we don't seem to have a single such line of assembly, so changes to
__va() can be done in C alone.
Thanks,
Ingo
next prev parent reply other threads:[~2017-03-07 9:12 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-04 9:56 [PATCH 1/2] x86/head_64.S: Rename start_cpu() Borislav Petkov
2017-03-04 9:56 ` [PATCH 2/2] x86/head_64.S: Pass struct boot_params' virtual address to C Borislav Petkov
2017-03-07 9:11 ` Ingo Molnar [this message]
2017-03-07 10:40 ` Borislav Petkov
2017-03-07 9:06 ` [PATCH 1/2] x86/head_64.S: Rename start_cpu() Ingo Molnar
2017-03-07 10:38 ` Borislav Petkov
2017-03-07 12:56 ` Ingo Molnar
2017-03-07 13:01 ` [tip:x86/boot] x86/boot/64: " tip-bot for Borislav Petkov
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=20170307091140.GD6946@gmail.com \
--to=mingo@kernel.org \
--cc=bp@alien8.de \
--cc=linux-kernel@vger.kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).