提交 e5d77754 编写于 作者: M Maciej W. Rozycki 提交者: Ralf Baechle

[MIPS] R3000 setup for kernel_thread()

 Match the R4000 semantics for the initial state of interrupt/kernel
status register flags for the R3000 in kernel_thread().
Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
上级 0f5c9064
...@@ -231,8 +231,8 @@ long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) ...@@ -231,8 +231,8 @@ long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
regs.cp0_epc = (unsigned long) kernel_thread_helper; regs.cp0_epc = (unsigned long) kernel_thread_helper;
regs.cp0_status = read_c0_status(); regs.cp0_status = read_c0_status();
#if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX) #if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
regs.cp0_status &= ~(ST0_KUP | ST0_IEC); regs.cp0_status = (regs.cp0_status & ~(ST0_KUP | ST0_IEP | ST0_IEC)) |
regs.cp0_status |= ST0_IEP; ((regs.cp0_status & (ST0_KUC | ST0_IEC)) << 2);
#else #else
regs.cp0_status |= ST0_EXL; regs.cp0_status |= ST0_EXL;
#endif #endif
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册