The cpu_breakpoint_insert function cannot fail, so the error return value isn't actually used. Instead of returning the new breakpoint by reference, return it directly.
Signed-off-by: Richard Henderson <[email protected]> --- include/exec/breakpoint.h | 4 ++-- accel/tcg/tcg-accel-ops.c | 7 ++----- cpu-common.c | 11 +++-------- gdbstub/user.c | 8 ++------ linux-user/main.c | 2 +- target/arm/tcg/debug.c | 2 +- target/i386/tcg/system/bpt_helper.c | 3 +-- target/ppc/cpu.c | 2 +- target/riscv/debug.c | 5 ++--- target/xtensa/dbg_helper.c | 6 +++--- 10 files changed, 18 insertions(+), 32 deletions(-) diff --git a/include/exec/breakpoint.h b/include/exec/breakpoint.h index e0826a1a2d..95aa4f5933 100644 --- a/include/exec/breakpoint.h +++ b/include/exec/breakpoint.h @@ -42,8 +42,8 @@ struct CPUWatchpoint { unsigned id; }; -int cpu_breakpoint_insert(CPUState *cpu, vaddr pc, BreakpointFlags flags, - unsigned id, CPUBreakpoint **breakpoint); +CPUBreakpoint *cpu_breakpoint_insert(CPUState *cpu, vaddr pc, + BreakpointFlags flags, unsigned id); int cpu_breakpoint_remove(CPUState *cpu, vaddr pc, BreakpointFlags flags); void cpu_breakpoint_remove_by_ref(CPUState *cpu, CPUBreakpoint *breakpoint); void cpu_breakpoint_remove_all(CPUState *cpu, BreakpointFlags mask); diff --git a/accel/tcg/tcg-accel-ops.c b/accel/tcg/tcg-accel-ops.c index afac859b8d..644c5b04a2 100644 --- a/accel/tcg/tcg-accel-ops.c +++ b/accel/tcg/tcg-accel-ops.c @@ -137,12 +137,9 @@ static int tcg_insert_gdbstub_breakpoint(CPUState *cs, GdbBreakpointType type, case GDB_BREAKPOINT_SW: case GDB_BREAKPOINT_HW: CPU_FOREACH(cpu) { - err = cpu_breakpoint_insert(cpu, addr, BP_GDB, 0, NULL); - if (err) { - break; - } + cpu_breakpoint_insert(cpu, addr, BP_GDB, 0); } - return err; + return 0; case GDB_WATCHPOINT_WRITE: case GDB_WATCHPOINT_READ: case GDB_WATCHPOINT_ACCESS: diff --git a/cpu-common.c b/cpu-common.c index 0287022de4..fcc9bc77a3 100644 --- a/cpu-common.c +++ b/cpu-common.c @@ -405,8 +405,8 @@ bool cpu_breakpoint_test(CPUState *cpu, vaddr pc, BreakpointFlags mask) } /* Add a breakpoint. */ -int cpu_breakpoint_insert(CPUState *cpu, vaddr pc, BreakpointFlags flags, - unsigned id, CPUBreakpoint **breakpoint) +CPUBreakpoint *cpu_breakpoint_insert(CPUState *cpu, vaddr pc, + BreakpointFlags flags, unsigned id) { CPUBreakpoint *bp; @@ -422,13 +422,8 @@ int cpu_breakpoint_insert(CPUState *cpu, vaddr pc, BreakpointFlags flags, bp->id = id; interval_tree_insert(&bp->itree, &cpu->breakpoints); - - if (breakpoint) { - *breakpoint = bp; - } - trace_breakpoint_insert(cpu->cpu_index, pc, flags); - return 0; + return bp; } /* Remove a specific breakpoint. */ diff --git a/gdbstub/user.c b/gdbstub/user.c index ed0e88d169..f58fcf92a5 100644 --- a/gdbstub/user.c +++ b/gdbstub/user.c @@ -795,18 +795,14 @@ int gdb_breakpoint_insert(CPUState *cs, GdbBreakpointType type, vaddr addr, vaddr len) { CPUState *cpu; - int err = 0; switch (type) { case GDB_BREAKPOINT_SW: case GDB_BREAKPOINT_HW: CPU_FOREACH(cpu) { - err = cpu_breakpoint_insert(cpu, addr, BP_GDB, 0, NULL); - if (err) { - break; - } + cpu_breakpoint_insert(cpu, addr, BP_GDB, 0); } - return err; + return 0; default: /* user-mode doesn't support watchpoints */ return -ENOSYS; diff --git a/linux-user/main.c b/linux-user/main.c index 4372d0b5a6..54d39627f6 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -265,7 +265,7 @@ CPUArchState *cpu_copy(CPUArchState *env) n = interval_tree_iter_next(n, 0, -1)) { CPUBreakpoint *bp = container_of(n, CPUBreakpoint, itree); cpu_breakpoint_insert(new_cpu, bp->itree.start, - bp->flags, bp->id, NULL); + bp->flags, bp->id); } } diff --git a/target/arm/tcg/debug.c b/target/arm/tcg/debug.c index daad2ac440..2c73ca1080 100644 --- a/target/arm/tcg/debug.c +++ b/target/arm/tcg/debug.c @@ -685,7 +685,7 @@ void hw_breakpoint_update(ARMCPU *cpu, int n) return; } - cpu_breakpoint_insert(CPU(cpu), addr, flags, n, &env->cpu_breakpoint[n]); + env->cpu_breakpoint[n] = cpu_breakpoint_insert(CPU(cpu), addr, flags, n); } void hw_breakpoint_update_all(ARMCPU *cpu) diff --git a/target/i386/tcg/system/bpt_helper.c b/target/i386/tcg/system/bpt_helper.c index 662ffbacfc..23f2d05126 100644 --- a/target/i386/tcg/system/bpt_helper.c +++ b/target/i386/tcg/system/bpt_helper.c @@ -62,8 +62,7 @@ static int hw_breakpoint_insert(CPUX86State *env, int index) switch (hw_breakpoint_type(dr7, index)) { case DR7_TYPE_BP_INST: if (hw_breakpoint_enabled(dr7, index)) { - err = cpu_breakpoint_insert(cs, drN, BP_CPU, index, - &env->cpu_breakpoint[index]); + env->cpu_breakpoint[index] = cpu_breakpoint_insert(cs, drN, BP_CPU, index); } break; diff --git a/target/ppc/cpu.c b/target/ppc/cpu.c index 581fa6a575..a25c8ae2f1 100644 --- a/target/ppc/cpu.c +++ b/target/ppc/cpu.c @@ -121,7 +121,7 @@ void ppc_update_ciabr(CPUPPCState *env) } if (priv) { - cpu_breakpoint_insert(cs, ciea, BP_CPU, 0, &env->ciabr_breakpoint); + env->ciabr_breakpoint = cpu_breakpoint_insert(cs, ciea, BP_CPU, 0); } } diff --git a/target/riscv/debug.c b/target/riscv/debug.c index 56ae1e6107..d6bba24c81 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -488,7 +488,7 @@ static void type2_breakpoint_insert(CPURISCVState *env, target_ulong index) } if (ctrl & TYPE2_EXEC) { - cpu_breakpoint_insert(cs, addr, flags, 0, &env->cpu_breakpoint[index]); + env->cpu_breakpoint[index] = cpu_breakpoint_insert(cs, addr, flags, 0); } if (ctrl & TYPE2_LOAD) { @@ -613,8 +613,7 @@ static void type6_breakpoint_insert(CPURISCVState *env, target_ulong index) } if (ctrl & TYPE6_EXEC) { - cpu_breakpoint_insert(cs, addr, flags, index, - &env->cpu_breakpoint[index]); + env->cpu_breakpoint[index] = cpu_breakpoint_insert(cs, addr, flags, index); } if (ctrl & TYPE6_LOAD) { diff --git a/target/xtensa/dbg_helper.c b/target/xtensa/dbg_helper.c index b08bd03435..9df0c519b3 100644 --- a/target/xtensa/dbg_helper.c +++ b/target/xtensa/dbg_helper.c @@ -42,8 +42,8 @@ void HELPER(wsr_ibreakenable)(CPUXtensaState *env, uint32_t v) for (i = 0; i < env->config->nibreak; ++i) { if (change & (1 << i)) { if (v & (1 << i)) { - cpu_breakpoint_insert(cs, env->sregs[IBREAKA + i], - BP_CPU, i, &env->cpu_breakpoint[i]); + env->cpu_breakpoint[i] = + cpu_breakpoint_insert(cs, env->sregs[IBREAKA + i], BP_CPU, i); } else { cpu_breakpoint_remove_by_ref(cs, env->cpu_breakpoint[i]); env->cpu_breakpoint[i] = NULL; @@ -59,7 +59,7 @@ void HELPER(wsr_ibreaka)(CPUXtensaState *env, uint32_t i, uint32_t v) CPUState *cs = env_cpu(env); cpu_breakpoint_remove_by_ref(cs, env->cpu_breakpoint[i]); - cpu_breakpoint_insert(cs, v, BP_CPU, i, &env->cpu_breakpoint[i]); + env->cpu_breakpoint[i] = cpu_breakpoint_insert(cs, v, BP_CPU, i); } env->sregs[IBREAKA + i] = v; } -- 2.43.0
