linux-mips
[Top] [All Lists]

[PATCH] MIPS: KProbes: Use flush_insn_slot() where possible.

To: linux-mips@linux-mips.org, ralf@linux-mips.org, ananth@in.ibm.com, anil.s.keshavamurthy@intel.com, davem@davemloft.net, masami.hiramatsu.pt@hitachi.com
Subject: [PATCH] MIPS: KProbes: Use flush_insn_slot() where possible.
From: David Daney <ddaney@caviumnetworks.com>
Date: Tue, 3 Aug 2010 14:00:45 -0700
Cc: linux-kernel@vger.kernel.org, hschauhan@nulltrace.org, David Daney <ddaney@caviumnetworks.com>
In-reply-to: <1280859742-26364-4-git-send-email-ddaney@caviumnetworks.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1280859742-26364-4-git-send-email-ddaney@caviumnetworks.com>
Sender: linux-mips-bounce@linux-mips.org
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
---

This is a small cleanup that could either be folded into the original
3/5 or applied in addition to it.

 arch/mips/include/asm/kprobes.h |    1 +
 arch/mips/kernel/kprobes.c      |   11 +++--------
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/arch/mips/include/asm/kprobes.h b/arch/mips/include/asm/kprobes.h
index fe58e08..e6ea4d4 100644
--- a/arch/mips/include/asm/kprobes.h
+++ b/arch/mips/include/asm/kprobes.h
@@ -25,6 +25,7 @@
 #include <linux/ptrace.h>
 #include <linux/types.h>
 
+#include <asm/cacheflush.h>
 #include <asm/kdebug.h>
 #include <asm/inst.h>
 
diff --git a/arch/mips/kernel/kprobes.c b/arch/mips/kernel/kprobes.c
index a74ccd2..ee28683 100644
--- a/arch/mips/kernel/kprobes.c
+++ b/arch/mips/kernel/kprobes.c
@@ -28,7 +28,6 @@
 #include <linux/kdebug.h>
 #include <linux/slab.h>
 
-#include <asm/cacheflush.h>
 #include <asm/ptrace.h>
 #include <asm/break.h>
 #include <asm/inst.h>
@@ -151,18 +150,14 @@ out:
 
 void __kprobes arch_arm_kprobe(struct kprobe *p)
 {
-       *(p->addr) = breakpoint_insn;
-       flush_icache_range((unsigned long)p->addr,
-                          (unsigned long)p->addr +
-                          (MAX_INSN_SIZE * sizeof(kprobe_opcode_t)));
+       *p->addr = breakpoint_insn;
+       flush_insn_slot(p);
 }
 
 void __kprobes arch_disarm_kprobe(struct kprobe *p)
 {
        *p->addr = p->opcode;
-       flush_icache_range((unsigned long)p->addr,
-                          (unsigned long)p->addr +
-                          (MAX_INSN_SIZE * sizeof(kprobe_opcode_t)));
+       flush_insn_slot(p);
 }
 
 void __kprobes arch_remove_kprobe(struct kprobe *p)
-- 
1.7.1.1


<Prev in Thread] Current Thread [Next in Thread>