From: Chandra Seetharaman Make notifier_blocks associated with cpu_notifier as __cpuinitdata. __cpuinitdata makes sure that the data is init time only unless CONFIG_HOTPLUG_CPU is defined. Signed-off-by: Chandra Seetharaman Cc: Ashok Raj Signed-off-by: Andrew Morton --- arch/i386/kernel/cpu/intel_cacheinfo.c | 2 +- arch/i386/kernel/cpuid.c | 2 +- arch/i386/kernel/msr.c | 2 +- arch/ia64/kernel/palinfo.c | 4 ++-- arch/ia64/kernel/topology.c | 2 +- arch/powerpc/mm/numa.c | 11 ++++++----- arch/x86_64/kernel/mce.c | 2 +- drivers/base/topology.c | 2 +- drivers/cpufreq/cpufreq.c | 2 +- drivers/cpufreq/cpufreq_stats.c | 2 +- mm/page-writeback.c | 2 +- mm/page_alloc.c | 2 +- mm/slab.c | 4 +++- 13 files changed, 21 insertions(+), 18 deletions(-) diff -puN arch/i386/kernel/cpuid.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only arch/i386/kernel/cpuid.c --- a/arch/i386/kernel/cpuid.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/arch/i386/kernel/cpuid.c @@ -183,7 +183,7 @@ static int cpuid_class_cpu_callback(stru return NOTIFY_OK; } -static struct notifier_block cpuid_class_cpu_notifier = +static struct notifier_block __cpuinitdata cpuid_class_cpu_notifier = { .notifier_call = cpuid_class_cpu_callback, }; diff -puN arch/i386/kernel/cpu/intel_cacheinfo.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only arch/i386/kernel/cpu/intel_cacheinfo.c --- a/arch/i386/kernel/cpu/intel_cacheinfo.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/arch/i386/kernel/cpu/intel_cacheinfo.c @@ -747,7 +747,7 @@ static int __cpuinit cacheinfo_cpu_callb return NOTIFY_OK; } -static struct notifier_block cacheinfo_cpu_notifier = +static struct notifier_block __cpuinitdata cacheinfo_cpu_notifier = { .notifier_call = cacheinfo_cpu_callback, }; diff -puN arch/i386/kernel/msr.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only arch/i386/kernel/msr.c --- a/arch/i386/kernel/msr.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/arch/i386/kernel/msr.c @@ -266,7 +266,7 @@ static int msr_class_cpu_callback(struct return NOTIFY_OK; } -static struct notifier_block msr_class_cpu_notifier = +static struct notifier_block __cpuinitdata msr_class_cpu_notifier = { .notifier_call = msr_class_cpu_callback, }; diff -puN arch/ia64/kernel/palinfo.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only arch/ia64/kernel/palinfo.c --- a/arch/ia64/kernel/palinfo.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/arch/ia64/kernel/palinfo.c @@ -959,7 +959,7 @@ remove_palinfo_proc_entries(unsigned int } } -static int __devinit palinfo_cpu_callback(struct notifier_block *nfb, +static int __cpuinit palinfo_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) { @@ -978,7 +978,7 @@ static int __devinit palinfo_cpu_callbac return NOTIFY_OK; } -static struct notifier_block palinfo_cpu_notifier = +static struct notifier_block __cpuinitdata palinfo_cpu_notifier = { .notifier_call = palinfo_cpu_callback, .priority = 0, diff -puN arch/ia64/kernel/topology.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only arch/ia64/kernel/topology.c --- a/arch/ia64/kernel/topology.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/arch/ia64/kernel/topology.c @@ -422,7 +422,7 @@ static int __cpuinit cache_cpu_callback( return NOTIFY_OK; } -static struct notifier_block cache_cpu_notifier = +static struct notifier_block __cpuinitdata cache_cpu_notifier = { .notifier_call = cache_cpu_callback }; diff -puN arch/powerpc/mm/numa.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only arch/powerpc/mm/numa.c --- a/arch/powerpc/mm/numa.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/arch/powerpc/mm/numa.c @@ -334,7 +334,7 @@ out: return nid; } -static int cpu_numa_callback(struct notifier_block *nfb, +static int __cpuinit cpu_numa_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) { @@ -609,14 +609,15 @@ static void __init *careful_allocation(i return (void *)ret; } +static struct notifier_block __cpuinitdata ppc64_numa_nb = { + .notifier_call = cpu_numa_callback, + .priority = 1 /* Must run before sched domains notifier. */ +}; + void __init do_init_bootmem(void) { int nid; unsigned int i; - static struct notifier_block ppc64_numa_nb = { - .notifier_call = cpu_numa_callback, - .priority = 1 /* Must run before sched domains notifier. */ - }; min_low_pfn = 0; max_low_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT; diff -puN arch/x86_64/kernel/mce.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only arch/x86_64/kernel/mce.c --- a/arch/x86_64/kernel/mce.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/arch/x86_64/kernel/mce.c @@ -647,7 +647,7 @@ mce_cpu_callback(struct notifier_block * return NOTIFY_OK; } -static struct notifier_block mce_cpu_notifier = { +static struct notifier_block __cpuinitdata mce_cpu_notifier = { .notifier_call = mce_cpu_callback, }; diff -puN drivers/base/topology.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only drivers/base/topology.c --- a/drivers/base/topology.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/drivers/base/topology.c @@ -125,7 +125,7 @@ static int __cpuinit topology_cpu_callba return NOTIFY_OK; } -static struct notifier_block topology_cpu_notifier = +static struct notifier_block __cpuinitdata topology_cpu_notifier = { .notifier_call = topology_cpu_callback, }; diff -puN drivers/cpufreq/cpufreq.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only drivers/cpufreq/cpufreq.c --- a/drivers/cpufreq/cpufreq.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/drivers/cpufreq/cpufreq.c @@ -1532,7 +1532,7 @@ static int __cpuinit cpufreq_cpu_callbac return NOTIFY_OK; } -static struct notifier_block cpufreq_cpu_notifier = +static struct notifier_block __cpuinitdata cpufreq_cpu_notifier = { .notifier_call = cpufreq_cpu_callback, }; diff -puN drivers/cpufreq/cpufreq_stats.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only drivers/cpufreq/cpufreq_stats.c --- a/drivers/cpufreq/cpufreq_stats.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/drivers/cpufreq/cpufreq_stats.c @@ -319,7 +319,7 @@ static int cpufreq_stat_cpu_callback(str return NOTIFY_OK; } -static struct notifier_block cpufreq_stat_cpu_notifier = +static struct notifier_block __cpuinitdata cpufreq_stat_cpu_notifier = { .notifier_call = cpufreq_stat_cpu_callback, }; diff -puN mm/page_alloc.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only mm/page_alloc.c --- a/mm/page_alloc.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/mm/page_alloc.c @@ -1893,7 +1893,7 @@ static int __cpuinit pageset_cpuup_callb return ret; } -static struct notifier_block pageset_notifier = +static struct notifier_block __cpuinitdata pageset_notifier = { &pageset_cpuup_callback, NULL, 0 }; void __init setup_per_cpu_pageset(void) diff -puN mm/page-writeback.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only mm/page-writeback.c --- a/mm/page-writeback.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/mm/page-writeback.c @@ -507,7 +507,7 @@ ratelimit_handler(struct notifier_block return 0; } -static struct notifier_block ratelimit_nb = { +static struct notifier_block __cpuinitdata ratelimit_nb = { .notifier_call = ratelimit_handler, .next = NULL, }; diff -puN mm/slab.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only mm/slab.c --- a/mm/slab.c~cpu-hotplug-make-cpu_notifier-related-notifier-blocks-__cpuinit-only +++ a/mm/slab.c @@ -1255,7 +1255,9 @@ bad: return NOTIFY_BAD; } -static struct notifier_block cpucache_notifier = { &cpuup_callback, NULL, 0 }; +static struct notifier_block __cpuinitdata cpucache_notifier = { + &cpuup_callback, NULL, 0 +}; /* * swap the static kmem_list3 with kmalloced memory _