select HAVE_ARCH_KGDB
        select HAVE_ARCH_MMAP_RND_BITS
        select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
-       select HAVE_ARCH_PFN_VALID
        select HAVE_ARCH_PREL32_RELOCATIONS
        select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
        select HAVE_ARCH_SECCOMP_FILTER
 
        free_area_init(max_zone_pfns);
 }
 
-int pfn_valid(unsigned long pfn)
-{
-       phys_addr_t addr = PFN_PHYS(pfn);
-       struct mem_section *ms;
-
-       /*
-        * Ensure the upper PAGE_SHIFT bits are clear in the
-        * pfn. Else it might lead to false positives when
-        * some of the upper bits are set, but the lower bits
-        * match a valid pfn.
-        */
-       if (PHYS_PFN(addr) != pfn)
-               return 0;
-
-       if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS)
-               return 0;
-
-       ms = __pfn_to_section(pfn);
-       if (!valid_section(ms))
-               return 0;
-
-       /*
-        * ZONE_DEVICE memory does not have the memblock entries.
-        * memblock_is_map_memory() check for ZONE_DEVICE based
-        * addresses will always fail. Even the normal hotplugged
-        * memory will never have MEMBLOCK_NOMAP flag set in their
-        * memblock entries. Skip memblock search for all non early
-        * memory sections covering all of hotplug memory including
-        * both normal and ZONE_DEVICE based.
-        */
-       if (!early_section(ms))
-               return pfn_section_valid(ms, pfn);
-
-       return memblock_is_memory(addr);
-}
-EXPORT_SYMBOL(pfn_valid);
-
 int pfn_is_map_memory(unsigned long pfn)
 {
        phys_addr_t addr = PFN_PHYS(pfn);
 
 {
        struct mem_section *ms;
 
+       /*
+        * Ensure the upper PAGE_SHIFT bits are clear in the
+        * pfn. Else it might lead to false positives when
+        * some of the upper bits are set, but the lower bits
+        * match a valid pfn.
+        */
+       if (PHYS_PFN(PFN_PHYS(pfn)) != pfn)
+               return 0;
+
        if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS)
                return 0;
        ms = __nr_to_section(pfn_to_section_nr(pfn));