From 2f2cdb12c180fcf3760e8eecb3d2c1f4365e4d96 Mon Sep 17 00:00:00 2001 From: Vasiliy Ulyanov Date: Mon, 21 Apr 2014 16:30:49 +0400 Subject: [PATCH] [FIX] race condition with US tramps Add flushing after writing trampoline into userspace Change-Id: I20fafbe019eba7c8dc6369a00e72aeded39e15b7 Signed-off-by: Vasiliy Ulyanov --- uprobe/arch/asm-arm/swap_uprobes.c | 1 + 1 file changed, 1 insertion(+) diff --git a/uprobe/arch/asm-arm/swap_uprobes.c b/uprobe/arch/asm-arm/swap_uprobes.c index 7c72478..e46b4cc 100644 --- a/uprobe/arch/asm-arm/swap_uprobes.c +++ b/uprobe/arch/asm-arm/swap_uprobes.c @@ -771,6 +771,7 @@ static int make_trampoline(struct uprobe *up, struct pt_regs *regs) if (!write_proc_vm_atomic(up->task, (unsigned long)utramp, tramp, UPROBES_TRAMP_LEN * sizeof(*tramp))) panic("failed to write memory %p!\n", utramp); + flush_insns(utramp, UPROBES_TRAMP_LEN * sizeof(*tramp)); p->ainsn.insn = utramp; -- 2.7.4