Commit 18fc1ad1 authored by Ivan Kokshaysky's avatar Ivan Kokshaysky Committed by Linus Torvalds

[PATCH] alpha: percpu update [7/10]

Generic per-cpu areas; wrappers for SMP boot process.
parent 7226c990
...@@ -441,7 +441,7 @@ fork_by_hand(void) ...@@ -441,7 +441,7 @@ fork_by_hand(void)
* Bring one cpu online. * Bring one cpu online.
*/ */
static int __init static int __init
smp_boot_one_cpu(int cpuid, int cpunum) smp_boot_one_cpu(int cpuid)
{ {
struct task_struct *idle; struct task_struct *idle;
long timeout; long timeout;
...@@ -578,7 +578,7 @@ smp_boot_cpus(void) ...@@ -578,7 +578,7 @@ smp_boot_cpus(void)
if (((hwrpb_cpu_present_mask >> i) & 1) == 0) if (((hwrpb_cpu_present_mask >> i) & 1) == 0)
continue; continue;
if (smp_boot_one_cpu(i, cpu_count)) if (smp_boot_one_cpu(i))
continue; continue;
cpu_present_mask |= 1UL << i; cpu_present_mask |= 1UL << i;
...@@ -603,14 +603,22 @@ smp_boot_cpus(void) ...@@ -603,14 +603,22 @@ smp_boot_cpus(void)
smp_num_cpus = cpu_count; smp_num_cpus = cpu_count;
} }
/*
* Called by smp_init to release the blocking online cpus once they
* are all started.
*/
void __init void __init
smp_commence(void) smp_prepare_cpus(unsigned int max_cpus)
{
smp_boot_cpus();
}
int __devinit
__cpu_up(unsigned int cpu)
{
return cpu_online(cpu) ? 0 : -ENOSYS;
}
void __init
smp_cpus_done(unsigned int max_cpus)
{ {
/* smp_init sets smp_threads_ready -- that's enough. */ smp_threads_ready = 1;
mb(); mb();
} }
......
...@@ -58,6 +58,11 @@ SECTIONS ...@@ -58,6 +58,11 @@ SECTIONS
__initcall_end = .; __initcall_end = .;
} }
. = ALIGN(64);
__per_cpu_start = .;
.data.percpu : { *(.data.percpu) }
__per_cpu_end = .;
/* The initial task and kernel stack */ /* The initial task and kernel stack */
.data.init_thread ALIGN(2*8192) : { .data.init_thread ALIGN(2*8192) : {
__init_end = .; __init_end = .;
......
#ifndef __ALPHA_PERCPU_H
#define __ALPHA_PERCPU_H
#include <asm-generic/percpu.h>
#endif /* __ALPHA_PERCPU_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment