From: Tarek BOCHKATI Date: Sun, 14 Feb 2021 12:21:36 +0000 (+0100) Subject: arm_dpm: do not read/write non-existent registers X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=708284a1accfa01c7a14ea7d7cd588000776d6b7;p=fw%2Fopenocd arm_dpm: do not read/write non-existent registers Change-Id: I6a991899bb178ee0c6b41870a45d0a9439d9dc1e Signed-off-by: Tarek BOCHKATI Reviewed-on: http://openocd.zylin.com/6063 Reviewed-by: Antonio Borneo Tested-by: jenkins --- diff --git a/src/target/arm_dpm.c b/src/target/arm_dpm.c index 058f0df09..d1f574856 100644 --- a/src/target/arm_dpm.c +++ b/src/target/arm_dpm.c @@ -514,7 +514,7 @@ int arm_dpm_write_dirty_registers(struct arm_dpm *dpm, bool bpwp) continue; if (arm->cpsr == cache->reg_list + i) continue; - if (!cache->reg_list[i].dirty) + if (!cache->reg_list[i].exist || !cache->reg_list[i].dirty) continue; r = cache->reg_list[i].arch_info; @@ -763,7 +763,7 @@ static int arm_dpm_full_context(struct target *target) for (unsigned i = 0; i < cache->num_regs; i++) { struct arm_reg *r; - if (cache->reg_list[i].valid) + if (!cache->reg_list[i].exist || cache->reg_list[i].valid) continue; r = cache->reg_list[i].arch_info;