Loading arch/sh/include/asm/processor.h +4 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,10 @@ struct sh_cpuinfo { struct tlb_info itlb; struct tlb_info dtlb; #ifdef CONFIG_SMP struct task_struct *idle; #endif unsigned long flags; } __attribute__ ((aligned(L1_CACHE_BYTES))); Loading arch/sh/kernel/smp.c +9 −4 Original line number Diff line number Diff line Loading @@ -125,12 +125,17 @@ int __cpuinit __cpu_up(unsigned int cpu) struct task_struct *tsk; unsigned long timeout; tsk = cpu_data[cpu].idle; if (!tsk) { tsk = fork_idle(cpu); if (IS_ERR(tsk)) { printk(KERN_ERR "Failed forking idle task for cpu %d\n", cpu); pr_err("Failed forking idle task for cpu %d\n", cpu); return PTR_ERR(tsk); } cpu_data[cpu].idle = tsk; } per_cpu(cpu_state, cpu) = CPU_UP_PREPARE; /* Fill in data in head.S for secondary cpus */ Loading Loading
arch/sh/include/asm/processor.h +4 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,10 @@ struct sh_cpuinfo { struct tlb_info itlb; struct tlb_info dtlb; #ifdef CONFIG_SMP struct task_struct *idle; #endif unsigned long flags; } __attribute__ ((aligned(L1_CACHE_BYTES))); Loading
arch/sh/kernel/smp.c +9 −4 Original line number Diff line number Diff line Loading @@ -125,12 +125,17 @@ int __cpuinit __cpu_up(unsigned int cpu) struct task_struct *tsk; unsigned long timeout; tsk = cpu_data[cpu].idle; if (!tsk) { tsk = fork_idle(cpu); if (IS_ERR(tsk)) { printk(KERN_ERR "Failed forking idle task for cpu %d\n", cpu); pr_err("Failed forking idle task for cpu %d\n", cpu); return PTR_ERR(tsk); } cpu_data[cpu].idle = tsk; } per_cpu(cpu_state, cpu) = CPU_UP_PREPARE; /* Fill in data in head.S for secondary cpus */ Loading