linux/include/asm-mips
Ralf Baechle 4b3e975e4a [MIPS] Fix scheduling latency issue on 24K, 34K and 74K cores
The idle loop goes to sleep using the WAIT instruction if !need_resched().
This has is suffering from from a race condition that if if just after
need_resched has returned 0 an interrupt might set TIF_NEED_RESCHED but
we've just completed the test so go to sleep anyway.  This would be
trivial to fix by just disabling interrupts during that sequence as in:

        local_irq_disable();
        if (!need_resched())
                __asm__("wait");
        local_irq_enable();

but the processor architecture leaves it undefined if a processor calling
WAIT with interrupts disabled will ever restart its pipeline and indeed
some processors have made use of the freedom provided by the architecture
definition.  This has been resolved and the Config7.WII bit indicates that
the use of WAIT is safe on 24K, 24KE and 34K cores.  It also is safe on
74K starting revision 2.1.0 so enable the use of WAIT with interrupts
disabled for 74K based on a c0_prid of at least that.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2007-07-06 16:17:11 +01:00
..
arc Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
ddb5xxx [MIPS] Make I8259A_IRQ_BASE customizable 2007-02-06 16:53:09 +00:00
dec [TC] TURBOchannel support for the DECstation 2007-02-09 16:23:16 +00:00
emma2rh [MIPS] Define MIPS_CPU_IRQ_BASE in generic header 2007-02-06 16:53:08 +00:00
ip32 Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
jmr3927 [MIPS] JMR3927 cleanup 2007-04-27 16:20:23 +01:00
lasat [MIPS] Fix and cleanup the mess that a dozen prom_printf variants are. 2007-03-04 19:02:37 +00:00
mach-atlas [MIPS] SNI: Fix mc146818_decode_year 2007-03-04 19:02:31 +00:00
mach-au1x00 au1550 SPI controller driver 2007-05-08 11:15:16 -07:00
mach-cobalt [MIPS] Add extern cobalt_board_id 2007-05-11 14:28:32 +01:00
mach-db1x00 [PATCH] Au1550/1200: add missing PSC #define's, make OSS driver use the proper ones 2006-06-23 07:42:56 -07:00
mach-dec [PATCH] char/rtc: Handle memory-mapped chips properly 2006-07-10 13:24:25 -07:00
mach-emma2rh [MIPS] Define MIPS_CPU_IRQ_BASE in generic header 2007-02-06 16:53:08 +00:00
mach-ev64120 [MIPS] Add UART IRQ number for EV64120 2006-10-01 23:16:59 +01:00
mach-excite [MIPS] s/__ASSEMBLER__/__ASSEMBLY__/ for clarity sake. 2006-09-27 13:37:57 +01:00
mach-generic [MIPS] DMA: Fix a bunch of warnings due to missing inline keywords. 2007-03-04 19:02:39 +00:00
mach-ip22 Merge git://git.infradead.org/hdrcleanup-2.6 2006-06-20 15:10:08 -07:00
mach-ip27 [MIPS] IP27, IP35: Fix warnings. 2007-03-17 01:03:24 +00:00
mach-ip32 [MIPS] Fix include wrapper symbol definitions in IP32 code. 2007-07-04 15:53:15 +01:00
mach-jazz [MIPS] Unify dma-{coherent,noncoherent.ip27,ip32} 2007-02-13 22:40:50 +00:00
mach-jmr3927 [MIPS] Convert to RTC-class ds1742 driver 2007-03-04 19:02:34 +00:00
mach-lasat
mach-mips [MIPS] SNI: Fix mc146818_decode_year 2007-03-04 19:02:31 +00:00
mach-ocelot
mach-ocelot3 [MIPS] Use the proper technical term for naming some of the cache macros. 2006-07-13 21:26:04 +01:00
mach-pb1x00 Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
mach-pnx8550 [MIPS] PNX8550 fixups 2006-10-04 18:06:15 +01:00
mach-qemu [MIPS] Qemu does not have D-cache aliases 2006-09-27 13:37:49 +01:00
mach-rm [MIPS] RM: It should be #ifdef CONFIG_FOO not #if CONFIG_FOO ... 2007-03-04 19:02:38 +00:00
mach-sibyte [MIPS] Use the proper technical term for naming some of the cache macros. 2006-07-13 21:26:04 +01:00
mach-sim [MIPS] Use the proper technical term for naming some of the cache macros. 2006-07-13 21:26:04 +01:00
mach-vr41xx [MIPS] Make I8259A_IRQ_BASE customizable 2007-02-06 16:53:09 +00:00
mach-wrppmc [MIPS] Wind River 4KC PPMC Eval Board Support 2006-06-19 17:39:18 +01:00
mach-yosemite [MIPS] Use the proper technical term for naming some of the cache macros. 2006-07-13 21:26:04 +01:00
mips-boards [MIPS] Don't drag a platform specific header into generic arch code. 2007-06-20 22:27:10 +01:00
pci [MIPS] SN: include asm/sn/types.h for nasid_t. 2006-06-19 17:39:24 +01:00
sgi Convert SGI IP22 and specific drivers to platform_device. 2007-05-11 17:00:29 +01:00
sibyte [MIPS] Updated Sibyte headers 2007-04-27 16:20:24 +01:00
sn [MIPS] IP27: Move definition of nic_t to its sole user. 2006-12-12 01:46:24 +00:00
tx4927 Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
tx4938 fix file specification in comments 2006-10-03 23:01:26 +02:00
vr41xx [MIPS] Make I8259A_IRQ_BASE customizable 2007-02-06 16:53:09 +00:00
xtalk
8253pit.h
a.out.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
abi.h [MIPS] signals: Share even more code. 2007-02-18 21:31:35 +00:00
addrspace.h [MIPS] 64-bit TO_PHYS_MASK macro for RM9000 processors 2007-07-06 16:17:10 +01:00
asm.h [MIPS] 16K & 64K page size fixes 2006-11-01 17:46:09 +00:00
asmmacro-32.h [MIPS] Fix fpu_save_double on 64-bit. 2006-06-19 17:39:13 +01:00
asmmacro-64.h [MIPS] Fix fpu_save_double on 64-bit. 2006-06-19 17:39:13 +01:00
asmmacro.h [MIPS] Remove duplicate fpu enable hazard code. 2007-06-06 19:34:31 +01:00
atomic.h [MIPS] Fix build error in atomic64_cmpxchg 2007-05-11 14:28:33 +01:00
auxvec.h [PATCH] auxiliary vector cleanups 2005-09-07 16:57:21 -07:00
barrier.h [MIPS] Cleanup memory barriers for weakly ordered systems. 2006-12-04 22:43:14 +00:00
bcache.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
bitops.h [MIPS] Remove a duplicated local variable in test_and_clear_bit() 2007-06-26 19:57:33 +02:00
bootinfo.h [MIPS] Remove Momenco Jaguar ATX support 2007-05-11 14:28:31 +01:00
branch.h
break.h Allocate break code 513 to KDB. 2005-10-29 19:30:34 +01:00
bug.h [MIPS] Fix BUG(), BUG_ON() handling 2007-04-20 14:58:37 +01:00
bugs.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
byteorder.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
cache.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
cachectl.h
cacheflush.h [MIPS] Remove unused argument from kunmap_coherent(). 2007-04-27 16:20:24 +01:00
cacheops.h
checksum.h [MIPS] Fix wrong checksum for split TCP packets on 64-bit MIPS 2007-04-20 14:58:37 +01:00
compat-signal.h [MIPS] use compat_siginfo in rt_sigframe_n32 2007-06-26 19:57:33 +02:00
compat.h [MIPS] compat.h uses struct pt_regs so needs to include ptrace.h. 2006-12-12 01:46:24 +00:00
compiler.h
cpu-features.h [MIPS] FPU ownership management & preemption fixes 2007-03-17 01:03:26 +00:00
cpu-info.h [MIPS] FPU ownership management & preemption fixes 2007-03-17 01:03:26 +00:00
cpu.h [MIPS] Add macros to encode processor revisions. 2007-07-06 16:17:11 +01:00
cputime.h
current.h
debug.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
delay.h [MIPS] Make MIPS udelay() preempt safe under DEBUG_PREEMPT 2007-03-24 17:01:49 +00:00
device.h Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
div64.h [NET]: div64_64 consolidate (rev3) 2007-04-25 22:23:33 -07:00
dma-mapping.h [MIPS] Don't claim we support dma_declare_coherent_memory - we don't. 2007-02-13 22:40:50 +00:00
dma.h [MIPS] ISA: Fix typo 2007-03-08 01:10:30 +00:00
ds1216.h [MIPS] Support for several more SNI RM models. 2007-02-18 21:31:37 +00:00
ds1286.h
dsp.h MIPS: DSP: Set all register masks to 0x3ff. 2006-01-10 13:39:04 +00:00
elf.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
emergency-restart.h [PATCH] Add emergency_restart() 2005-07-26 14:35:41 -07:00
errno.h Delete duplicate definitions. 2005-11-07 18:05:40 +00:00
fcntl.h [MIPS] Remove F_SETSIG and F_GETSIG in favor of the asm-generic definitions. 2006-09-27 13:37:48 +01:00
fixmap.h [MIPS] Fix aliasing bug in copy_to_user_page / copy_from_user_page 2006-10-21 23:17:35 +01:00
floppy.h
fpregdef.h [PATCH] mips: nuke trailing whitespace 2005-09-05 00:06:07 -07:00
fpu_emulator.h [MIPS] Unify mips_fpu_soft_struct and mips_fpu_hard_structs. 2006-06-19 17:39:18 +01:00
fpu.h [MIPS] FPU hazard handling 2007-05-11 14:28:31 +01:00
futex.h [PATCH] mm: pagefault_{disable,enable}() 2006-12-07 08:39:21 -08:00
gdb-stub.h
gfx.h
gt64120.h [MIPS] Rewrite GALILEO_INL/GALILEO_OUTL to GT_READ/GT_WRITE 2006-11-30 01:14:43 +00:00
gt64240.h
hardirq.h
hazards.h [MIPS] SB1: Build fix. 2007-05-11 14:28:31 +01:00
highmem.h [MIPS] Remove LIMITED_DMA support 2007-05-11 14:28:31 +01:00
hw_irq.h [PATCH] genirq: add ->retrigger() irq op to consolidate hw_irq_resend() 2006-06-29 10:26:23 -07:00
i8259.h [MIPS] Make I8259A_IRQ_BASE customizable 2007-02-06 16:53:09 +00:00
ide.h
inst.h [MIPS] Fix rdhwr_op definition. 2006-07-13 21:26:08 +01:00
inventory.h Reformatting, remove debugging code. 2005-10-29 19:30:57 +01:00
io.h [MIPS] Iomap implementation. 2007-02-18 21:31:34 +00:00
ioctl.h [MIPS] Remove unreferenced _IOC_SLMASK macro in ioctl.h. 2007-02-26 23:06:06 +00:00
ioctls.h
ipc.h
ipcbuf.h
irq_cpu.h [MIPS] Define MIPS_CPU_IRQ_BASE in generic header 2007-02-06 16:53:08 +00:00
irq_regs.h [MIPS] Complete fixes after removal of pt_regs argument to int handlers. 2006-10-08 02:38:28 +01:00
irq.h [MIPS] Don't drag a platform specific header into generic arch code. 2007-06-20 22:27:10 +01:00
irqflags.h [MIPS] SMTC: Fix recursion in instant IPI replay code. 2007-03-29 23:46:36 +01:00
isadep.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
jazz.h
jazzdma.h
Kbuild [MIPS] Have headers_install install <asm/cachectl.h> and <asm/sysmips.h>. 2006-09-27 13:37:56 +01:00
kdebug.h move die notifier handling to common code 2007-05-08 11:15:04 -07:00
kexec.h kdump/kexec: calculate note size at compile time 2007-05-08 11:15:07 -07:00
kmap_types.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
kspd.h [MIPS] kpsd and other AP/SP improvements. 2006-04-19 04:14:27 +02:00
linkage.h [PATCH] abstract type/size specification for assembly 2006-03-24 07:33:25 -08:00
local.h local_t: mips extension 2007-05-08 11:15:20 -07:00
m48t35.h
m48t37.h
marvell.h [MIPS] MV64340: Add missing prototype for mv64340_irq_init(). 2007-03-29 23:46:35 +01:00
mc146818-time.h [PATCH] RTC: Remove RTC UIP synchronization on MIPS MC146818 2006-03-28 09:16:00 -08:00
mc146818rtc.h
mips_mt.h [MIPS] SMTC: <asm/mips_mt.h> must include <linux/cpumask.h> 2007-03-07 00:07:15 +00:00
mipsmtregs.h [MIPS] MT: Nuke duplicate mips_mt_regdump() prototype. 2007-02-06 16:53:24 +00:00
mipsprom.h
mipsregs.h [MIPS] Fix scheduling latency issue on 24K, 34K and 74K cores 2007-07-06 16:17:11 +01:00
mman.h [PATCH] Remove final references to deprecated "MAP_ANON" page protection flag 2007-02-11 10:51:17 -08:00
mmu_context.h [PATCH] x86: PARAVIRT: add hooks to intercept mm creation and destruction 2007-05-02 19:27:14 +02:00
mmu.h
mmzone.h [PATCH] Delete unused definitions of kvaddr_to_nid 2006-06-23 07:42:52 -07:00
module.h [MIPS] SMTC and non-SMTC kernel and modules are incompatible 2007-06-26 19:57:34 +02:00
msc01_ic.h [MIPS] MT: Reenable EIC support and add support for SOCit SC. 2007-05-11 14:28:31 +01:00
msgbuf.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
mutex.h [PATCH] mutex subsystem, add default include/asm-*/mutex.h files 2006-01-09 15:59:19 -08:00
namei.h
nile4.h
paccess.h [MIPS] Replace old fashioned "__typeof" with "__typeof__". 2007-04-27 16:20:25 +01:00
page.h [MIPS] Remove LIMITED_DMA support 2007-05-11 14:28:31 +01:00
param.h [MIPS] Make timer interrupt frequency configurable from kconfig. 2006-06-19 17:39:27 +01:00
parport.h
pci.h [MIPS] Iomap implementation. 2007-02-18 21:31:34 +00:00
percpu.h
pgalloc.h Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
pgtable-32.h [MIPS] pte_offset(dir,addr): parenthesis fix 2006-12-06 20:16:08 +00:00
pgtable-64.h [MIPS] Always use virt_to_phys() when translating kernel addresses 2007-03-24 17:01:49 +00:00
pgtable-bits.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
pgtable.h Clean up mostly unused IOSPACE macros 2007-05-08 11:15:13 -07:00
pmon.h
poll.h Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
posix_types.h
prctl.h
prefetch.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
processor.h Merge git://git.infradead.org/hdrcleanup-2.6 2006-06-20 15:10:08 -07:00
ptrace.h [MIPS] die(): Properly declare as non-returning 2007-07-04 15:53:15 +01:00
qemu.h [MIPS] Qemu system shutdown support 2006-06-19 17:39:19 +01:00
r4kcache.h [MIPS] MT: Improved multithreading support. 2006-04-19 04:14:28 +02:00
reboot.h [MIPS] Rename _machine_power_off to pm_power_off so the kernel builds again. 2006-02-07 13:30:22 +00:00
reg.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
regdef.h
resource.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
rm9k-ocd.h [MIPS] Support for the RM9000-based Basler eXcite smart camera platform. 2006-06-19 17:39:26 +01:00
rtc.h [MIPS] Fix genrtc compilation. 2006-04-19 04:14:22 +02:00
rtlx.h [MIPS] RTLX: Handle copy_*_user return values. 2007-03-17 01:03:29 +00:00
scatterlist.h PCI: scatterlist.h needs types.h 2007-05-02 19:02:34 -07:00
sections.h [MIPS] Remove _fdata from asm-mips/sections.h 2007-02-06 16:53:15 +00:00
segment.h
semaphore.h [PATCH] semaphore: Remove __MUTEX_INITIALIZER() 2005-10-30 17:37:27 -08:00
sembuf.h
serial.h [MIPS] Remove Momenco Jaguar ATX support 2007-05-11 14:28:31 +01:00
setup.h [PATCH] cleanup asm/setup.h userspace visibility 2006-12-07 08:39:46 -08:00
sgialib.h [MIPS] Fix and cleanup the mess that a dozen prom_printf variants are. 2007-03-04 19:02:37 +00:00
sgiarcs.h [MIPS] ARC: Fix warning. 2007-03-24 17:01:49 +00:00
sgidefs.h
shmbuf.h
shmparam.h
sigcontext.h [MIPS] Add basic SMARTMIPS ASE support 2007-02-22 00:50:44 +00:00
siginfo.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
signal.h [MIPS] signals: Share even more code. 2007-02-18 21:31:35 +00:00
sim.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
smp.h Merge git://git.infradead.org/hdrcleanup-2.6 2006-06-20 15:10:08 -07:00
smtc_ipi.h [MIPS] SMTC: Fix recursion in instant IPI replay code. 2007-03-29 23:46:36 +01:00
smtc_proc.h [MIPS] MT: Improved multithreading support. 2006-04-19 04:14:28 +02:00
smtc.h [MIPS] SMTC: Add fordward declarations for mm_struct and task_struct. 2007-03-07 00:07:16 +00:00
sni.h [MIPS] SNI: MIPS_CPU_IRQ_BASE cleanup 2007-02-26 23:06:06 +00:00
socket.h [NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support 2007-04-25 22:24:21 -07:00
sockios.h [NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution 2007-04-25 22:24:04 -07:00
sparsemem.h [MIPS] Fix sparsemem support. 2006-06-06 00:15:20 +01:00
spinlock_types.h [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
spinlock.h [MIPS] Fix __raw_read_trylock() to allow multiple readers 2007-03-07 00:07:17 +00:00
stackframe.h [MIPS] Fix KMODE for the R3000 2007-06-11 18:20:53 +01:00
stacktrace.h [MIPS] Make unwind_stack() can dig into interrupted context 2006-10-01 23:16:59 +01:00
stat.h
statfs.h [PATCH] mips: nuke trailing whitespace 2005-09-05 00:06:07 -07:00
string.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
suspend.h
sysmips.h
system.h [MIPS] Define and use vi_handler_t for vectored interrupt handlers. 2007-05-11 14:28:30 +01:00
termbits.h [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
termios.h [PATCH] consolidate line discipline number definitions 2007-02-11 10:51:26 -08:00
thread_info.h [MIPS] Disallow CpU exception in kernel again. 2007-04-20 14:58:37 +01:00
time.h [MIPS] mips HPT cleanup: make clocksource_mips public 2006-11-30 01:14:49 +00:00
timex.h [MIPS] Fix errors detected by "make headers_check" 2006-09-27 13:37:40 +01:00
titan_dep.h [PATCH] mips: nuke trailing whitespace 2005-09-05 00:06:07 -07:00
tlb.h
tlbdebug.h
tlbflush.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
topology.h
traps.h More AP / SP bits for the 34K, the Malta bits and things. Still wants 2005-10-29 19:31:53 +01:00
tx3912.h
types.h [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
uaccess.h [MIPS] Export __copy_user_inatomic. 2007-03-07 00:07:17 +00:00
ucontext.h
unaligned.h
unistd.h [MIPS] Add whitelists for checksyscalls.sh 2007-07-04 15:53:16 +01:00
user.h [MIPS] Fix errors detected by "make headers_check" 2006-09-27 13:37:40 +01:00
vga.h [PATCH] vgacon: make VGA_MAP_MEM take size, remove extra use 2006-06-22 15:05:58 -07:00
vpe.h [MIPS] kpsd and other AP/SP improvements. 2006-04-19 04:14:27 +02:00
war.h [MIPS] RM7000: Enable ICACHE_REFILLS_WORKAROUND_WAR. 2007-07-06 16:17:11 +01:00
watch.h
wbflush.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
xor.h
xxs1500.h [PATCH] mips: nuke trailing whitespace 2005-09-05 00:06:07 -07:00