Move from mwrite() to patch_instruction() for xmon for
breakpoint addition and removal.

Signed-off-by: Balbir Singh <bsinghar...@gmail.com>
---
 arch/powerpc/xmon/xmon.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index a728e19..08e367e 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -53,6 +53,7 @@
 #include <asm/xive.h>
 #include <asm/opal.h>
 #include <asm/firmware.h>
+#include <asm/code-patching.h>
 
 #ifdef CONFIG_PPC64
 #include <asm/hvcall.h>
@@ -837,7 +838,8 @@ static void insert_bpts(void)
                store_inst(&bp->instr[0]);
                if (bp->enabled & BP_CIABR)
                        continue;
-               if (mwrite(bp->address, &bpinstr, 4) != 4) {
+               if (patch_instruction((unsigned int *)bp->address,
+                                                       bpinstr) != 0) {
                        printf("Couldn't write instruction at %lx, "
                               "disabling breakpoint there\n", bp->address);
                        bp->enabled &= ~BP_TRAP;
@@ -874,7 +876,8 @@ static void remove_bpts(void)
                        continue;
                if (mread(bp->address, &instr, 4) == 4
                    && instr == bpinstr
-                   && mwrite(bp->address, &bp->instr, 4) != 4)
+                   && patch_instruction(
+                       (unsigned int *)bp->address, bp->instr[0]) != 0)
                        printf("Couldn't remove breakpoint at %lx\n",
                               bp->address);
                else
-- 
2.9.4

Reply via email to