target/cortex_m: fix target_to_cm() helper
authorTomas Vanek <vanekt@fbl.cz>
Wed, 24 Nov 2021 18:05:21 +0000 (19:05 +0100)
committerTomas Vanek <vanekt@fbl.cz>
Fri, 25 Feb 2022 19:53:18 +0000 (19:53 +0000)
The third parameter of container_of() should point to the same member
as target->arch_info points to, struct arm.

It worked just because struct arm is the first member in
struct armv7m_common.
If you move arm member from the first place, OpenOCD fails heavily.

Change-Id: I0c0a5221490945563e17a0a34d99a603f1d6c2ff
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: https://review.openocd.org/c/openocd/+/6749
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
src/target/cortex_m.h

index c2f836a350958507b6365886c690ad958c5fef8f..cabe405ce1c99b3a6b771b26048937514c85bc6d 100644 (file)
@@ -251,7 +251,7 @@ static inline struct cortex_m_common *
 target_to_cm(struct target *target)
 {
        return container_of(target->arch_info,
-                       struct cortex_m_common, armv7m);
+                       struct cortex_m_common, armv7m.arm);
 }
 
 static inline bool is_cortex_m_or_hla(const struct cortex_m_common *cortex_m)