Skip to content

Commit

Permalink
[PATCH] cpu hotplug: use hotplug version of registration in late inits
Browse files Browse the repository at this point in the history
Use hotplug version of register_cpu_notifier in late init functions.

Signed-off-by: Chandra Seetharaman <[email protected]>
Cc: "Luck, Tony" <[email protected]>
Cc: Martin Schwidefsky <[email protected]>
Cc: Andi Kleen <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
chandra2 authored and Linus Torvalds committed Jul 31, 2006
1 parent 7c7165c commit be6b5a3
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 34 deletions.
2 changes: 1 addition & 1 deletion arch/i386/kernel/cpu/intel_cacheinfo.c
Original file line number Diff line number Diff line change
Expand Up @@ -759,7 +759,7 @@ static int __cpuinit cache_sysfs_init(void)
if (num_cache_leaves == 0)
return 0;

register_cpu_notifier(&cacheinfo_cpu_notifier);
register_hotcpu_notifier(&cacheinfo_cpu_notifier);

for_each_online_cpu(i) {
cacheinfo_cpu_callback(&cacheinfo_cpu_notifier, CPU_ONLINE,
Expand Down
13 changes: 6 additions & 7 deletions arch/ia64/kernel/palinfo.c
Original file line number Diff line number Diff line change
Expand Up @@ -958,30 +958,29 @@ remove_palinfo_proc_entries(unsigned int hcpu)
}
}

static int __cpuinit palinfo_cpu_callback(struct notifier_block *nfb,
unsigned long action,
void *hcpu)
#ifdef CONFIG_HOTPLUG_CPU
static int palinfo_cpu_callback(struct notifier_block *nfb,
unsigned long action, void *hcpu)
{
unsigned int hotcpu = (unsigned long)hcpu;

switch (action) {
case CPU_ONLINE:
create_palinfo_proc_entries(hotcpu);
break;
#ifdef CONFIG_HOTPLUG_CPU
case CPU_DEAD:
remove_palinfo_proc_entries(hotcpu);
break;
#endif
}
return NOTIFY_OK;
}

static struct notifier_block __cpuinitdata palinfo_cpu_notifier =
static struct notifier_block palinfo_cpu_notifier =
{
.notifier_call = palinfo_cpu_callback,
.priority = 0,
};
#endif

static int __init
palinfo_init(void)
Expand Down Expand Up @@ -1020,7 +1019,7 @@ palinfo_exit(void)
/*
* Unregister from cpu notifier callbacks
*/
unregister_cpu_notifier(&palinfo_cpu_notifier);
unregister_hotcpu_notifier(&palinfo_cpu_notifier);
}

module_init(palinfo_init);
Expand Down
2 changes: 1 addition & 1 deletion arch/ia64/kernel/topology.c
Original file line number Diff line number Diff line change
Expand Up @@ -435,7 +435,7 @@ static int __cpuinit cache_sysfs_init(void)
(void *)(long)i);
}

register_cpu_notifier(&cache_cpu_notifier);
register_hotcpu_notifier(&cache_cpu_notifier);

return 0;
}
Expand Down
10 changes: 5 additions & 5 deletions arch/s390/appldata/appldata_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -617,28 +617,28 @@ appldata_offline_cpu(int cpu)
spin_unlock(&appldata_timer_lock);
}

static int __cpuinit
#ifdef CONFIG_HOTPLUG_CPU
static int
appldata_cpu_notify(struct notifier_block *self,
unsigned long action, void *hcpu)
{
switch (action) {
case CPU_ONLINE:
appldata_online_cpu((long) hcpu);
break;
#ifdef CONFIG_HOTPLUG_CPU
case CPU_DEAD:
appldata_offline_cpu((long) hcpu);
break;
#endif
default:
break;
}
return NOTIFY_OK;
}

static struct notifier_block __devinitdata appldata_nb = {
static struct notifier_block appldata_nb = {
.notifier_call = appldata_cpu_notify,
};
#endif

/*
* appldata_init()
Expand All @@ -662,7 +662,7 @@ static int __init appldata_init(void)
appldata_online_cpu(i);

/* Register cpu hotplug notifier */
register_cpu_notifier(&appldata_nb);
register_hotcpu_notifier(&appldata_nb);

appldata_sysctl_header = register_sysctl_table(appldata_dir_table, 1);
#ifdef MODULE
Expand Down
12 changes: 5 additions & 7 deletions arch/x86_64/kernel/mce.c
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ static __cpuinit int mce_create_device(unsigned int cpu)
}

#ifdef CONFIG_HOTPLUG_CPU
static __cpuinit void mce_remove_device(unsigned int cpu)
static void mce_remove_device(unsigned int cpu)
{
int i;

Expand All @@ -626,10 +626,9 @@ static __cpuinit void mce_remove_device(unsigned int cpu)
sysdev_remove_file(&per_cpu(device_mce,cpu), &attr_check_interval);
sysdev_unregister(&per_cpu(device_mce,cpu));
}
#endif

/* Get notified when a cpu comes on/off. Be hotplug friendly. */
static __cpuinit int
static int
mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
{
unsigned int cpu = (unsigned long)hcpu;
Expand All @@ -638,18 +637,17 @@ mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
case CPU_ONLINE:
mce_create_device(cpu);
break;
#ifdef CONFIG_HOTPLUG_CPU
case CPU_DEAD:
mce_remove_device(cpu);
break;
#endif
}
return NOTIFY_OK;
}

static struct notifier_block __cpuinitdata mce_cpu_notifier = {
static struct notifier_block mce_cpu_notifier = {
.notifier_call = mce_cpu_callback,
};
#endif

static __init int mce_init_device(void)
{
Expand All @@ -664,7 +662,7 @@ static __init int mce_init_device(void)
mce_create_device(i);
}

register_cpu_notifier(&mce_cpu_notifier);
register_hotcpu_notifier(&mce_cpu_notifier);
misc_register(&mce_log_device);
return err;
}
Expand Down
19 changes: 7 additions & 12 deletions arch/x86_64/kernel/mce_amd.c
Original file line number Diff line number Diff line change
Expand Up @@ -558,7 +558,7 @@ static __cpuinit int threshold_create_device(unsigned int cpu)
* of shared sysfs dir/files, and rest of the cores will be symlinked to it.
*/

static __cpuinit void deallocate_threshold_block(unsigned int cpu,
static void deallocate_threshold_block(unsigned int cpu,
unsigned int bank)
{
struct threshold_block *pos = NULL;
Expand All @@ -578,7 +578,7 @@ static __cpuinit void deallocate_threshold_block(unsigned int cpu,
per_cpu(threshold_banks, cpu)[bank]->blocks = NULL;
}

static __cpuinit void threshold_remove_bank(unsigned int cpu, int bank)
static void threshold_remove_bank(unsigned int cpu, int bank)
{
int i = 0;
struct threshold_bank *b;
Expand Down Expand Up @@ -618,7 +618,7 @@ static __cpuinit void threshold_remove_bank(unsigned int cpu, int bank)
per_cpu(threshold_banks, cpu)[bank] = NULL;
}

static __cpuinit void threshold_remove_device(unsigned int cpu)
static void threshold_remove_device(unsigned int cpu)
{
unsigned int bank;

Expand All @@ -629,14 +629,8 @@ static __cpuinit void threshold_remove_device(unsigned int cpu)
}
}

#else /* !CONFIG_HOTPLUG_CPU */
static void threshold_remove_device(unsigned int cpu)
{
}
#endif

/* get notified when a cpu comes on/off */
static int __cpuinit threshold_cpu_callback(struct notifier_block *nfb,
static int threshold_cpu_callback(struct notifier_block *nfb,
unsigned long action, void *hcpu)
{
/* cpu was unsigned int to begin with */
Expand All @@ -659,9 +653,10 @@ static int __cpuinit threshold_cpu_callback(struct notifier_block *nfb,
return NOTIFY_OK;
}

static struct notifier_block threshold_cpu_notifier __cpuinitdata = {
static struct notifier_block threshold_cpu_notifier = {
.notifier_call = threshold_cpu_callback,
};
#endif /* CONFIG_HOTPLUG_CPU */

static __init int threshold_init_device(void)
{
Expand All @@ -673,7 +668,7 @@ static __init int threshold_init_device(void)
if (err)
return err;
}
register_cpu_notifier(&threshold_cpu_notifier);
register_hotcpu_notifier(&threshold_cpu_notifier);
return 0;
}

Expand Down
2 changes: 1 addition & 1 deletion drivers/base/topology.c
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ static int __cpuinit topology_sysfs_init(void)
(void *)(long)i);
}

register_cpu_notifier(&topology_cpu_notifier);
register_hotcpu_notifier(&topology_cpu_notifier);

return 0;
}
Expand Down

0 comments on commit be6b5a3

Please sign in to comment.