From: tip-bot for Josh Poimboeuf <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: brgerst@gmail.com, nilayvaish@gmail.com, bp@alien8.de,
linux-kernel@vger.kernel.org, mingo@kernel.org,
torvalds@linux-foundation.org, dvlasenk@redhat.com,
jpoimboe@redhat.com, luto@kernel.org, hpa@zytor.com,
tglx@linutronix.de, peterz@infradead.org
Subject: [tip:x86/asm] x86/boot/64: Use a common function for starting CPUs
Date: Thu, 20 Oct 2016 04:11:12 -0700 [thread overview]
Message-ID: <tip-a9468df5ad48d06e5237fc2b56fb04c52f79c8c4@git.kernel.org> (raw)
In-Reply-To: <1d692ffa62fcb3cc835a5b254e953f2d9bab3549.1474480779.git.jpoimboe@redhat.com>
Commit-ID: a9468df5ad48d06e5237fc2b56fb04c52f79c8c4
Gitweb: http://git.kernel.org/tip/a9468df5ad48d06e5237fc2b56fb04c52f79c8c4
Author: Josh Poimboeuf <jpoimboe@redhat.com>
AuthorDate: Wed, 21 Sep 2016 16:04:04 -0500
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Thu, 20 Oct 2016 09:15:23 +0200
x86/boot/64: Use a common function for starting CPUs
There are two different pieces of code for starting a CPU: start_cpu0()
and the end of secondary_startup_64(). They're identical except for the
stack setup. Combine the common parts into a shared start_cpu()
function.
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Nilay Vaish <nilayvaish@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1d692ffa62fcb3cc835a5b254e953f2d9bab3549.1474480779.git.jpoimboe@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/kernel/head_64.S | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index b4421cc..3631777 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -265,13 +265,17 @@ ENTRY(secondary_startup_64)
movl $MSR_GS_BASE,%ecx
movl initial_gs(%rip),%eax
movl initial_gs+4(%rip),%edx
- wrmsr
+ wrmsr
/* rsi is pointer to real mode structure with interesting info.
pass it to C */
movq %rsi, %rdi
-
- /* Finally jump to run C code and to be on real kernel address
+ jmp start_cpu
+ENDPROC(secondary_startup_64)
+
+ENTRY(start_cpu)
+ /*
+ * Jump to run C code and to be on a real kernel address.
* Since we are running on identity-mapped space we have to jump
* to the full 64bit address, this is only possible as indirect
* jump. In addition we need to ensure %cs is set so we make this
@@ -300,7 +304,7 @@ ENTRY(secondary_startup_64)
pushq $__KERNEL_CS # set correct cs
pushq %rax # target address in negative space
lretq
-ENDPROC(secondary_startup_64)
+ENDPROC(start_cpu)
#include "verify_cpu.S"
@@ -308,15 +312,11 @@ ENDPROC(secondary_startup_64)
/*
* Boot CPU0 entry point. It's called from play_dead(). Everything has been set
* up already except stack. We just set up stack here. Then call
- * start_secondary().
+ * start_secondary() via start_cpu().
*/
ENTRY(start_cpu0)
- movq initial_stack(%rip),%rsp
- movq initial_code(%rip),%rax
- pushq $0 # fake return address to stop unwinder
- pushq $__KERNEL_CS # set correct cs
- pushq %rax # target address in negative space
- lretq
+ movq initial_stack(%rip), %rsp
+ jmp start_cpu
ENDPROC(start_cpu0)
#endif
next prev parent reply other threads:[~2016-10-20 11:12 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-21 21:03 [PATCH v2 0/9] x86/entry/head: standardize the end of the stack Josh Poimboeuf
2016-09-21 21:03 ` [PATCH v2 1/9] x86/entry/head/32: use local labels Josh Poimboeuf
2016-10-20 11:08 ` [tip:x86/asm] x86/entry/32, x86/boot/32: Use " tip-bot for Josh Poimboeuf
2016-09-21 21:04 ` [PATCH v2 2/9] x86/entry/32: rename 'error_code' to 'common_exception' Josh Poimboeuf
2016-10-20 11:08 ` [tip:x86/asm] x86/entry/32: Rename " tip-bot for Josh Poimboeuf
2016-09-21 21:04 ` [PATCH v2 3/9] x86/entry/32: fix the end of the stack for newly forked tasks Josh Poimboeuf
2016-10-20 11:09 ` [tip:x86/asm] x86/entry/32: Fix " tip-bot for Josh Poimboeuf
2016-09-21 21:04 ` [PATCH v2 4/9] x86/head/32: fix the end of the stack for idle tasks Josh Poimboeuf
2016-10-20 11:10 ` [tip:x86/asm] x86/boot/32: Fix " tip-bot for Josh Poimboeuf
2016-09-21 21:04 ` [PATCH v2 5/9] x86/smp: fix initial idle stack location on 32-bit Josh Poimboeuf
2016-10-20 11:10 ` [tip:x86/asm] x86/boot/smp/32: Fix initial idle stack location on 32-bit kernels tip-bot for Josh Poimboeuf
2016-09-21 21:04 ` [PATCH v2 6/9] x86/asm/head: use a common function for starting CPUs Josh Poimboeuf
2016-10-20 11:11 ` tip-bot for Josh Poimboeuf [this message]
2016-09-21 21:04 ` [PATCH v2 7/9] x86/head: put real return address on idle task stack Josh Poimboeuf
2016-10-20 11:11 ` [tip:x86/asm] x86/boot/64: Put a real return address on the " tip-bot for Josh Poimboeuf
2016-09-21 21:04 ` [PATCH v2 8/9] x86/head: fix the end of the stack for idle tasks Josh Poimboeuf
2016-10-20 11:12 ` [tip:x86/asm] x86/boot: Fix " tip-bot for Josh Poimboeuf
2016-09-21 21:04 ` [PATCH v2 9/9] x86: move _stext marker to before head code Josh Poimboeuf
2016-10-20 11:12 ` [tip:x86/asm] x86/boot: Move the _stext marker to before the boot code tip-bot for Josh Poimboeuf
2016-10-18 17:17 ` [PATCH v2 0/9] x86/entry/head: standardize the end of the stack Josh Poimboeuf
2016-10-19 13:20 ` Ingo Molnar
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=tip-a9468df5ad48d06e5237fc2b56fb04c52f79c8c4@git.kernel.org \
--to=tipbot@zytor.com \
--cc=bp@alien8.de \
--cc=brgerst@gmail.com \
--cc=dvlasenk@redhat.com \
--cc=hpa@zytor.com \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@kernel.org \
--cc=nilayvaish@gmail.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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.