#include <linux/capability.h>
 #include <linux/elf.h>
 #include <linux/elfcore.h>
+#include <linux/notifier.h>
 #include <linux/vmalloc.h>
 #include <linux/highmem.h>
 #include <linux/printk.h>
        .llseek         = default_llseek,
 };
 
-#ifdef CONFIG_MEMORY_HOTPLUG
 /* just remember that we have to update kcore */
 static int __meminit kcore_callback(struct notifier_block *self,
                                    unsigned long action, void *arg)
        }
        return NOTIFY_OK;
 }
-#endif
 
+static struct notifier_block kcore_callback_nb __meminitdata = {
+       .notifier_call = kcore_callback,
+       .priority = 0,
+};
 
 static struct kcore_list kcore_vmalloc;
 
        add_modules_range();
        /* Store direct-map area from physical memory map */
        kcore_update_ram();
-       hotplug_memory_notifier(kcore_callback, 0);
+       register_hotmemory_notifier(&kcore_callback_nb);
 
        return 0;
 }