lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 15 Mar 2024 10:10:06 +0100
From: Ard Biesheuvel <ardb@...nel.org>
To: Wei Yang <richard.weiyang@...il.com>
Cc: tglx@...utronix.de, mingo@...hat.com, bp@...en8.de, x86@...nel.org, 
	linux-kernel@...r.kernel.org, Joerg Roedel <jroedel@...e.de>, 
	Michael Roth <michael.roth@....com>, Brian Gerst <brgerst@...il.com>
Subject: Re: [PATCH] x86/head_64: move parameter close to call function

Hello Richard,

On Fri, 15 Mar 2024 at 05:14, Wei Yang <richard.weiyang@...il.com> wrote:
>
> startup_64_setup_env is first introduced by 'commit 866b556efa12
> ("x86/head/64: Install startup GDT")'. Then 'commit 469693d8f622
> ("x86/head/64: Re-enable stack protection")' insert some code which
> leverage %rdi, which is removed by 'commit 8f6be6d870e8 ("x86/smpboot:
> Remove initial_gs")'.
>
> This left the parameter of startup_64_setup_env a little far away from
> where it is used. Let's move them together for better understanding.
>
> Signed-off-by: Wei Yang <richard.weiyang@...il.com>
> CC: Joerg Roedel <jroedel@...e.de>
> CC: Michael Roth <michael.roth@....com>
> CC: Brian Gerst <brgerst@...il.com>
> CC: Ard Biesheuvel <ardb@...nel.org>
> ---
>  arch/x86/kernel/head_64.S | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>

The code that you are fixing here no longer exists.

If you are going to send patches in the middle of the merge window,
please make sure that you are at least up to date with Linus's tree at
the time you send the patch.


> diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
> index 3dbd05f93859..5fb8bb7cdabe 100644
> --- a/arch/x86/kernel/head_64.S
> +++ b/arch/x86/kernel/head_64.S
> @@ -69,8 +69,6 @@ SYM_CODE_START_NOALIGN(startup_64)
>         /* Set up the stack for verify_cpu() */
>         leaq    (__end_init_task - TOP_OF_KERNEL_STACK_PADDING - PTREGS_SIZE)(%rip), %rsp
>
> -       leaq    _text(%rip), %rdi
> -
>         /* Setup GSBASE to allow stack canary access for C code */
>         movl    $MSR_GS_BASE, %ecx
>         leaq    INIT_PER_CPU_VAR(fixed_percpu_data)(%rip), %rdx
> @@ -78,6 +76,7 @@ SYM_CODE_START_NOALIGN(startup_64)
>         shrq    $32,  %rdx
>         wrmsr
>
> +       leaq    _text(%rip), %rdi
>         call    startup_64_setup_env
>
>         /* Now switch to __KERNEL_CS so IRET works reliably */
> --
> 2.34.1
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ