#ifdef CONFIG_ARCH_RANDOM
        int (*get_random_long)(unsigned long *v);
 #endif
-
-#ifdef CONFIG_MEMORY_HOTREMOVE
-       int (*remove_memory)(u64, u64);
-#endif
 };
 
 extern void e500_idle(void);
 
 #include <linux/memblock.h>
 #include <linux/hugetlb.h>
 #include <linux/slab.h>
+#include <linux/vmalloc.h>
 
 #include <asm/pgalloc.h>
 #include <asm/prom.h>
 
        zone = page_zone(pfn_to_page(start_pfn));
        ret = __remove_pages(zone, start_pfn, nr_pages);
-       if (!ret && (ppc_md.remove_memory))
-               ret = ppc_md.remove_memory(start, size);
+       if (ret)
+               return ret;
+
+       /* Remove htab bolted mappings for this section of memory */
+       start = (unsigned long)__va(start);
+       ret = remove_section_mapping(start, start + size);
+
+       /* Ensure all vmalloc mappings are flushed in case they also
+        * hit that section of memory
+        */
+       vm_unmap_aliases();
 
        return ret;
 }
 
 #include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/memblock.h>
-#include <linux/vmalloc.h>
 #include <linux/memory.h>
 #include <linux/memory_hotplug.h>
 
 }
 
 #ifdef CONFIG_MEMORY_HOTREMOVE
-static int pseries_remove_memory(u64 start, u64 size)
-{
-       int ret;
-
-       /* Remove htab bolted mappings for this section of memory */
-       start = (unsigned long)__va(start);
-       ret = remove_section_mapping(start, start + size);
-
-       /* Ensure all vmalloc mappings are flushed in case they also
-        * hit that section of memory
-        */
-       vm_unmap_aliases();
-
-       return ret;
-}
-
 static int pseries_remove_memblock(unsigned long base, unsigned int memblock_size)
 {
        unsigned long block_sz, start_pfn;
        if (firmware_has_feature(FW_FEATURE_LPAR))
                of_reconfig_notifier_register(&pseries_mem_nb);
 
-#ifdef CONFIG_MEMORY_HOTREMOVE
-       ppc_md.remove_memory = pseries_remove_memory;
-#endif
-
        return 0;
 }
 machine_device_initcall(pseries, pseries_memory_hotplug_init);