From: Andy Lutomirski <luto@amacapital.net> To: x86@kernel.org, linux-kernel@vger.kernel.org Cc: Borislav Petkov <bp@alien8.de>, Oleg Nesterov <oleg@redhat.com>, Denys Vlasenko <dvlasenk@redhat.com>, Andy Lutomirski <luto@amacapital.net> Subject: [PATCH 2/3] x86: Unify and fix init sp0 Date: Tue, 10 Mar 2015 11:05:59 -0700 [thread overview] Message-ID: <1b810c1d2e797e27bb4a7708c426101161edd1f6.1426009661.git.luto@amacapital.net> (raw) In-Reply-To: <cover.1426009661.git.luto@amacapital.net> In-Reply-To: <cover.1426009661.git.luto@amacapital.net> x86_32 and x86_64 need slightly different sp0 values, and x86_32's was incorrect for init. (This never mattered -- the init thread never runs user code, so we never used sp0 for anything.) Fix it and mostly unify them. Signed-off-by: Andy Lutomirski <luto@amacapital.net> --- arch/x86/include/asm/processor.h | 7 +++++-- arch/x86/kernel/process.c | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h index 88d9aa745898..fc6d8d0d8d53 100644 --- a/arch/x86/include/asm/processor.h +++ b/arch/x86/include/asm/processor.h @@ -811,6 +811,9 @@ static inline void spin_lock_prefetch(const void *x) prefetchw(x); } +#define TOP_OF_INIT_STACK ((unsigned long)&init_stack + sizeof(init_stack) - \ + TOP_OF_KERNEL_STACK_PADDING) + #ifdef CONFIG_X86_32 /* * User space process size: 3GB (default). @@ -821,7 +824,7 @@ static inline void spin_lock_prefetch(const void *x) #define STACK_TOP_MAX STACK_TOP #define INIT_THREAD { \ - .sp0 = sizeof(init_stack) + (long)&init_stack, \ + .sp0 = TOP_OF_INIT_STACK, \ .vm86_info = NULL, \ .sysenter_cs = __KERNEL_CS, \ .io_bitmap_ptr = NULL, \ @@ -883,7 +886,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk); #define STACK_TOP_MAX TASK_SIZE_MAX #define INIT_THREAD { \ - .sp0 = (unsigned long)&init_stack + sizeof(init_stack) \ + .sp0 = TOP_OF_INIT_STACK \ } /* diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index f4c0af7fc3a0..12b1cf606ddf 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -39,7 +39,7 @@ */ __visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = { .x86_tss = { - .sp0 = (unsigned long)&init_stack + sizeof(init_stack), + .sp0 = TOP_OF_INIT_STACK, #ifdef CONFIG_X86_32 .ss0 = __KERNEL_DS, .ss1 = __KERNEL_CS, -- 2.3.0
next prev parent reply other threads:[~2015-03-10 18:06 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-03-10 18:05 [PATCH 0/3] sp0, ss1, and sp1 docs and minor fixes Andy Lutomirski 2015-03-10 18:05 ` [PATCH 1/3] x86: Create and use a TOP_OF_KERNEL_STACK_PADDING macro Andy Lutomirski 2015-03-10 19:22 ` Denys Vlasenko 2015-03-10 19:47 ` Andy Lutomirski 2015-03-13 14:08 ` Denys Vlasenko 2015-03-16 8:56 ` Ingo Molnar 2015-03-16 12:08 ` [tip:x86/asm] x86/asm/entry: Create and use a ' TOP_OF_KERNEL_STACK_PADDING' macro tip-bot for Andy Lutomirski 2015-03-17 8:45 ` tip-bot for Andy Lutomirski 2015-03-10 18:05 ` Andy Lutomirski [this message] 2015-03-11 11:21 ` [PATCH 2/3] x86: Unify and fix init sp0 Borislav Petkov 2015-03-16 12:09 ` [tip:x86/asm] x86/asm/entry: Unify and fix initial thread_struct: :sp0 values tip-bot for Andy Lutomirski 2015-03-17 8:45 ` tip-bot for Andy Lutomirski 2015-03-10 18:06 ` [PATCH 3/3] x86_32: Document our abuse of ss1 and sp1 Andy Lutomirski 2015-03-10 19:13 ` Denys Vlasenko 2015-03-10 20:06 ` Andy Lutomirski 2015-03-10 20:52 ` Denys Vlasenko 2015-03-16 12:09 ` [tip:x86/asm] x86/asm/entry/32: Document our abuse of x86_hw_tss: :ss1 and x86_hw_tss::sp1 tip-bot for Andy Lutomirski 2015-03-16 15:36 ` Andy Lutomirski 2015-03-17 8:45 ` tip-bot for Andy Lutomirski
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=1b810c1d2e797e27bb4a7708c426101161edd1f6.1426009661.git.luto@amacapital.net \ --to=luto@amacapital.net \ --cc=bp@alien8.de \ --cc=dvlasenk@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=oleg@redhat.com \ --cc=x86@kernel.org \ --subject='Re: [PATCH 2/3] x86: Unify and fix init sp0' \ /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
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.