commit 
a55749639dc1 ("ia64: drop marked broken DISCONTIGMEM and
VIRTUAL_MEM_MAP") drop VIRTUAL_MEM_MAP, so there is no need HOLES_IN_ZONE
on ia64.
Also move HOLES_IN_ZONE into mm/Kconfig, select it if architecture needs
this feature.
Link: https://lkml.kernel.org/r/20210417075946.181402-1-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>	[arm64]
Cc: Will Deacon <will@kernel.org>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
 
        select HAVE_KPROBES
        select HAVE_KRETPROBES
        select HAVE_GENERIC_VDSO
+       select HOLES_IN_ZONE
        select IOMMU_DMA if IOMMU_SUPPORT
        select IRQ_DOMAIN
        select IRQ_FORCED_THREADING
        def_bool y
        depends on NUMA
 
-config HOLES_IN_ZONE
-       def_bool y
-
 source "kernel/Kconfig.hz"
 
 config ARCH_SPARSEMEM_ENABLE
 
          MAX_NUMNODES will be 2^(This value).
          If in doubt, use the default.
 
-config HOLES_IN_ZONE
-       bool
-
 config HAVE_ARCH_NODEDATA_EXTENSION
        def_bool y
        depends on NUMA
 
 config ISA_DMA_API
        bool
 
-config HOLES_IN_ZONE
-       bool
-
 config SYS_SUPPORTS_RELOCATABLE
        bool
        help
 
        depends on MMU
        bool
 
+config HOLES_IN_ZONE
+       bool
+
 # Don't discard allocated memory used to track "memory" and "reserved" memblocks
 # after early boot, so it can still be used to test for validity of memory.
 # Also, memblocks are updated with memory hot(un)plug.