dect
/
linux-2.6
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
linux-2.6/arch/mips/include/asm
Jim Quinlan e97c5b6098 MIPS: Make irqflags.h functions preempt-safe for non-mipsr2 cpus
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 <jim2101024@gmail.com>
Cc: linux-mips@linux-mips.org
Cc: David Daney <ddaney.cavm@gmail.com>
Cc: Kevin Cernekee cernekee@gmail.com
Cc: Jim Quinlan <jim2101024@gmail.com>
Patchwork: https://patchwork.linux-mips.org/patch/4321/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2012-11-09 10:59:21 +01:00
..
dec Fix common misspellings 2011-03-31 11:26:23 -03:00
emma MIPS: EMMA2RH: Replace EMMA2RH_SW_IRQ_INTxx with EMMA2RH_SW_IRQ(n) 2010-08-05 13:26:04 +01:00
fw
ip32 net: meth: Add set_rx_mode hook to fix ICMPv6 neighbor discovery 2011-12-27 13:17:34 -05:00
lasat doc: fix broken references 2011-09-27 18:08:04 +02:00
mach-ar7 MIPS: AR7: Fix loops per jiffies on TNETD7200 devices 2010-12-16 18:10:56 +00:00
mach-ath79 MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-au1x00 MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-bcm47xx bcma: add boardinfo struct 2012-05-16 12:45:21 -04:00
mach-bcm63xx MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-cavium-octeon MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-cobalt MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-db1x00 MIPS: Alchemy: Merge PB1100/1500 support into DB1000 code. 2012-10-11 11:11:20 +02:00
mach-dec
mach-emma2rh
mach-generic MIPS: irq: Remove IRQF_DISABLED 2011-12-07 22:03:45 +00:00
mach-ip22 MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-ip27 MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-ip28 MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-ip32 MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-jazz MIPS: irq: Remove IRQF_DISABLED 2011-12-07 22:03:45 +00:00
mach-jz4740 MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-lantiq MIPS: lantiq: make use of __gpio_to_irq 2012-09-13 10:30:59 +02:00
mach-lasat
mach-loongson MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-loongson1 MIPS: Loongson 1B: Add board support 2012-07-25 16:17:24 +02:00
mach-malta MIPS: Enable cpu_has_clo_clz for MIPS Technologies' platforms 2011-07-25 17:26:55 +01:00
mach-netlogic MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-pnx833x UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
mach-pnx8550
mach-powertv MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-rc32434 MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-rm MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-sead3 MIPS: Add core files for MIPS SEAD-3 development platform. 2012-09-13 15:43:46 -05:00
mach-sibyte MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-tx39xx MIPS: Move FIXADDR_TOP into spaces.h 2011-07-25 17:26:53 +01:00
mach-tx49xx MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mach-vr41xx
mach-wrppmc
mach-yosemite MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
mips-boards Merge branch 'ralf-3.7' of git://git.linux-mips.org/pub/scm/sjhill/linux-sjhill into mips-for-linux-next 2012-09-28 16:29:55 +02:00
netlogic MIPS: Netlogic: Add IRQ mappings for more devices 2012-07-24 17:28:54 +02:00
octeon Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2012-10-09 16:08:04 +09:00
pci Fix common misspellings 2011-03-31 11:26:23 -03:00
pmc-sierra/msp71xx MIPS: Hardwire detection of DSP ASE Rev 2 for systems, as required. 2012-10-11 11:10:43 +02:00
sgi Fix common misspellings 2011-03-31 11:26:23 -03:00
sibyte UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
sn Fix common misspellings 2011-03-31 11:26:23 -03:00
txx9 Disintegrate asm/system.h for MIPS 2012-03-28 18:30:02 +01:00
vr41xx Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
xtalk
Kbuild UAPI: Place comments in empty arch Kbuilds to make them non-empty 2012-10-17 12:31:16 +01:00
abi.h MIPS: Move signal trampolines off of the stack. 2010-04-12 17:26:15 +01:00
addrspace.h
amon.h MIPS: CMP: activate CMP support 2009-07-03 15:45:26 +01:00
arch_hweight.h MIPS: Create and use asm/arch_hweight.h 2010-08-05 13:26:02 +01:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asm.h
asmmacro-32.h update David Miller's old email address 2011-04-06 06:19:38 -07:00
asmmacro-64.h update David Miller's old email address 2011-04-06 06:19:38 -07:00
asmmacro.h MIPS: Use EI/DI for MIPS R2. 2008-12-12 18:12:23 +00:00
atomic.h Improve atomic.h robustness 2012-10-11 11:02:36 +02:00
barrier.h Disintegrate asm/system.h for MIPS 2012-03-28 18:30:02 +01:00
bcache.h
bitops.h MIPS: Remove irqflags.h dependency from bitops.h 2012-11-09 10:59:10 +01:00
bmips.h MIPS: BMIPS: Introduce bmips.h 2011-12-07 22:03:18 +00:00
bootinfo.h MIPS: Handle initmem in systems with kernel not in add_memory_region() mem 2011-12-07 22:03:45 +00:00
branch.h MIPS Kprobes: Refactor branch emulation 2011-12-07 22:04:03 +00:00
break.h MIPS: kprobe: Add support. 2010-08-05 13:26:29 +01:00
bug.h MIPS: Convert BUG() to use unreachable() 2009-12-05 09:10:12 -08:00
bugs.h MIPS: Build fix - include <linux/smp.h> into all smp_processor_id() users. 2009-06-24 18:34:39 +01:00
cache.h MIPS: Rename .data..mostly and properly handle it in linker script 2011-05-10 18:15:24 +01:00
cacheflush.h MIPS: cache: Provide cache flush operations for XFS 2011-10-20 15:00:18 +01:00
cacheops.h MIPS: RM7000: Add support for tertiary cache 2010-08-05 13:26:06 +01:00
cevt-r4k.h MIPS: MSP: Fix build error 2011-05-10 18:15:24 +01:00
checksum.h MIPS: uaccess: Switch lock annotations to might_fault(). 2009-05-14 13:50:28 +01:00
clkdev.h MIPS: add clkdev.h 2012-05-15 17:49:20 +02:00
clock.h MIPS: Loongson 2: Sort out clock managment. 2012-08-01 18:10:06 +02:00
cmp.h
cmpxchg.h MIPS: cmpxchg.h: Add missing include 2012-07-19 11:23:43 +02:00
compat-signal.h compat: move compat_siginfo_t definition to asm/compat.h 2012-10-06 03:05:16 +09:00
compat.h MIPS: compat: Implement is_compat_task() by testing for 32-bit address space. 2012-11-09 10:58:29 +01:00
compiler.h
cop2.h MIPS: Don't place cu2 notifiers in __cpuinitdata 2010-10-04 18:34:00 +01:00
cpu-features.h MIPS: Add detection of DSP ASE Revision 2. 2012-10-11 11:05:03 +02:00
cpu-info.h MIPS: Probe for presence of KScratch registers. 2011-01-18 19:30:22 +01:00
cpu.h MIPS: Add detection of DSP ASE Revision 2. 2012-10-11 11:05:03 +02:00
cputime.h
current.h MIPS: Use generic current.h 2010-02-27 12:53:27 +01:00
debug.h
delay.h MIPS: Make __{,n,u}delay declarations match definitions and generic delay.h 2012-10-16 22:20:03 +02:00
device.h MIPS: Convert DMA to use dma-mapping-common.h 2010-10-29 19:08:31 +01:00
div64.h MIPS: Rewrite <asm/div64.h> to work with gcc 4.4.0. 2009-05-14 13:50:29 +01:00
dma-mapping.h MIPS: adapt for dma_map_ops changes 2012-03-28 16:36:32 +02:00
dma.h Disintegrate asm/system.h for MIPS 2012-03-28 18:30:02 +01:00
ds1287.h Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
dsp.h
edac.h
elf.h MIPS: Don't clobber personality high bits. 2010-12-16 18:10:54 +00:00
emergency-restart.h
errno.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
exec.h Disintegrate asm/system.h for MIPS 2012-03-28 18:30:02 +01:00
fb.h
fixmap.h MIPS: Move FIXADDR_TOP into spaces.h 2011-07-25 17:26:53 +01:00
floppy.h treewide: fix potentially dangerous trailing ';' in #defined values/expressions 2011-07-21 14:10:00 +02:00
fpregdef.h
fpu.h MIPS: Cleanup signal code initialization 2009-12-17 01:57:32 +00:00
fpu_emulator.h MIPS: Fix build breakage if CONFIG_DEBUG_FS is enabled. 2010-04-12 17:26:08 +01:00
ftrace.h MIPS: Loongson: Change the Email address of Wu Zhangjin 2010-02-27 12:53:12 +01:00
futex.h futex: Sanitize futex ops argument types 2011-03-11 12:23:31 +01:00
gcmpregs.h MIPS: GIC: Random fixes and enhancements. 2009-11-02 12:00:06 +01:00
gic.h MIPS: Code clean-ups for the GIC. 2012-09-13 15:43:48 -05:00
gio_device.h MIPS: GIO bus support for SGI IP22/28 2011-12-07 22:03:44 +00:00
gpio.h
gt64120.h MIPS: GT64120: Remove useless inclusion of clocksource.h. 2011-07-20 23:12:10 +01:00
hardirq.h MIPS: Convert to asm-generic/hardirq.h 2009-09-17 20:07:48 +02:00
hazards.h MIPS: BMIPS: Add CFLAGS, Makefile entries for BMIPS 2011-12-07 22:03:17 +00:00
highmem.h highmem: kill all __kmap_atomic() 2012-03-20 21:48:30 +08:00
hugetlb.h mm: hugetlb: add arch hook for clearing page flags before entering pool 2012-10-09 16:22:24 +09:00
hw_irq.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
i8259.h MIPS: i8259: Convert IRQ controller lock to raw spinlock. 2010-02-27 12:53:38 +01:00
ide.h
inst.h MIPS: Fix typo multipy -> multiply 2012-07-19 11:23:43 +02:00
io.h MIPS: Remove irqflags.h dependency from bitops.h 2012-11-09 10:59:10 +01:00
irq.h MIPS: Provide a symbol for the legacy performance counter interrupt. 2012-07-06 23:56:00 +02:00
irq_cpu.h
irq_gt641xx.h Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
irq_regs.h
irqflags.h MIPS: Make irqflags.h functions preempt-safe for non-mipsr2 cpus 2012-11-09 10:59:21 +01:00
isadep.h
jazz.h
jazzdma.h
jump_label.h static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]() 2012-02-24 10:05:59 +01:00
kdebug.h MIPS: kprobe: Add support. 2010-08-05 13:26:29 +01:00
kexec.h
kgdb.h kgdb,mips: Individual register get/set for mips 2010-08-05 09:22:21 -05:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kprobes.h MIPS Kprobes: Support branch instructions probing 2011-12-07 22:04:03 +00:00
kspd.h MIPS: MT: Remove kspd. 2012-10-11 11:14:12 +02:00
linkage.h
local.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
m48t37.h
mc146818-time.h set_rtc_mmss: show warning message only once 2011-01-13 08:03:07 -08:00
mc146818rtc.h
mips_machine.h MIPS: Add generic support for multiple machines within a single kernel 2011-01-18 19:30:21 +01:00
mips_mt.h
mipsmtregs.h MIPS: SMTC: Support for Multi-threaded FPUs 2012-07-23 13:55:53 +01:00
mipsprom.h MIPS: SNI: Fix conflicting wrapper symbols for headers. 2011-10-20 15:00:18 +01:00
mipsregs.h MIPS: Add detection of DSP ASE Revision 2. 2012-10-11 11:05:03 +02:00
mmu.h MIPS: Preliminary VDSO 2010-04-12 17:26:14 +01:00
mmu_context.h MIPS: Remove get_current_pgd(). 2012-04-27 17:16:29 +01:00
mmzone.h
module.h Make most arch asm/module.h files use asm-generic/module.h 2012-09-28 14:31:03 +09:30
msc01_ic.h MIPS: Nuke trailing blank lines 2010-02-27 12:53:14 +01:00
mutex.h
nile4.h MIPS: Nuke trailing blank lines 2010-02-27 12:53:14 +01:00
paccess.h Fix common misspellings 2011-03-31 11:26:23 -03:00
page.h MIPS: Remove temporary kludge from <asm/page.h> 2012-02-20 18:33:18 +01:00
parport.h MIPS: Use generic parport.h 2010-02-27 12:53:27 +01:00
pci.h MIPS: pci: parse memory ranges from devicetree 2012-05-15 17:49:19 +02:00
percpu.h
perf_event.h MIPS, Perf-events: Work with irq_work 2011-03-14 21:07:26 +01:00
pgalloc.h MIPS: Two-level pagetables for 64-bit kernels with 64KB pages. 2010-02-27 12:53:03 +01:00
pgtable-32.h Merge branch 'next/generic' into mips-for-linux-next 2012-01-11 15:41:47 +01:00
pgtable-64.h MIPS: Hugetlbfs: Handle huge pages correctly in pmd_bad() 2012-10-17 01:01:12 +02:00
pgtable-bits.h MIPS: Replace 'kernel_uses_smartmips_rixi' with 'cpu_has_rixi'. 2012-09-13 17:00:34 -05:00
pgtable.h MIPS: Replace 'kernel_uses_smartmips_rixi' with 'cpu_has_rixi'. 2012-09-13 17:00:34 -05:00
pmon.h
prefetch.h MIPS: NEC VR5500 processor support fixup 2009-03-11 21:11:07 +01:00
processor.h fork: move the real prepare_to_copy() users to arch_dup_task_struct() 2012-05-16 15:16:26 -07:00
prom.h MIPS: Prune some target specific code out of prom.c 2012-07-23 13:54:52 +01:00
ptrace.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
r4k-timer.h MIPS: Synchronize MIPS count one CPU at a time 2012-08-17 10:57:28 +02:00
r4kcache.h update David Miller's old email address 2011-04-06 06:19:38 -07:00
reboot.h
reg.h MIPS: 64-bit: Fix o32 core dump 2009-07-03 15:45:27 +01:00
regdef.h MIPS: O32: Provide definition of registers ta0 .. ta3. 2011-10-24 23:34:27 +01:00
rm9k-ocd.h
rtlx.h
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp.h MIPS: Fix TIF_32BIT undefined problem when seccomp is disabled 2009-03-13 23:07:59 +01:00
sections.h
segment.h
serial.h MIPS: Use generic serial.h 2010-02-27 12:53:27 +01:00
setup.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
sgialib.h update David Miller's old email address 2011-04-06 06:19:38 -07:00
sgiarcs.h update David Miller's old email address 2011-04-06 06:19:38 -07:00
shmparam.h
sigcontext.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
siginfo.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
signal.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
sim.h
smp-ops.h MIPS: ARC: Fix build of firmware library on uniprocessor. 2011-07-20 23:12:11 +01:00
smp.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
smtc.h MIPS: SMTC: Support for Multi-threaded FPUs 2012-07-23 13:55:53 +01:00
smtc_ipi.h MIPS: SMTC: Avoid queing multiple reschedule IPIs 2009-11-02 12:00:06 +01:00
smtc_proc.h
smvp.h
sni.h
socket.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
sparsemem.h MIPS: Handle huge pages with 64KB base page size. 2012-05-15 17:47:02 +02:00
spinlock.h MIPS: Microoptimize arch_{read,write}_lock 2011-03-25 18:45:13 +01:00
spinlock_types.h MIPS: Optimize spinlocks. 2010-02-27 12:53:42 +01:00
spram.h MIPS: SPRAM: Clean up support code a little 2009-11-02 12:00:05 +01:00
stackframe.h MIPS: Don't clobber CP0_STATUS value for CONFIG_MIPS_MT_SMTC 2011-09-21 17:54:02 +02:00
stacktrace.h MIPS: Add new unwind_stack variant 2011-06-15 14:35:33 +02:00
string.h
suspend.h PM / Hibernate: Remove arch_prepare_suspend() 2011-05-24 23:35:55 +02:00
switch_to.h MIPS: Fix race condition with FPU thread task flag during context switch. 2012-07-19 11:23:43 +02:00
termios.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
thread_info.h MIPS: compat: Delete now unused TIF_32BIT. 2012-11-09 10:58:36 +01:00
time.h mips: convert to clocksource_register_hz/khz 2011-02-21 13:33:50 -08:00
timex.h
titan_dep.h
tlb.h
tlbdebug.h
tlbflush.h
tlbmisc.h MIPS: Fix Jazz 64-bit build error. 2011-12-07 22:01:45 +00:00
topology.h
traps.h MIPS: Introduce board_cache_error_setup() hook. 2012-05-16 23:34:33 +02:00
txx9irq.h
txx9pio.h
txx9tmr.h
types.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
uaccess.h MIPS: Unify memcpy.S and memcpy-inatomic.S 2012-07-23 13:55:55 +01:00
uasm.h MIPS: uasm: Add INS and EXT instructions. 2012-09-13 15:43:53 -05:00
ucontext.h MIPS: Use generic ucontext.h 2010-02-27 12:53:27 +01:00
unaligned.h MIPS: Avoid spurious make includecheck message 2009-09-30 21:47:02 +02:00
unistd.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
user.h
vdso.h MIPS: Preliminary VDSO 2010-04-12 17:26:14 +01:00
vga.h
vpe.h
war.h Fix common misspellings 2011-03-31 11:26:23 -03:00
watch.h
wbflush.h
xor.h