Messages in this thread | | | Subject | Re: [PATCH] x86/entry/64: Fix native_load_gs_index() SWAPGS handling with IRQ state tracing enabled | From | Andy Lutomirski <> | Date | Wed, 29 Nov 2017 06:33:37 -0800 |
| |
> On Nov 29, 2017, at 4:47 AM, Peter Zijlstra <peterz@infradead.org> wrote: > >> On Wed, Nov 29, 2017 at 08:09:51AM +0100, Ingo Molnar wrote: >> diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S >> index f81d50d7ceac..c0b52df8ee4f 100644 >> --- a/arch/x86/entry/entry_64.S >> +++ b/arch/x86/entry/entry_64.S >> @@ -945,16 +945,16 @@ idtentry simd_coprocessor_error do_simd_coprocessor_error has_error_code=0 >> */ >> ENTRY(native_load_gs_index) >> FRAME_BEGIN >> + SWAPGS /* switch from user GS to kernel GS */ >> pushfq >> DISABLE_INTERRUPTS(CLBR_ANY & ~CLBR_RDI) >> TRACE_IRQS_OFF >> - SWAPGS > > I'm thinking those moves it too far back; we should at least have > interrupts disabled when we do SWAPGS, no? Also, curse paravirt. >
I'll look in a few hours.
But we definitely can't have irqs on when running with user gs.
| |