powerpc/xmon: Add patch_instruction() support for xmon
authorBalbir Singh <bsingharora@gmail.com>
Tue, 27 Jun 2017 07:48:58 +0000 (17:48 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 3 Jul 2017 13:12:19 +0000 (23:12 +1000)
Move from mwrite() to patch_instruction() for xmon for
breakpoint addition and removal.

Signed-off-by: Balbir Singh <bsingharora@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/xmon/xmon.c

index a728e191961330183df1c53d5158e45ab60ba480..08e367e3e8c3128ef6da58b3cd5caa5c511e98b4 100644 (file)
@@ -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