Skip to content
Snippets Groups Projects
Commit b8025995 authored by Runmin Wang's avatar Runmin Wang
Browse files

lrdp-v2: Check if tvec_base_deferrable exisits

tvec_base_deferrable is defined after msm-3.18. Add a check to skip
dumping this for previous kernel version

Change-Id: Ib2de82c5c6549d9ca5d53c96019fc47621a02e23
parent 1450db14
No related branches found
No related tags found
No related merge requests found
# Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
# Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 and
......@@ -100,31 +100,32 @@ class TimerList(RamParser) :
self.output_file.write("Timer List Dump\n\n")
tvec_base_deferral_addr = self.ramdump.address_of('tvec_base_deferrable')
timer_jiffies_addr = tvec_base_deferral_addr + self.ramdump.field_offset('struct tvec_base', 'timer_jiffies')
next_timer_addr = tvec_base_deferral_addr + self.ramdump.field_offset('struct tvec_base', 'next_timer')
timer_jiffies = self.ramdump.read_word(timer_jiffies_addr)
next_timer = self.ramdump.read_word(next_timer_addr)
active_timers_offset = self.ramdump.field_offset('struct tvec_base', 'active_timers')
if active_timers_offset is not None:
active_timers_addr = tvec_base_deferral_addr + self.ramdump.field_offset('struct tvec_base', 'active_timers')
active_timers = self.ramdump.read_word(active_timers_addr)
else:
active_timers = "NA"
if tvec_base_deferral_addr:
timer_jiffies_addr = tvec_base_deferral_addr + self.ramdump.field_offset('struct tvec_base', 'timer_jiffies')
next_timer_addr = tvec_base_deferral_addr + self.ramdump.field_offset('struct tvec_base', 'next_timer')
title = "(deferrable_base: {0:x} ".format(tvec_base_deferral_addr)
title += "timer_jiffies: {0} next_timer: {1} active_timers: {2})\n".format(timer_jiffies, next_timer, active_timers)
self.output_file.write("-" * len(title) + "\n")
self.output_file.write(title)
self.output_file.write("-" * len(title) + "\n\n")
for vec in sorted(self.vectors):
self.output = []
if self.timer_42:
self.iterate_vec_v2(vec, tvec_base_deferral_addr)
timer_jiffies = self.ramdump.read_word(timer_jiffies_addr)
next_timer = self.ramdump.read_word(next_timer_addr)
active_timers_offset = self.ramdump.field_offset('struct tvec_base', 'active_timers')
if active_timers_offset is not None:
active_timers_addr = tvec_base_deferral_addr + self.ramdump.field_offset('struct tvec_base', 'active_timers')
active_timers = self.ramdump.read_word(active_timers_addr)
else:
self.iterate_vec(vec, tvec_base_deferral_addr)
self.print_vec(vec)
active_timers = "NA"
title = "(deferrable_base: {0:x} ".format(tvec_base_deferral_addr)
title += "timer_jiffies: {0} next_timer: {1} active_timers: {2})\n".format(timer_jiffies, next_timer, active_timers)
self.output_file.write("-" * len(title) + "\n")
self.output_file.write(title)
self.output_file.write("-" * len(title) + "\n\n")
for vec in sorted(self.vectors):
self.output = []
if self.timer_42:
self.iterate_vec_v2(vec, tvec_base_deferral_addr)
else:
self.iterate_vec(vec, tvec_base_deferral_addr)
self.print_vec(vec)
tvec_bases_addr = self.ramdump.address_of('tvec_bases')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment