This is an automated email from Gerrit.

Antonio Borneo ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/5847

-- gerrit

commit 1a70912c18775c15a088425f94cfe85d8e867fb3
Author: Antonio Borneo <[email protected]>
Date:   Wed Sep 16 15:26:40 2020 +0200

    target/aarch64: fix use of 'target->private_config'
    
    The function adiv5_jim_configure() casts the void pointer
    'target->private_config' to a struct adiv5_private_config pointer.
    This is tricky in case of aarch64, where the private data are in a
    struct aarch64_private_config that has as first element the struct
    adiv5_private_config.
    
    While the current solution is working fine, it's not clean and
    requires special attention for any further code development.
    
    Override 'target->private_config' to the correct pointer while
    calling adiv5_jim_configure().
    
    Change-Id: Ic2fc047dd1e57013943d96e6d5879a919d1eb7b3
    Signed-off-by: Antonio Borneo <[email protected]>

diff --git a/src/target/aarch64.c b/src/target/aarch64.c
index 4febc8c..1fc1f60 100644
--- a/src/target/aarch64.c
+++ b/src/target/aarch64.c
@@ -2499,8 +2499,13 @@ static int aarch64_jim_configure(struct target *target, 
Jim_GetOptInfo *goi)
         * options, JIM_OK if it correctly parsed the topmost option
         * and JIM_ERR if an error occurred during parameter evaluation.
         * For JIM_CONTINUE, we check our own params.
+        *
+        * adiv5_jim_configure() assumes 'private_config' to point to
+        * 'struct adiv5_private_config'. Override 'private_config'!
         */
+       target->private_config = &pc->adiv5_config;
        e = adiv5_jim_configure(target, goi);
+       target->private_config = pc;
        if (e != JIM_CONTINUE)
                return e;
 

-- 


_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to