Messages in this thread | | | From | Andy Lutomirski <> | Date | Thu, 24 Oct 2019 09:24:13 -0700 | Subject | Re: [patch V2 08/17] x86/entry: Move syscall irq tracing to C code |
| |
On Wed, Oct 23, 2019 at 2:30 PM Andy Lutomirski <luto@kernel.org> wrote: > > On Wed, Oct 23, 2019 at 5:31 AM Thomas Gleixner <tglx@linutronix.de> 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@kernel.org>
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.
| |