[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 4/4] x86_64: set user segments as 64-bit if ! USER32
From: |
Samuel Thibault |
Subject: |
Re: [PATCH 4/4] x86_64: set user segments as 64-bit if ! USER32 |
Date: |
Thu, 16 Feb 2023 23:28:17 +0100 |
User-agent: |
NeoMutt/20170609 (1.8.3) |
Applied, thanks!
Luca Dariz, le jeu. 16 févr. 2023 22:33:18 +0100, a ecrit:
> * i386/i386/ldt.c: set the L bit if user-space is 64-bit
> ---
> i386/i386/ldt.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/i386/i386/ldt.c b/i386/i386/ldt.c
> index 70fa24e2..b86a0e3c 100644
> --- a/i386/i386/ldt.c
> +++ b/i386/i386/ldt.c
> @@ -45,6 +45,12 @@ extern
> #endif /* MACH_PV_DESCRIPTORS */
> struct real_descriptor ldt[LDTSZ];
>
> +#if defined(__x86_64__) && ! defined(USER32)
> +#define USER_SEGMENT_SIZEBITS SZ_64
> +#else
> +#define USER_SEGMENT_SIZEBITS SZ_32
> +#endif
> +
> void
> ldt_fill(struct real_descriptor *myldt, struct real_descriptor *mygdt)
> {
> @@ -67,11 +73,11 @@ ldt_fill(struct real_descriptor *myldt, struct
> real_descriptor *mygdt)
> VM_MIN_USER_ADDRESS,
> VM_MAX_USER_ADDRESS-VM_MIN_USER_ADDRESS-4096,
> /* XXX LINEAR_... */
> - ACC_PL_U|ACC_CODE_R, SZ_32);
> + ACC_PL_U|ACC_CODE_R, USER_SEGMENT_SIZEBITS);
> fill_ldt_descriptor(myldt, USER_DS,
> VM_MIN_USER_ADDRESS,
> VM_MAX_USER_ADDRESS-VM_MIN_USER_ADDRESS-4096,
> - ACC_PL_U|ACC_DATA_W, SZ_32);
> + ACC_PL_U|ACC_DATA_W, USER_SEGMENT_SIZEBITS);
>
> /* Activate the LDT. */
> #ifdef MACH_PV_DESCRIPTORS
> --
> 2.30.2
>
>
--
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.