]> git.gag.com Git - fw/openocd/commitdiff
target/arm720t: fix memory leak of register cache
authorAntonio Borneo <borneo.antonio@gmail.com>
Mon, 25 May 2020 09:19:07 +0000 (11:19 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sun, 26 Jul 2020 19:12:56 +0000 (20:12 +0100)
There is no method to free the register cache, allocated in
arm720t_init_target().
Issue identified by tracking all calls to arm7tdmi_init_target().

Implement the method arm720t_deinit_target() by calling directly
arm7tdmi_deinit_target().

NOT TESTED on a real arm720t target.
Tested on a arm926ejs (SPEAr320) by hacking the target type and
pretending it is a xscale:
sed -i s/arm926ejs/arm720t/ tcl/target/spear3xx.cfg

Change-Id: I53c1f46c1a355a710e8df01468b19220671569dc
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/5697
Tested-by: jenkins
src/target/arm720t.c

index abe5f1cea0bf03e9e6108dbfaf4bed3176b087bb..e04cab2e7972ba24aa54d8137061b707fe7e7ce4 100644 (file)
@@ -391,6 +391,11 @@ static int arm720t_init_target(struct command_context *cmd_ctx, struct target *t
        return arm7tdmi_init_target(cmd_ctx, target);
 }
 
+static void arm720t_deinit_target(struct target *target)
+{
+       arm7tdmi_deinit_target(target);
+}
+
 /* FIXME remove forward decls */
 static int arm720t_mrc(struct target *target, int cpnum,
                uint32_t op1, uint32_t op2,
@@ -583,6 +588,7 @@ struct target_type arm720t_target = {
        .commands = arm720t_command_handlers,
        .target_create = arm720t_target_create,
        .init_target = arm720t_init_target,
+       .deinit_target = arm720t_deinit_target,
        .examine = arm7_9_examine,
        .check_reset = arm7_9_check_reset,
 };