]> www.infradead.org Git - users/jedix/linux-maple.git/commit
dtrace: ensure we skip the entire SDT probe point
authorKris Van Hees <kris.van.hees@oracle.com>
Mon, 20 Feb 2017 12:16:48 +0000 (07:16 -0500)
committerKris Van Hees <kris.van.hees@oracle.com>
Sat, 4 Mar 2017 02:08:24 +0000 (21:08 -0500)
commit15a3aac15ccf680381e1ae85ad8d2fe89fb87b1b
treeb020e26868f0346153aa23f8ff2c2cdd14a2f6cd
parent7d928e34aa0e7b310b50ed7a70409017c4e125e4
dtrace: ensure we skip the entire SDT probe point

With the introduction of FBT support, the logic for skipping instructions
(with potential emulation of the skipped instruction) changed.  This change
did not take into account the fact that is-enabled probes on x86_64 use a
3-byte sequence for setting ax to 0, followed by a 2-byte NOP.  The old logic
resulted in failing to skip the setting of ax correctly.

New logic uses the knowledge that all SDT probes on x86_64 are of the same
length (ASM_CALL_SIZE) and therefore we can simply skip that number of bytes
and continue without any emulation.

Orabug: 25557283
Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
Acked-by: Nick Alcock <nick.alcock@oracle.com>
arch/x86/kernel/dtrace_sdt.c
arch/x86/kernel/dtrace_util.c