Commit 7fccfcfb authored by Jordan Niethe's avatar Jordan Niethe Committed by Michael Ellerman
Browse files

powerpc/xmon: Move insertion of breakpoint for xol'ing



When a new breakpoint is created, the second instruction of that
breakpoint is patched with a trap instruction. This assumes the length
of the instruction is always the same. In preparation for prefixed
instructions, remove this assumption. Insert the trap instruction at the
same time the first instruction is inserted.

Signed-off-by: default avatarJordan Niethe <jniethe5@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Reviewed-by: default avatarAlistair Popple <alistair@popple.id.au>
Link: https://lore.kernel.org/r/20200506034050.24806-20-jniethe5@gmail.com
parent 6c7a4f0a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -878,7 +878,6 @@ static struct bpt *new_breakpoint(unsigned long a)
		if (!bp->enabled && atomic_read(&bp->ref_count) == 0) {
			bp->address = a;
			bp->instr = (void *)(bpt_table + ((bp - bpts) * BPT_WORDS));
			patch_instruction(bp->instr + 1, ppc_inst(bpinstr));
			return bp;
		}
	}
@@ -910,6 +909,8 @@ static void insert_bpts(void)
			continue;
		}
		patch_instruction(bp->instr, instr);
		patch_instruction((void *)bp->instr + ppc_inst_len(instr),
				  ppc_inst(bpinstr));
		if (bp->enabled & BP_CIABR)
			continue;
		if (patch_instruction((struct ppc_inst *)bp->address,