[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20210208192109.GH18227@zn.tnic>
Date: Mon, 8 Feb 2021 20:21:09 +0100
From: Borislav Petkov <bp@...en8.de>
To: Lai Jiangshan <jiangshanlai@...il.com>
Cc: linux-kernel@...r.kernel.org,
Lai Jiangshan <laijs@...ux.alibaba.com>,
Andy Lutomirski <luto@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>, x86@...nel.org,
"H. Peter Anvin" <hpa@...or.com>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Peter Zijlstra <peterz@...radead.org>,
Al Viro <viro@...iv.linux.org.uk>,
Vincenzo Frascino <vincenzo.frascino@....com>,
Joerg Roedel <jroedel@...e.de>,
Ricardo Neri <ricardo.neri-calderon@...ux.intel.com>,
Reinette Chatre <reinette.chatre@...el.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Gabriel Krisman Bertazi <krisman@...labora.com>,
Kees Cook <keescook@...omium.org>,
Frederic Weisbecker <frederic@...nel.org>,
Jens Axboe <axboe@...nel.dk>,
Arvind Sankar <nivedita@...m.mit.edu>,
Brian Gerst <brgerst@...il.com>,
Ard Biesheuvel <ardb@...nel.org>,
Andi Kleen <ak@...ux.intel.com>,
Mike Rapoport <rppt@...nel.org>, Mike Hommey <mh@...ndium.org>,
Mark Gross <mgross@...ux.intel.com>,
Fenghua Yu <fenghua.yu@...el.com>,
Tony Luck <tony.luck@...el.com>,
Anthony Steinhauser <asteinhauser@...gle.com>,
Jay Lang <jaytlang@....edu>,
"Chang S. Bae" <chang.seok.bae@...el.com>
Subject: Re: [PATCH V3 2/6] x86_32: use percpu instead of offset-calculation
to get thread.sp0 when SWITCH_TO_KERNEL_STACK
On Thu, Jan 28, 2021 at 12:32:18AM +0800, Lai Jiangshan wrote:
> From: Lai Jiangshan <laijs@...ux.alibaba.com>
>
> TSS_entry2task_stack is used to refer to tss.sp1 which is stored the value
> of thread.sp0.
"... which is a copy of thread.sp0."
>
> At the code where TSS_entry2task_stack is used in SWITCH_TO_KERNEL_STACK,
"TSS_entry2task_stack is used in SWITCH_TO_KERNEL_STACK and CR3 is
already... "
> the CR3 is already kernel CR3 and kernel segments is loaded.
>
> So we can directly use the percpu to get tss.sp1(thread.sp0) instead of
Who's "we"?
> the complex offset-calculation.
>
> Signed-off-by: Lai Jiangshan <laijs@...ux.alibaba.com>
> ---
> arch/x86/entry/entry_32.S | 9 ++-------
> 1 file changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
> index df8c017e6161..3b4d1a63d1f0 100644
> --- a/arch/x86/entry/entry_32.S
> +++ b/arch/x86/entry/entry_32.S
> @@ -465,16 +465,11 @@
> cmpl $SIZEOF_entry_stack, %ecx
> jae .Lend_\@
>
> - /* Load stack pointer into %esi and %edi */
> + /* Load stack pointer into %esi */
> movl %esp, %esi
> - movl %esi, %edi
> -
> - /* Move %edi to the top of the entry stack */
> - andl $(MASK_entry_stack), %edi
> - addl $(SIZEOF_entry_stack), %edi
>
> /* Load top of task-stack into %edi */
> - movl TSS_entry2task_stack(%edi), %edi
> + movl PER_CPU_VAR(cpu_tss_rw + TSS_sp1), %edi
>
> /* Special case - entry from kernel mode via entry stack */
> #ifdef CONFIG_VM86
> --
The change itself looks ok.
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
Powered by blists - more mailing lists