From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753994AbeAJTce (ORCPT + 1 other); Wed, 10 Jan 2018 14:32:34 -0500 Received: from wtarreau.pck.nerim.net ([62.212.114.60]:39502 "EHLO 1wt.eu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753550AbeAJTca (ORCPT ); Wed, 10 Jan 2018 14:32:30 -0500 From: Willy Tarreau To: linux-kernel@vger.kernel.org, x86@kernel.org Cc: Willy Tarreau , Andy Lutomirski , Borislav Petkov , Brian Gerst , Dave Hansen , Ingo Molnar , Linus Torvalds , Peter Zijlstra , Thomas Gleixner , Josh Poimboeuf , "H. Peter Anvin" , Kees Cook Subject: [RFC PATCH v3 1/8] x86/thread_info: add TIF_DISABLE_PTI_{NOW,NEXT} to disable PTI per task Date: Wed, 10 Jan 2018 20:28:13 +0100 Message-Id: <1515612500-14505-2-git-send-email-w@1wt.eu> X-Mailer: git-send-email 2.8.0.rc2.1.gbe9624a In-Reply-To: <1515612500-14505-1-git-send-email-w@1wt.eu> References: <1515612500-14505-1-git-send-email-w@1wt.eu> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: The first flag indicates that the current task will not use page table isolation. The second indicates that page table isolation must be turned off only after the next execve(). Signed-off-by: Willy Tarreau Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: Ingo Molnar Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Josh Poimboeuf Cc: "H. Peter Anvin" Cc: Kees Cook v3: - switched back to task flags - used two flags to avoid undesired propagation over execve() - more explicitly renamed the flags --- arch/x86/include/asm/thread_info.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h index 0022333..4f248b6 100644 --- a/arch/x86/include/asm/thread_info.h +++ b/arch/x86/include/asm/thread_info.h @@ -127,6 +127,19 @@ struct thread_info { #define _TIF_FSCHECK (1 << TIF_FSCHECK) /* + * The following flags only exist on x86-64. Their equivalent mask will not be + * usable from assembly code due to the presence of '1UL' which doesn't parse + * there. + */ +#ifdef CONFIG_X86_64 +# define TIF_DISABLE_PTI_NOW 32 /* disable PTI for this task */ +# define TIF_DISABLE_PTI_NEXT 33 /* disable PTI after next execve() */ + +# define _TIF_DISABLE_PTI_NOW (1UL << TIF_DISABLE_PTI_NOW) +# define _TIF_DISABLE_PTI_NEXT (1UL << TIF_DISABLE_PTI_NEXT) +#endif + +/* * work to do in syscall_trace_enter(). Also includes TIF_NOHZ for * enter_from_user_mode() */ -- 1.7.12.1