Damien Zammit via Bug reports for the GNU Hurd, le lun. 09 déc. 2024 12:17:37 
+0000, a ecrit:
> To make selectors work reliably, we need to
> write zero to it before writing its final value.

$PERCPU_DS is different from $KERNEL_DS, so we don't need to switch
through 0.

> ---
>  i386/i386/cpuboot.S | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/i386/i386/cpuboot.S b/i386/i386/cpuboot.S
> index 09855864..f549a2bc 100644
> --- a/i386/i386/cpuboot.S
> +++ b/i386/i386/cpuboot.S
> @@ -182,6 +182,8 @@ apboot_jmp_offset:
>       shr     $8, %ax
>       movb    %al, apboot_percpu_high
>  
> +     xorl    %ebx, %ebx
> +     movw    %bx, %gs
>       movw    $PERCPU_DS, %ax
>       movw    %ax, %gs

Reply via email to