From: Matthias Welwarsky Date: Fri, 6 Apr 2018 10:38:12 +0000 (+0200) Subject: target: free target SMP list on shutdown X-Git-Tag: v0.11.0-rc1~1143 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=db456e209feaecae53094051f3710fef73418a71;hp=414213a5ead0e34dec7f72748dbd5c721cb92c09 target: free target SMP list on shutdown On SMP targets, the "target smp" command creates a list of targets that belong to the SMP cluster. Free this list when a target gets destroyed on shutdown. For simplicity, the complete list is free'd as soon as the first target of the SMP cluster is destroyed instead of individually removing targets from the list. Change-Id: Ie217ae1efb2e819c288ff3b1155aeaf0a19b06be Signed-off-by: Matthias Welwarsky Reviewed-on: http://openocd.zylin.com/4481 Tested-by: jenkins Reviewed-by: Tomas Vanek --- diff --git a/src/target/target.c b/src/target/target.c index ac2e1d030a..729a31bf59 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -1910,6 +1910,18 @@ static void target_destroy(struct target *target) free(target->working_areas); } + /* release the targets SMP list */ + if (target->smp) { + struct target_list *head = target->head; + while (head != NULL) { + struct target_list *pos = head->next; + head->target->smp = 0; + free(head); + head = pos; + } + target->smp = 0; + } + free(target->type); free(target->trace_info); free(target->fileio_info);