diff --git a/linux-ramdump-parser-v2/parsers/cpr3_info.py b/linux-ramdump-parser-v2/parsers/cpr3_info.py index ca5d9ddf472c73945a904408f1bb9ad753790d20..3f0be291fd8be868fddc4b8d6db41acc46d26b2b 100644 --- a/linux-ramdump-parser-v2/parsers/cpr3_info.py +++ b/linux-ramdump-parser-v2/parsers/cpr3_info.py @@ -430,9 +430,19 @@ class CPR3Info(RamParser): else: cpr_mode = "closed-loop" - tmp = "" - if cpr_controller_name is None: + thread_addr = self.ramdump.read_word( + ctrl_addr + + self.ramdump.field_offset( + 'struct cpr3_controller', 'thread')) + if thread_addr is None: return + thread_ctrl_addr = self.ramdump.read_word( + thread_addr + + self.ramdump.field_offset('struct cpr3_thread', 'ctrl')) + + if cpr_controller_name is None or thread_ctrl_addr != ctrl_addr: + return + tmp = "" tmp += "=" * 80 + "\n" tmp += 'CPR3 controller state: %s\n' % cpr_controller_name tmp += "=" * 80 + "\n" @@ -464,10 +474,6 @@ class CPR3Info(RamParser): self.output.append("\nCPR aggregated voltages:\n") self.dump_cpr3_corner_info(aggr_corner_addr, 0, 0, 0) - thread_addr = self.ramdump.read_word( - ctrl_addr + - self.ramdump.field_offset( - 'struct cpr3_controller', 'thread')) thread_count = self.ramdump.read_int( ctrl_addr + self.ramdump.field_offset(