crashk_low_res.start = low_base;
        crashk_low_res.end   = low_base + low_size - 1;
-       insert_resource(&iomem_resource, &crashk_low_res);
 #endif
        return 0;
 }
 
        crashk_res.start = crash_base;
        crashk_res.end = crash_base + crash_size - 1;
-       insert_resource(&iomem_resource, &crashk_res);
 }
+
+static __init int insert_crashkernel_resources(void)
+{
+       if (crashk_res.start < crashk_res.end)
+               insert_resource(&iomem_resource, &crashk_res);
+
+       if (crashk_low_res.start < crashk_low_res.end)
+               insert_resource(&iomem_resource, &crashk_low_res);
+
+       return 0;
+}
+early_initcall(insert_crashkernel_resources);
 #endif
 
 int crash_prepare_elf64_headers(struct crash_mem *mem, int need_kernel_map,