[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v9 13/36] x86/fred: Let ret_from_fork_asm() jmp to fred_exit_user when FRED is enabled
 
- To: linux-doc@xxxxxxxxxxxxxxx,	linux-kernel@xxxxxxxxxxxxxxx,	linux-edac@xxxxxxxxxxxxxxx,	linux-hyperv@xxxxxxxxxxxxxxx,	kvm@xxxxxxxxxxxxxxx,	xen-devel@xxxxxxxxxxxxxxxxxxxx
 
- From: Xin Li <xin3.li@xxxxxxxxx>
 
- Date: Sun, 30 Jul 2023 23:32:54 -0700
 
- Cc: Jonathan Corbet <corbet@xxxxxxx>,	Thomas Gleixner <tglx@xxxxxxxxxxxxx>,	Ingo Molnar <mingo@xxxxxxxxxx>,	Borislav Petkov <bp@xxxxxxxxx>,	Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>,	x86@xxxxxxxxxx,	"H . Peter Anvin" <hpa@xxxxxxxxx>,	Andy Lutomirski <luto@xxxxxxxxxx>,	Oleg Nesterov <oleg@xxxxxxxxxx>,	Tony Luck <tony.luck@xxxxxxxxx>,	"K . Y . Srinivasan" <kys@xxxxxxxxxxxxx>,	Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>,	Wei Liu <wei.liu@xxxxxxxxxx>,	Dexuan Cui <decui@xxxxxxxxxxxxx>,	Paolo Bonzini <pbonzini@xxxxxxxxxx>,	Wanpeng Li <wanpengli@xxxxxxxxxxx>,	Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>,	Sean Christopherson <seanjc@xxxxxxxxxx>,	Peter Zijlstra <peterz@xxxxxxxxxxxxx>,	Juergen Gross <jgross@xxxxxxxx>,	Stefano Stabellini <sstabellini@xxxxxxxxxx>,	Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>,	Josh Poimboeuf <jpoimboe@xxxxxxxxxx>,	"Paul E . McKenney" <paulmck@xxxxxxxxxx>,	Catalin Marinas <catalin.marinas@xxxxxxx>,	Randy Dunlap <rdunlap@xxxxxxxxxxxxx>,	Steven Rostedt <rostedt@xxxxxxxxxxx>,	Kim Phillips <kim.phillips@xxxxxxx>,	Xin Li <xin3.li@xxxxxxxxx>,	Hyeonggon Yoo <42.hyeyoo@xxxxxxxxx>,	"Liam R . Howlett" <Liam.Howlett@xxxxxxxxxx>,	Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>,	"Kirill A . Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>,	Suren Baghdasaryan <surenb@xxxxxxxxxx>,	Pawan Gupta <pawan.kumar.gupta@xxxxxxxxxxxxxxx>,	Jiaxi Chen <jiaxi.chen@xxxxxxxxxxxxxxx>,	Babu Moger <babu.moger@xxxxxxx>,	Jim Mattson <jmattson@xxxxxxxxxx>,	Sandipan Das <sandipan.das@xxxxxxx>,	Lai Jiangshan <jiangshanlai@xxxxxxxxx>,	Hans de Goede <hdegoede@xxxxxxxxxx>,	Reinette Chatre <reinette.chatre@xxxxxxxxx>,	Daniel Sneddon <daniel.sneddon@xxxxxxxxxxxxxxx>,	Breno Leitao <leitao@xxxxxxxxxx>,	Nikunj A Dadhania <nikunj@xxxxxxx>,	Brian Gerst <brgerst@xxxxxxxxx>,	Sami Tolvanen <samitolvanen@xxxxxxxxxx>,	Alexander Potapenko <glider@xxxxxxxxxx>,	Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>,	Arnd Bergmann <arnd@xxxxxxxx>,	"Eric W . Biederman" <ebiederm@xxxxxxxxxxxx>,	Kees Cook <keescook@xxxxxxxxxxxx>,	Masami Hiramatsu <mhiramat@xxxxxxxxxx>,	Masahiro Yamada <masahiroy@xxxxxxxxxx>,	Ze Gao <zegao2021@xxxxxxxxx>,	Fei Li <fei1.li@xxxxxxxxx>,	Conghui <conghui.chen@xxxxxxxxx>,	Ashok Raj <ashok.raj@xxxxxxxxx>,	"Jason A . Donenfeld" <Jason@xxxxxxxxx>,	Mark Rutland <mark.rutland@xxxxxxx>,	Jacob Pan <jacob.jun.pan@xxxxxxxxxxxxxxx>,	Jiapeng Chong <jiapeng.chong@xxxxxxxxxxxxxxxxx>,	Jane Malalane <jane.malalane@xxxxxxxxxx>,	David Woodhouse <dwmw@xxxxxxxxxxxx>,	Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>,	Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>,	Yantengsi <siyanteng@xxxxxxxxxxx>,	Christophe Leroy <christophe.leroy@xxxxxxxxxx>,	Sathvika Vasireddy <sv@xxxxxxxxxxxxx>
 
- Delivery-date: Mon, 31 Jul 2023 07:07:29 +0000
 
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
 
 
 
From: "H. Peter Anvin (Intel)" <hpa@xxxxxxxxx>
Let ret_from_fork_asm() jmp to fred_exit_user when FRED is enabled,
otherwise the existing IDT code is chosen.
Signed-off-by: H. Peter Anvin (Intel) <hpa@xxxxxxxxx>
Tested-by: Shan Kang <shan.kang@xxxxxxxxx>
Signed-off-by: Xin Li <xin3.li@xxxxxxxxx>
---
 arch/x86/entry/entry_64.S | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index 43606de22511..8069151176f2 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -309,7 +309,13 @@ SYM_CODE_START(ret_from_fork_asm)
         * and unwind should work normally.
         */
        UNWIND_HINT_REGS
+
+#ifdef CONFIG_X86_FRED
+       ALTERNATIVE "jmp swapgs_restore_regs_and_return_to_usermode", \
+                   "jmp fred_exit_user", X86_FEATURE_FRED
+#else
        jmp     swapgs_restore_regs_and_return_to_usermode
+#endif
 SYM_CODE_END(ret_from_fork_asm)
 .popsection
 
-- 
2.34.1
 
    
     |