[PATCH] make smp_prepare_cpu to a weak function
I really wish smp_prepare_cpu() would disappear eventually. In the interim this is ideally a weak function, so we dont end up changing several places to define this dummy in headers. Today since the dummy declaration is done only in drivers/base/cpu.c but the function is called in kernel/power/smp.c i get undefined reference in my cpu hotplug code for x86_64 under development. Signed-off-by: Ashok Raj <ashok.raj@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
e1367daf3e
commit
52a119feaa
3 changed files with 6 additions and 7 deletions
|
@ -16,9 +16,10 @@ struct sysdev_class cpu_sysdev_class = {
|
|||
EXPORT_SYMBOL(cpu_sysdev_class);
|
||||
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
#ifndef __HAVE_ARCH_SMP_PREPARE_CPU
|
||||
#define smp_prepare_cpu(cpu) (0)
|
||||
#endif
|
||||
int __attribute__((weak)) smp_prepare_cpu (int cpu)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t show_online(struct sys_device *dev, char *buf)
|
||||
{
|
||||
|
@ -41,7 +42,7 @@ static ssize_t store_online(struct sys_device *dev, const char *buf,
|
|||
break;
|
||||
case '1':
|
||||
ret = smp_prepare_cpu(cpu->sysdev.id);
|
||||
if (ret == 0)
|
||||
if (!ret)
|
||||
ret = cpu_up(cpu->sysdev.id);
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -51,9 +51,6 @@ extern u8 x86_cpu_to_apicid[];
|
|||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
extern void cpu_exit_clear(void);
|
||||
extern void cpu_uninit(void);
|
||||
|
||||
#define __HAVE_ARCH_SMP_PREPARE_CPU
|
||||
extern int smp_prepare_cpu(int cpu);
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
|
@ -69,6 +69,7 @@ extern struct semaphore cpucontrol;
|
|||
register_cpu_notifier(&fn##_nb); \
|
||||
}
|
||||
int cpu_down(unsigned int cpu);
|
||||
extern int __attribute__((weak)) smp_prepare_cpu(int cpu);
|
||||
#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
|
||||
#else
|
||||
#define lock_cpu_hotplug() do { } while (0)
|
||||
|
|
Loading…
Reference in a new issue