[prev in list] [next in list] [prev in thread] [next in thread] 

List:       hurd-bug
Subject:    Re: [PATCH] x86_64: Change active_threads to use gs like i386
From:       Samuel Thibault <samuel.thibault () gnu ! org>
Date:       2023-09-25 8:20:31
Message-ID: 20230925082031.6eoygz4im3nhscuc () begin
[Download RAW message or body]

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.

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic