bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] x86_64: Change active_threads to use gs like i386


From: Samuel Thibault
Subject: Re: [PATCH] x86_64: Change active_threads to use gs like i386
Date: Mon, 25 Sep 2023 10:20:31 +0200
User-agent: NeoMutt/20170609 (1.8.3)

Applied, thanks!

Damien Zammit, le lun. 25 sept. 2023 00:24:01 +0000, a ecrit:
> ---
>  x86_64/cswitch.S | 2 +-
>  x86_64/locore.S  | 7 +++----
>  2 files changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/x86_64/cswitch.S b/x86_64/cswitch.S
> index 1f2e8e9d..29dae62c 100644
> --- a/x86_64/cswitch.S
> +++ b/x86_64/cswitch.S
> @@ -85,7 +85,7 @@ ENTRY(Switch_context)
>                                               /* point to stack top */
>  
>       CPU_NUMBER(%eax)
> -     movq    %rsi,CX(EXT(active_threads),%rax)       /* new thread is active 
> */
> +     movq    %rsi,MY(ACTIVE_THREAD)          /* new thread is active */
>       movq    %rcx,CX(EXT(active_stacks),%rax)        /* set current stack */
>       movq    %rbx,CX(EXT(kernel_stack),%rax) /* set stack top */
>  
> diff --git a/x86_64/locore.S b/x86_64/locore.S
> index b282da4f..55dc4d27 100644
> --- a/x86_64/locore.S
> +++ b/x86_64/locore.S
> @@ -1186,7 +1186,7 @@ syscall_entry_2:
>   * Check for MACH or emulated system call
>   */
>  syscall_entry_3:
> -     movq    CX(EXT(active_threads),%rdx),%rdx
> +     movq    MY(ACTIVE_THREAD),%rdx
>                                       /* point to current thread */
>       movq    TH_TASK(%rdx),%rdx      /* point to task */
>       movq    TASK_EMUL(%rdx),%rdx    /* get emulation vector */
> @@ -1373,8 +1373,7 @@ ENTRY(syscall64)
>        * save only the callee-preserved status according to the C ABI,
>        * plus RIP and EFLAGS for sysret
>        */
> -     CPU_NUMBER_NO_STACK(%r11)
> -     movq    CX(EXT(active_threads),%r11),%r11 /* point to current thread */
> +     movq    MY(ACTIVE_THREAD),%r11  /* point to current thread */
>       movq    TH_PCB(%r11),%r11               /* point to pcb */
>       addq    $ PCB_ISS,%r11                  /* point to saved state */
>  
> @@ -1471,7 +1470,7 @@ _syscall64_check_for_ast:
>  _syscall64_restore_state:
>       /* Restore thread state and return to user using sysret. */
>       cli     /* block interrupts when using the user stack in kernel space */
> -     movq    CX(EXT(active_threads),%r11),%r11 /* point to current thread */
> +     movq    MY(ACTIVE_THREAD),%r11  /* point to current thread */
>       movq    TH_PCB(%r11),%r11               /* point to pcb */
>       addq    $ PCB_ISS,%r11                  /* point to saved state */
>  
> -- 
> 2.40.1
> 
> 
> 

-- 
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]