aboutsummaryrefslogtreecommitdiff
path: root/arch/mips/lib/mips-atomic.c
AgeCommit message (Collapse)AuthorFilesLines
2020-01-23MIPS: Make DIEI support as a config optionJiaxun Yang1-2/+2
DI(Disable Interrupt) and EI(Enable Interrupt) instructions is required by MIPSR2/MIPSR6, however, it appears to be buggy on some processors such as Loongson-3A1000. Thus we make it as a config option to allow disable it at compile time with CPU_MIPSR2 selected. Signed-off-by: Jiaxun Yang <[email protected]> Signed-off-by: Paul Burton <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected]
2016-01-22MIPS: Cleanup the unused __arch_local_irq_restore() functionHuacai Chen1-29/+1
In history, __arch_local_irq_restore() is only used by SMTC. However, SMTC support has been removed since 3.16, this patch remove the unused function. Signed-off-by: Huacai Chen <[email protected]> Cc: Aurelien Jarno <[email protected]> Cc: Steven J. Hill <[email protected]> Cc: Fuxin Zhang <[email protected]> Cc: Zhangjin Wu <[email protected]> Cc: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/12159/ Signed-off-by: Ralf Baechle <[email protected]>
2015-02-17MIPS: asm: irqflags: Add MIPS R6 related definitionsMarkos Chandras1-1/+1
Add the MIPS R6 related definitions to the IRQ related macros Signed-off-by: Markos Chandras <[email protected]>
2014-11-24MIPS: lib: mips-atomic.c: Remove obsolete ifdeferyMarkos Chandras1-20/+0
Having #ifdefs just to guard comments is not really helpful so drop them. Moreover, the code wasn't really reached anyway since there is a #ifndef CONFIG_CPU_MIPSR2 on the top of the file. Signed-off-by: Markos Chandras <[email protected]> Cc: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/8513/ Signed-off-by: Ralf Baechle <[email protected]>
2014-05-24MIPS: MT: Remove SMTC supportRalf Baechle1-40/+6
Nobody is maintaining SMTC anymore and there also seems to be no userbase. Which is a pity - the SMTC technology primarily developed by Kevin D. Kissell <[email protected]> is an ingenious demonstration for the MT ASE's power and elegance. Based on Markos Chandras <[email protected]> patch https://patchwork.linux-mips.org/patch/6719/ which while very similar did no longer apply cleanly when I tried to merge it plus some additional post-SMTC cleanup - SMTC was a feature as tricky to remove as it was to merge once upon a time. Signed-off-by: Ralf Baechle <[email protected]>
2013-04-11MIPS: Get rid of the use of .macro in C code.Ralf Baechle1-65/+84
It fails with LTO and probably has always been a fragile. Signed-off-by: Ralf Baechle <[email protected]>
2012-11-23MIPS: Fix crash that occurs when function tracing is enabledAl Cooper1-4/+4
A recent patch changed some irq routines from inlines to functions. These routines are called by the tracer code. Now that they're functions, if they are compiled for function tracing they will call the tracer and crash the system due to infinite recursion. The fix disables tracing in these functions by using "notrace" in the function definition. Signed-off-by: Al Cooper <[email protected]> Reviewed-by: David Daney <[email protected]> Pathchwork: https://patchwork.linux-mips.org/patch/4564/ Signed-off-by: Ralf Baechle <[email protected]>
2012-11-09MIPS: Make irqflags.h functions preempt-safe for non-mipsr2 cpusJim Quinlan1-0/+176
For non MIPSr2 processors, such as the BMIPS 5000, calls to arch_local_irq_disable() and others may be preempted, and in doing so a stale value may be restored to c0_status. This fix disables preemption for such processors prior to the call and enables it after the call. Those functions that needed this fix have been "outlined" to mips-atomic.c, as they are no longer good candidates for inlining. This bug was observed in a BMIPS 5000, occuring once every few hours in a continuous reboot test. It was traced to the write_lock_irq() function which was being invoked in release_task() in exit.c. By placing a number of "nops" inbetween the mfc0/mtc0 pair in arch_local_irq_disable(), which is called by write_lock_irq(), we were able to greatly increase the occurance of this bug. Similarly, the application of this commit silenced the bug. Signed-off-by: Jim Quinlan <[email protected]> Cc: [email protected] Cc: David Daney <[email protected]> Cc: Kevin Cernekee [email protected] Cc: Jim Quinlan <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/4321/ Signed-off-by: Ralf Baechle <[email protected]>