cortex_m: dwt_num_comp should be set to zero in cortex_m_dwt_free() 89/2989/3
authorTomas Vanek <vanekt@fbl.cz>
Thu, 1 Oct 2015 17:17:41 +0000 (19:17 +0200)
committerFreddie Chopin <freddie.chopin@gmail.com>
Tue, 3 Nov 2015 22:11:50 +0000 (22:11 +0000)
A segmentation fault in cortex_m_endreset_event() is sometimes raised
with very broken target like Kinetis Kx with erased flash and active WDOG.
Debugging revealed that cortex_m->dwt_num_comp is 4 and
dwt_list is NULL at cortex_m:290

Change-Id: I229c59d6da13d816df513d1dbb19968e4b5951e2
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: http://openocd.zylin.com/2989
Reviewed-by: Thomas Schmid <thomas@rfranging.com>
Tested-by: jenkins
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
src/target/cortex_m.c

index b55de1b..88b226d 100644 (file)
@@ -1865,6 +1865,7 @@ static void cortex_m_dwt_free(struct target *target)
 
        free(cm->dwt_comparator_list);
        cm->dwt_comparator_list = NULL;
+       cm->dwt_num_comp = 0;
 
        if (cache) {
                register_unlink_cache(&target->reg_cache, cache);