diff --git a/linux-ramdump-parser-v2/parsers/mmcdoctor.py b/linux-ramdump-parser-v2/parsers/mmcdoctor.py
index 0d6a820809d7576477fdd9e15d8ce74bdc645c00..7f75a54605c4cd36ef489a1c6ec2a44a770bed28 100644
--- a/linux-ramdump-parser-v2/parsers/mmcdoctor.py
+++ b/linux-ramdump-parser-v2/parsers/mmcdoctor.py
@@ -121,8 +121,12 @@ def get_sdhci_irqs(ram_dump):
     if nr_irqs > 50000:
         return
     for i in range(0, nr_irqs):
-        irq_desc = irqs.radix_tree_lookup_element(
-            ram_dump, irq_desc_tree, i)
+        if (ram_dump.kernel_version >= (4,9,0)):
+            irq_desc = irqs.radix_tree_lookup_element_v2(
+                ram_dump, irq_desc_tree, i)
+        else:
+            irq_desc = irqs.radix_tree_lookup_element(
+                ram_dump, irq_desc_tree, i)
         if irq_desc is None:
             continue
         action = ram_dump.read_word(irq_desc + irq_action_offset)
@@ -144,7 +148,12 @@ def find_sdhci_host(ramdump, irq):
     irq_action_offset = ramdump.field_offset('struct irq_desc', 'action')
     dev_id = ramdump.field_offset('struct irqaction', 'dev_id')
     irqs = IrqParse(RamParser)
-    sdhci_irq_desc = irqs.radix_tree_lookup_element(ramdump, irq_desc_tree, irq)
+    if (ramdump.kernel_version >= (4,9,0)):
+        sdhci_irq_desc = irqs.radix_tree_lookup_element_v2(
+            ramdump, irq_desc_tree, irq)
+    else:
+        sdhci_irq_desc = irqs.radix_tree_lookup_element(
+            ramdump, irq_desc_tree, irq)
     sdhci_irq_action = ramdump.read_word(sdhci_irq_desc + irq_action_offset)
     sdhci_host = ramdump.read_word(sdhci_irq_action + dev_id)
     return sdhci_host