|
@@ -15,6 +15,7 @@
|
|
|
#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>
|
|
@@ -564,7 +565,6 @@ static const struct file_operations proc_kcore_operations = {
|
|
|
.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)
|
|
@@ -578,8 +578,11 @@ static int __meminit kcore_callback(struct notifier_block *self,
|
|
|
}
|
|
|
return NOTIFY_OK;
|
|
|
}
|
|
|
-#endif
|
|
|
|
|
|
+static struct notifier_block kcore_callback_nb __meminitdata = {
|
|
|
+ .notifier_call = kcore_callback,
|
|
|
+ .priority = 0,
|
|
|
+};
|
|
|
|
|
|
static struct kcore_list kcore_vmalloc;
|
|
|
|
|
@@ -631,7 +634,7 @@ static int __init proc_kcore_init(void)
|
|
|
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;
|
|
|
}
|