Messages in this thread | | | Date | Tue, 21 Jul 2015 15:39:45 +0200 | From | Oleg Nesterov <> | Subject | [PATCH v3 00/14] uprobes: longjmp / special-mapping fixes |
| |
Ingo,
This is the changes I asked you to pull. I added v3 tag to avoid the confusion, but the only change is that I added the acks I got.
Currently ret-probes can't work (the application will likely crash) if the probed function does not return, and this is even documented in handle_trampoline(). This tries to make the first step to fix the problem, assuming that the probed functions use the same stack.
Also, xol_add_vma() doesn't use install_special_mapping() correctly, and we can name the xol vma which currently looks like anon mapping.
Oleg Nesterov (14): uprobes: Introduce get_uprobe() uprobes: Introduce free_ret_instance() uprobes: Send SIGILL if handle_trampoline() fails uprobes: Change prepare_uretprobe() to use uprobe_warn() uprobes: Change handle_trampoline() to find the next chain beforehand uprobes: Export struct return_instance, introduce arch_uretprobe_is_alive() uprobes/x86: Reimplement arch_uretprobe_is_alive() uprobes: Change handle_trampoline() to flush the frames invalidated by longjmp() uprobes: Change prepare_uretprobe() to (try to) flush the dead frames uprobes: Add the "enum rp_check ctx" arg to arch_uretprobe_is_alive() uprobes/x86: Make arch_uretprobe_is_alive(RP_CHECK_CALL) more clever uprobes: fix the usage of install_special_mapping() uprobes: use vm_special_mapping to name the xol vma uprobes: fix the waitqueue_active() check in xol_free_insn_slot()
arch/x86/kernel/uprobes.c | 9 ++ include/linux/uprobes.h | 17 ++++ kernel/events/uprobes.c | 228 ++++++++++++++++++++++++++------------------- 3 files changed, 156 insertions(+), 98 deletions(-)
| |