diff --git a/linux-ramdump-parser-v2/parsers/reserved_mem.py b/linux-ramdump-parser-v2/parsers/reserved_mem.py
index f45e52632bd1b8372b3bf1a060380c7204d7839c..bf394b0926f9db0f8d02f48fda2737af2ce455f5 100644
--- a/linux-ramdump-parser-v2/parsers/reserved_mem.py
+++ b/linux-ramdump-parser-v2/parsers/reserved_mem.py
@@ -81,7 +81,14 @@ def page_trace(ramdump, pfn):
     phys = pfn << 12
     if phys is None or phys is 0:
         return
-    offset = phys >> 30
+
+    if ramdump.is_config_defined('CONFIG_MEMORY_HOTPLUG'):
+        section_size_bits = int(ramdump.get_config_val(
+                                'CONFIG_HOTPLUG_SIZE_BITS'))
+        offset = phys >> section_size_bits
+    else:
+        offset = phys >> 30
+
     if ramdump.is_config_defined("CONFIG_SPARSEMEM"):
         mem_section_0_offset = (mem_section + (offset * mem_section_size))
         page_ext = ramdump.read_word(