On Wed, Oct 23, 2019 at 2:30 PM Andy Lutomirski <luto@xxxxxxxxxx> wrote: > > On Wed, Oct 23, 2019 at 5:31 AM Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: > > > > Interrupt state tracing can be safely done in C code. The few stack > > operations in assembly do not need to be covered. > > > > Remove the now pointless indirection via .Lsyscall_32_done and jump to > > swapgs_restore_regs_and_return_to_usermode directly. > > This doesn't look right. Well, I feel a bit silly. I read this: > > > #define SYSCALL_EXIT_WORK_FLAGS \ > > @@ -279,6 +282,9 @@ static void syscall_slow_exit_work(struc ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ and I applied the diff in my head to the wrong function, and I didn't notice that it didn't really apply there. Oddly, gitweb gets this right: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?h=WIP.core/entry&id=e3158f93138ded84eb44fa97606197f6adcf9366 Looking at the actual code: Acked-by: Andy Lutomirski <luto@xxxxxxxxxx> with one minor caveat: you are making a subtle and mostly irrelevant semantic change: with your patch, user mode will be traced as IRQs on even if a nasty user has used iopl() to turn off interrupts. This is probably a good thing, but I think you should mention it in the changelog. FWIW, the rest of the series looks pretty good, too.