X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fia64%2Fkernel%2Fsmpboot.c;h=02dc1fc08a974cf311541ddce75b7b1e7927b359;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=f0dd8c3dc67e15e210fddfc88e1e6d02b376c467;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index f0dd8c3dc..02dc1fc08 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c @@ -29,9 +29,9 @@ #include #include #include +#include #include -#include #include #include #include @@ -68,7 +68,7 @@ #define NUM_ROUNDS 64 /* magic value */ #define NUM_ITERS 5 /* likewise */ -static spinlock_t itc_sync_lock = SPIN_LOCK_UNLOCKED; +static DEFINE_SPINLOCK(itc_sync_lock); static volatile unsigned long go[SLAVE + 1]; #define DEBUG_ITC_SYNC 0 @@ -343,8 +343,6 @@ smp_callin (void) int __devinit start_secondary (void *unused) { - extern int cpu_idle (void); - /* Early console may use I/O ports */ ia64_set_kr(IA64_KR_IO_BASE, __pa(ia64_iobase)); @@ -353,7 +351,8 @@ start_secondary (void *unused) cpu_init(); smp_callin(); - return cpu_idle(); + cpu_idle(); + return 0; } struct pt_regs * __devinit idle_regs(struct pt_regs *regs) @@ -613,8 +612,7 @@ void __cpu_die(unsigned int cpu) */ return; } - current->state = TASK_UNINTERRUPTIBLE; - schedule_timeout(HZ/10); + msleep(100); } printk(KERN_ERR "CPU %u didn't die...\n", cpu); }