target/cortex_m: remove target halted check when removing a breakpoint 87/4887/2
authorTomas Vanek <vanekt@fbl.cz>
Wed, 6 Feb 2019 18:07:15 +0000 (19:07 +0100)
committerMatthias Welwarsky <matthias@welwarsky.de>
Wed, 3 Apr 2019 10:08:51 +0000 (11:08 +0100)
Remove the target halted check from cortex_m_remove_breakpoint()
as there is no such check in cortex_m_set_breakpoint() and bp can be
safely removed from the running target.

While on it return the error code from cortex_m_unset_breakpoint()
to higher level.

Change-Id: I2b358c3661feed84297913e9f589bdf1e4de7e64
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: http://openocd.zylin.com/4887
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
Reviewed-by: Jānis Skujenieks <janis.skujenieks@gmail.com>
Reviewed-by: Christopher Head <chead@zaber.com>
src/target/cortex_m.c

index 8c43016..d341d45 100644 (file)
@@ -1288,16 +1288,10 @@ int cortex_m_add_breakpoint(struct target *target, struct breakpoint *breakpoint
 
 int cortex_m_remove_breakpoint(struct target *target, struct breakpoint *breakpoint)
 {
-       /* REVISIT why check? FPB can be updated with core running ... */
-       if (target->state != TARGET_HALTED) {
-               LOG_WARNING("target not halted");
-               return ERROR_TARGET_NOT_HALTED;
-       }
-
-       if (breakpoint->set)
-               cortex_m_unset_breakpoint(target, breakpoint);
+       if (!breakpoint->set)
+               return ERROR_OK;
 
-       return ERROR_OK;
+       return cortex_m_unset_breakpoint(target, breakpoint);
 }
 
 int cortex_m_set_watchpoint(struct target *target, struct watchpoint *watchpoint)