target: fix unaligned return of target_get_working_area_avail()
authorTomas Vanek <vanekt@fbl.cz>
Sat, 30 Jul 2022 10:15:43 +0000 (12:15 +0200)
committerTomas Vanek <vanekt@fbl.cz>
Mon, 8 Aug 2022 20:51:52 +0000 (20:51 +0000)
commit2aaa991a503dc28b087d81b59531c66931ad74d8
tree53f20b35fedea50ac6dce5fb7e9ae6023e5abfa1
parentd9940cc9bc6745825abbf7d338df0d1f21c58ab8
target: fix unaligned return of target_get_working_area_avail()

The working area allocation routines use 4 byte word alignment.
In the corner case the size of the working area is not aligned,
target_alloc_working_area() of size = target_get_working_area_avail()
will fail because the size gets aligned up and does not fit to the area
which size is aligned down.

Align down the result of target_get_working_area_avail() to cope with that
corner case.

While on it use fancy ALIGN_... macros instead of bitwise and operator.

Change-Id: Ia2a1e861c401c2c78fe6323379a3776fb4f47b06
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: https://review.openocd.org/c/openocd/+/7096
Tested-by: jenkins
Reviewed-by: Erhan Kurubas <erhan.kurubas@espressif.com>
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
src/target/target.c