Re: [PATCH] x86/entry/32: Add missing ASM_CLAC in general_protection entry

From: Brian Gerst
Date: Wed Feb 19 2020 - 15:11:02 EST


On Wed, Feb 19, 2020 at 4:58 AM Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>
> All exception entry points must have ASM_CLAC right at the
> beginning. The general_protection entry is missing one.
>
> Fixes: e59d1b0a2419 ("x86-32, smap: Add STAC/CLAC instructions to 32-bit kernel entry")
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> ---
> arch/x86/entry/entry_32.S | 1 +
> 1 file changed, 1 insertion(+)
>
> --- a/arch/x86/entry/entry_32.S
> +++ b/arch/x86/entry/entry_32.S
> @@ -1681,6 +1681,7 @@ SYM_CODE_START(int3)
> SYM_CODE_END(int3)
>
> SYM_CODE_START(general_protection)
> + ASM_CLAC
> pushl $do_general_protection
> jmp common_exception
> SYM_CODE_END(general_protection)

How about moving ASM_CLAC to common_exception instead? That would
save a few bytes (kernel text + alternatives), and the AC bit has no
effect on kernel stack pushes.

--
Brian Gerst