|
@@ -68,7 +68,7 @@ static DECLARE_COMPLETION(cpu_running);
|
|
/*
|
|
/*
|
|
* "thread" is assumed to be a valid Meta hardware thread ID.
|
|
* "thread" is assumed to be a valid Meta hardware thread ID.
|
|
*/
|
|
*/
|
|
-int __cpuinit boot_secondary(unsigned int thread, struct task_struct *idle)
|
|
|
|
|
|
+int boot_secondary(unsigned int thread, struct task_struct *idle)
|
|
{
|
|
{
|
|
u32 val;
|
|
u32 val;
|
|
|
|
|
|
@@ -118,11 +118,9 @@ int __cpuinit boot_secondary(unsigned int thread, struct task_struct *idle)
|
|
* If the cache partition has changed, prints a message to the log describing
|
|
* If the cache partition has changed, prints a message to the log describing
|
|
* those changes.
|
|
* those changes.
|
|
*/
|
|
*/
|
|
-static __cpuinit void describe_cachepart_change(unsigned int thread,
|
|
|
|
- const char *label,
|
|
|
|
- unsigned int sz,
|
|
|
|
- unsigned int old,
|
|
|
|
- unsigned int new)
|
|
|
|
|
|
+static void describe_cachepart_change(unsigned int thread, const char *label,
|
|
|
|
+ unsigned int sz, unsigned int old,
|
|
|
|
+ unsigned int new)
|
|
{
|
|
{
|
|
unsigned int lor1, land1, gor1, gand1;
|
|
unsigned int lor1, land1, gor1, gand1;
|
|
unsigned int lor2, land2, gor2, gand2;
|
|
unsigned int lor2, land2, gor2, gand2;
|
|
@@ -170,7 +168,7 @@ static __cpuinit void describe_cachepart_change(unsigned int thread,
|
|
* Ensures that coherency is enabled and that the threads share the same cache
|
|
* Ensures that coherency is enabled and that the threads share the same cache
|
|
* partitions.
|
|
* partitions.
|
|
*/
|
|
*/
|
|
-static __cpuinit void setup_smp_cache(unsigned int thread)
|
|
|
|
|
|
+static void setup_smp_cache(unsigned int thread)
|
|
{
|
|
{
|
|
unsigned int this_thread, lflags;
|
|
unsigned int this_thread, lflags;
|
|
unsigned int dcsz, dcpart_this, dcpart_old, dcpart_new;
|
|
unsigned int dcsz, dcpart_this, dcpart_old, dcpart_new;
|
|
@@ -215,7 +213,7 @@ static __cpuinit void setup_smp_cache(unsigned int thread)
|
|
icpart_old, icpart_new);
|
|
icpart_old, icpart_new);
|
|
}
|
|
}
|
|
|
|
|
|
-int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *idle)
|
|
|
|
|
|
+int __cpu_up(unsigned int cpu, struct task_struct *idle)
|
|
{
|
|
{
|
|
unsigned int thread = cpu_2_hwthread_id[cpu];
|
|
unsigned int thread = cpu_2_hwthread_id[cpu];
|
|
int ret;
|
|
int ret;
|
|
@@ -268,7 +266,7 @@ static DECLARE_COMPLETION(cpu_killed);
|
|
/*
|
|
/*
|
|
* __cpu_disable runs on the processor to be shutdown.
|
|
* __cpu_disable runs on the processor to be shutdown.
|
|
*/
|
|
*/
|
|
-int __cpuexit __cpu_disable(void)
|
|
|
|
|
|
+int __cpu_disable(void)
|
|
{
|
|
{
|
|
unsigned int cpu = smp_processor_id();
|
|
unsigned int cpu = smp_processor_id();
|
|
|
|
|
|
@@ -299,7 +297,7 @@ int __cpuexit __cpu_disable(void)
|
|
* called on the thread which is asking for a CPU to be shutdown -
|
|
* called on the thread which is asking for a CPU to be shutdown -
|
|
* waits until shutdown has completed, or it is timed out.
|
|
* waits until shutdown has completed, or it is timed out.
|
|
*/
|
|
*/
|
|
-void __cpuexit __cpu_die(unsigned int cpu)
|
|
|
|
|
|
+void __cpu_die(unsigned int cpu)
|
|
{
|
|
{
|
|
if (!wait_for_completion_timeout(&cpu_killed, msecs_to_jiffies(1)))
|
|
if (!wait_for_completion_timeout(&cpu_killed, msecs_to_jiffies(1)))
|
|
pr_err("CPU%u: unable to kill\n", cpu);
|
|
pr_err("CPU%u: unable to kill\n", cpu);
|
|
@@ -311,7 +309,7 @@ void __cpuexit __cpu_die(unsigned int cpu)
|
|
* Note that we do not return from this function. If this cpu is
|
|
* Note that we do not return from this function. If this cpu is
|
|
* brought online again it will need to run secondary_startup().
|
|
* brought online again it will need to run secondary_startup().
|
|
*/
|
|
*/
|
|
-void __cpuexit cpu_die(void)
|
|
|
|
|
|
+void cpu_die(void)
|
|
{
|
|
{
|
|
local_irq_disable();
|
|
local_irq_disable();
|
|
idle_task_exit();
|
|
idle_task_exit();
|
|
@@ -326,7 +324,7 @@ void __cpuexit cpu_die(void)
|
|
* Called by both boot and secondaries to move global data into
|
|
* Called by both boot and secondaries to move global data into
|
|
* per-processor storage.
|
|
* per-processor storage.
|
|
*/
|
|
*/
|
|
-void __cpuinit smp_store_cpu_info(unsigned int cpuid)
|
|
|
|
|
|
+void smp_store_cpu_info(unsigned int cpuid)
|
|
{
|
|
{
|
|
struct cpuinfo_metag *cpu_info = &per_cpu(cpu_data, cpuid);
|
|
struct cpuinfo_metag *cpu_info = &per_cpu(cpu_data, cpuid);
|
|
|
|
|