diff --git a/linux-ramdump-parser-v2/parsers/irqstate.py b/linux-ramdump-parser-v2/parsers/irqstate.py
index bce7f67a282b7dee0e9ab18b64082e87eb529f53..e0fdff20dac9513197f8552f0cb99f3945219601 100644
--- a/linux-ramdump-parser-v2/parsers/irqstate.py
+++ b/linux-ramdump-parser-v2/parsers/irqstate.py
@@ -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)