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(