bug-hurd
[Top][All Lists]
Advanced

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

Re: [PATCH 1/5] x86_64: fix stack handling on recursive interrupts for U


From: Samuel Thibault
Subject: Re: [PATCH 1/5] x86_64: fix stack handling on recursive interrupts for USER32
Date: Fri, 4 Aug 2023 23:36:18 +0200
User-agent: NeoMutt/20170609 (1.8.3)

Applied, thanks!

Luca Dariz, le sam. 29 juil. 2023 19:47:49 +0200, a ecrit:
> * x86_64/locore.S: ensure the thread state is filled completely even
>   on recursive interrups. The value of the segment selectors is not
>   very important in this case, but we still need to align the stack to
>   the bottom of i386_interrupt_state.
> ---
>  x86_64/locore.S | 16 +++++++++++-----
>  1 file changed, 11 insertions(+), 5 deletions(-)
> 
> diff --git a/x86_64/locore.S b/x86_64/locore.S
> index 16b0dde5..ac7138b7 100644
> --- a/x86_64/locore.S
> +++ b/x86_64/locore.S
> @@ -752,17 +752,17 @@ ENTRY(all_intrs)
>       pushq   %r11
>       cld                             /* clear direction flag */
>  
> -     movq    %rsp,%rdx               /* on an interrupt stack? */
> -     and     $(~(INTSTACK_SIZE-1)),%rdx
> -     cmpq    %ss:EXT(int_stack_base),%rdx
> -     je      int_from_intstack       /* if not: */
> -
>       movq    %ds,%rdx                        /* save segment registers */
>       pushq   %rdx
>       movq    %es,%rdx
>       pushq   %rdx
>       PUSH_FSGS_ISR
>  
> +     movq    %rsp,%rdx               /* on an interrupt stack? */
> +     and     $(~(INTSTACK_SIZE-1)),%rdx
> +     cmpq    %ss:EXT(int_stack_base),%rdx
> +     je      int_from_intstack       /* if not: */
> +
>       mov     %ss,%dx                 /* switch to kernel segments */
>       mov     %dx,%ds
>       mov     %dx,%es
> @@ -830,6 +830,12 @@ int_from_intstack:
>       jb      stack_overflowed        /* if not: */
>       call    EXT(interrupt)          /* call interrupt routine */
>  _return_to_iret_i:                   /* ( label for kdb_kintr) */
> +     POP_FSGS_ISR
> +     pop     %rdx
> +     mov     %rdx,%es
> +     pop     %rdx
> +     mov     %rdx,%ds
> +
>       pop     %r11
>       pop     %r10
>       pop     %r9
> -- 
> 2.39.2
> 
> 

-- 
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]