Skip to content
Snippets Groups Projects
Commit 70844c26 authored by Ankur Bansal's avatar Ankur Bansal
Browse files

lrdp_v2 : Fix for broken irqstat.py for kernel 3.18

Fix for broken irqstat.py for 3.18 kernel.
In kernel 3.18, affinity is part of struct irq_data
whereas in kernel >= 4.4 affinity is part fo struct irq_common_data

Change-Id: I6c5b5417df86a818c1fc362ab881057074521d2f
parent 65038817
No related branches found
No related tags found
No related merge requests found
......@@ -26,10 +26,14 @@ class IrqParse(RamParser):
h_irq_offset = ram_dump.field_offset('struct irq_desc', 'handle_irq')
irq_num_offset = ram_dump.field_offset('struct irq_data', 'irq')
hwirq_num_offset = ram_dump.field_offset('struct irq_data', 'hwirq')
affinity_offset = ram_dump.field_offset(
'struct irq_common_data', 'affinity')
irq_common_data_offset = ram_dump.field_offset(
'struct irq_desc', 'irq_common_data')
if ram_dump.kernel_version >= (4,4,0) :
affinity_offset = ram_dump.field_offset(
'struct irq_common_data', 'affinity')
irq_common_data_offset = ram_dump.field_offset(
'struct irq_desc', 'irq_common_data')
else:
affinity_offset = ram_dump.field_offset(
'struct irq_data', 'affinity')
irq_data_offset = ram_dump.field_offset('struct irq_desc', 'irq_data')
irq_count_offset = ram_dump.field_offset(
'struct irq_desc', 'irq_count')
......@@ -51,8 +55,12 @@ class IrqParse(RamParser):
for i in range(0, irq_desc_size, irq_desc_entry_size):
irqnum = ram_dump.read_word(irq_desc + i + irq_num_offset)
hwirq = ram_dump.read_word(irq_desc + i + hwirq_num_offset)
affinity = ram_dump.read_int(
irq_desc + irq_common_data_offset + affinity_offset)
if ram_dump.kernel_version >= (4,4,0):
affinity = ram_dump.read_int(
irq_desc + irq_common_data_offset + affinity_offset)
else:
affinity = ram_dump.read_int(
irq_desc + affinity_offset)
irqcount = ram_dump.read_word(irq_desc + i + irq_count_offset)
action = ram_dump.read_word(irq_desc + i + irq_action_offset)
kstat_irqs_addr = ram_dump.read_word(
......@@ -173,10 +181,14 @@ class IrqParse(RamParser):
h_irq_offset = ram_dump.field_offset('struct irq_desc', 'handle_irq')
irq_num_offset = ram_dump.field_offset('struct irq_data', 'irq')
hwirq_num_offset = ram_dump.field_offset('struct irq_data', 'hwirq')
affinity_offset = ram_dump.field_offset(
'struct irq_common_data', 'affinity')
irq_common_data_offset = ram_dump.field_offset(
'struct irq_desc', 'irq_common_data')
if ram_dump.kernel_version >= (4,4,0):
affinity_offset = ram_dump.field_offset(
'struct irq_common_data', 'affinity')
irq_common_data_offset = ram_dump.field_offset(
'struct irq_desc', 'irq_common_data')
else:
affinity_offset = ram_dump.field_offset(
'struct irq_data', 'affinity')
irq_data_offset = ram_dump.field_offset('struct irq_desc', 'irq_data')
irq_count_offset = ram_dump.field_offset(
'struct irq_desc', 'irq_count')
......@@ -217,8 +229,12 @@ class IrqParse(RamParser):
irqnum = ram_dump.read_int(irq_desc + irq_data_offset + irq_num_offset)
hwirq = ram_dump.read_int(
irq_desc + irq_data_offset + hwirq_num_offset)
affinity = ram_dump.read_int(
irq_desc + irq_common_data_offset + affinity_offset)
if ram_dump.kernel_version >= (4,4,0):
affinity = ram_dump.read_int(
irq_desc + irq_common_data_offset + affinity_offset)
else:
affinity = ram_dump.read_int(
irq_desc + affinity_offset)
irqcount = ram_dump.read_int(irq_desc + irq_count_offset)
action = ram_dump.read_word(irq_desc + irq_action_offset)
kstat_irqs_addr = ram_dump.read_word(irq_desc + kstat_irqs_offset)
......
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