#ifndef __ASSEMBLY__
 #ifdef CONFIG_HUGETLB_PAGE
+extern bool hugetlb_disabled;
 extern unsigned int HPAGE_SHIFT;
 #else
 #define HPAGE_SHIFT PAGE_SHIFT
 
        if (fw_dump.dump_active) {
                pr_info("Firmware-assisted dump is active.\n");
 
+#ifdef CONFIG_HUGETLB_PAGE
+               /*
+                * FADump capture kernel doesn't care much about hugepages.
+                * In fact, handling hugepages in capture kernel is asking for
+                * trouble. So, disable HugeTLB support when fadump is active.
+                */
+               hugetlb_disabled = true;
+#endif
                /*
                 * If last boot has crashed then reserve all the memory
                 * above boot_memory_size so that we don't touch it until
 
        }
 
 #ifdef CONFIG_HUGETLB_PAGE
-       /* Reserve 16G huge page memory sections for huge pages */
-       of_scan_flat_dt(htab_dt_scan_hugepage_blocks, NULL);
+       if (!hugetlb_disabled) {
+               /* Reserve 16G huge page memory sections for huge pages */
+               of_scan_flat_dt(htab_dt_scan_hugepage_blocks, NULL);
+       }
 #endif /* CONFIG_HUGETLB_PAGE */
 }
 
 
 #define PAGE_SHIFT_16M 24
 #define PAGE_SHIFT_16G 34
 
+bool hugetlb_disabled = false;
+
 unsigned int HPAGE_SHIFT;
 EXPORT_SYMBOL(HPAGE_SHIFT);
 
 {
        int psize;
 
+       if (hugetlb_disabled) {
+               pr_info("HugeTLB support is disabled!\n");
+               return 0;
+       }
+
 #if !defined(CONFIG_PPC_FSL_BOOK3E) && !defined(CONFIG_PPC_8xx)
        if (!radix_enabled() && !mmu_has_feature(MMU_FTR_16M_PAGE))
                return -ENODEV;