summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStafford Horne <shorne@gmail.com>2017-07-12 17:20:38 +0900
committerStafford Horne <shorne@gmail.com>2017-11-03 14:01:14 +0900
commitb441aab7aa0e15955c432736b08a218a6a4c77f0 (patch)
treec285dfe1d0331f01088161f7dca67f204f6fec5a
parent8e6d08e0a15e7d4d4b608b56597350d4cdd77710 (diff)
downloadop-kernel-dev-b441aab7aa0e15955c432736b08a218a6a4c77f0.zip
op-kernel-dev-b441aab7aa0e15955c432736b08a218a6a4c77f0.tar.gz
openrisc: fix initial preempt state for secondary cpu tasks
During SMP testing we were getting the below warning after booting the secondary cpu: [ 0.060000] BUG: scheduling while atomic: swapper/1/0/0x00000000 This change follows similar patterns from other architectures to start the schduler with preempt disabled. Signed-off-by: Stafford Horne <shorne@gmail.com>
-rw-r--r--arch/openrisc/include/asm/thread_info.h2
-rw-r--r--arch/openrisc/kernel/smp.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/arch/openrisc/include/asm/thread_info.h b/arch/openrisc/include/asm/thread_info.h
index 6e619a7..c229aa6 100644
--- a/arch/openrisc/include/asm/thread_info.h
+++ b/arch/openrisc/include/asm/thread_info.h
@@ -74,7 +74,7 @@ struct thread_info {
.task = &tsk, \
.flags = 0, \
.cpu = 0, \
- .preempt_count = 1, \
+ .preempt_count = INIT_PREEMPT_COUNT, \
.addr_limit = KERNEL_DS, \
.ksp = 0, \
}
diff --git a/arch/openrisc/kernel/smp.c b/arch/openrisc/kernel/smp.c
index fd72412..154c94a 100644
--- a/arch/openrisc/kernel/smp.c
+++ b/arch/openrisc/kernel/smp.c
@@ -128,6 +128,7 @@ asmlinkage __init void secondary_start_kernel(void)
local_irq_enable();
+ preempt_disable();
/*
* OK, it's off to the idle thread for us
*/
OpenPOWER on IntegriCloud