diff options
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/kernel/process.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/smp.c | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c index 6dce9d0b81f8..1cbc26b796ad 100644 --- a/arch/sh/kernel/process.c +++ b/arch/sh/kernel/process.c | |||
@@ -64,7 +64,9 @@ void default_idle(void) | |||
64 | cpu_sleep(); | 64 | cpu_sleep(); |
65 | } | 65 | } |
66 | 66 | ||
67 | preempt_enable_no_resched(); | ||
67 | schedule(); | 68 | schedule(); |
69 | preempt_disable(); | ||
68 | } | 70 | } |
69 | } | 71 | } |
70 | 72 | ||
diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c index 5ecefc02896a..59e49b18252c 100644 --- a/arch/sh/kernel/smp.c +++ b/arch/sh/kernel/smp.c | |||
@@ -112,7 +112,9 @@ int __cpu_up(unsigned int cpu) | |||
112 | 112 | ||
113 | int start_secondary(void *unused) | 113 | int start_secondary(void *unused) |
114 | { | 114 | { |
115 | unsigned int cpu = smp_processor_id(); | 115 | unsigned int cpu; |
116 | |||
117 | cpu = smp_processor_id(); | ||
116 | 118 | ||
117 | atomic_inc(&init_mm.mm_count); | 119 | atomic_inc(&init_mm.mm_count); |
118 | current->active_mm = &init_mm; | 120 | current->active_mm = &init_mm; |
@@ -120,6 +122,7 @@ int start_secondary(void *unused) | |||
120 | smp_store_cpu_info(cpu); | 122 | smp_store_cpu_info(cpu); |
121 | 123 | ||
122 | __smp_slave_init(cpu); | 124 | __smp_slave_init(cpu); |
125 | preempt_disable(); | ||
123 | per_cpu_trap_init(); | 126 | per_cpu_trap_init(); |
124 | 127 | ||
125 | atomic_inc(&cpus_booted); | 128 | atomic_inc(&cpus_booted); |