From: Rabin Vincent Date: Wed, 14 Nov 2012 17:27:07 +0000 (+0100) Subject: uprobes: Flush cache after xol write X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=65b6ecc03838fd263cf7fafdfa6cf13012b91d56;p=~shefty%2Frdma-dev.git uprobes: Flush cache after xol write Flush the cache so that the instructions written to the XOL area are visible. Signed-off-by: Rabin Vincent Acked-by: Ananth N Mavinakayanahalli Signed-off-by: Oleg Nesterov --- diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index 39c75cc51ef..5ce99cfd2e6 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -1199,6 +1199,11 @@ static unsigned long xol_get_insn_slot(struct uprobe *uprobe, unsigned long slot vaddr = kmap_atomic(area->page); memcpy(vaddr + offset, uprobe->arch.insn, MAX_UINSN_BYTES); kunmap_atomic(vaddr); + /* + * We probably need flush_icache_user_range() but it needs vma. + * This should work on supported architectures too. + */ + flush_dcache_page(area->page); return current->utask->xol_vaddr; }