target/xscale: fix memory leak of register cache
authorAntonio Borneo <borneo.antonio@gmail.com>
Mon, 25 May 2020 08:43:53 +0000 (10:43 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sun, 26 Jul 2020 19:12:34 +0000 (20:12 +0100)
commitdf1dcc27eeb3a42d3dd9708c9518a2230242f746
tree22999fb15ced0d45cfabf1fdb77b1bd6eef971d6
parent580b8f5da015f49b5ca939ed4fd928b8d941944e
target/xscale: fix memory leak of register cache

There is no method to free the register cache, allocated in
xscale_build_reg_cache(), so we get a memory leak.
Issue identified by tracking all calls to arm_build_reg_cache().

Implement the method xscale_deinit_target() that in turn calls the
new xscale_free_reg_cache().
Fix leak of struct xscale.

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

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