linux/arch/mips/kernel
David Daney 098362e720 [MIPS] Add len and addr validation for MAP_FIXED mappings.
Mmap with MAP_FIXED was not validating the addr and len parameters.  This
leads to the failure of GCC's gcc.c-torture/execute/loop-2[fg].c testcases
when using the o32 ABI on a 64 bit kernel.

These testcases try to mmap 65536 bytes at 0x7fff8000 and then access all
the memory.  In 2.6.18 and 2.6.23.1 (and likely other versions as well)
the kernel maps the requested memory, but since half of it is above
0x80000000 a SIGBUS is generated when it is accessed.

This patch moves the len validation above the MAP_FIXED processing so that
it is always validated.  It also adds validation to the addr parameter for
MAP_FIXED mappings.

Signed-off-by: David Daney  <ddaney@avtrex.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2007-10-29 19:35:36 +00:00
..
8250-platform.c [MIPS] Put an end to <asm/serial.h>'s long and annyoing existence 2007-07-10 17:33:01 +01:00
asm-offsets.c [MIPS] Extract {PGD,PMD,PTE}_ORDER into asm-offset.h 2007-08-27 02:16:49 +01:00
binfmt_elfn32.c [PATCH] elf: Always define elf_addr_t in linux/elf.h 2006-12-07 08:39:38 -08:00
binfmt_elfo32.c [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
branch.c [MIPS] Add some __user tags 2007-07-13 17:40:01 +01:00
cevt-gt641xx.c [MIPS] time: set clock before clockevent_delta2ns() in GT641xx. 2007-10-29 19:35:33 +00:00
cevt-r4k.c [MIPS] time: Replace plat_timer_setup with modern APIs. 2007-10-29 19:35:36 +00:00
cevt-txx9.c [MIPS] txx9tmr clockevent/clocksource driver 2007-10-29 19:35:35 +00:00
cpu-bugs64.c [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
cpu-probe.c [MIPS] Add BUG_ON assertion for attempt to run kernel on the wrong CPU type. 2007-10-11 23:46:18 +01:00
early_printk.c [MIPS] early_printk: allow the early console to run earlier 2007-05-11 14:28:30 +01:00
entry.S [MIPS] SMTC: Interrupt mask backstop hack 2007-07-12 17:41:17 +01:00
gdb-low.S [MIPS] TRACE_IRQFLAGS_SUPPORT support. 2006-07-13 21:26:09 +01:00
gdb-stub.c [MIPS] Kill num_online_cpus() loops. 2007-10-11 23:46:18 +01:00
genex.S [MIPS] SMTC: Interrupt mask backstop hack 2007-07-12 17:41:17 +01:00
head.S [MIPS] Always do the ARC64_TWIDDLE_PC thing. 2007-10-18 18:11:46 +01:00
i8253.c [MIPS] i8253 PIT clocksource and clockevent drivers 2007-10-11 23:46:10 +01:00
i8259.c [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
init_task.c [PATCH] nsproxy: move init_nsproxy into kernel/nsproxy.c 2006-10-02 07:57:20 -07:00
irix5sys.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irixelf.c pid namespaces: round up the API 2007-10-19 11:53:37 -07:00
irixinv.c [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
irixioctl.c [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
irixsig.c [MIPS] IRIX: Fix off-by-one error in signal compat code. 2007-10-29 19:35:36 +00:00
irq_cpu.c [MIPS] use name instead of typename for each irq_chip 2007-02-06 16:53:14 +00:00
irq_txx9.c [MIPS] Remove dead code from irq_txx9.c 2007-08-27 02:16:54 +01:00
irq-gt641xx.c [MIPS] Add GT641xx IRQ routines. 2007-10-11 23:46:04 +01:00
irq-msc01.c [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
irq-rm7000.c [MIPS] use name instead of typename for each irq_chip 2007-02-06 16:53:14 +00:00
irq-rm9000.c [MIPS] use name instead of typename for each irq_chip 2007-02-06 16:53:14 +00:00
irq.c [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
kspd.c [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
linux32.c remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
machine_kexec.c [MIPS] Unconditionally writeback and invalidate caches on kexec. 2007-08-27 02:16:59 +01:00
Makefile [MIPS] txx9tmr clockevent/clocksource driver 2007-10-29 19:35:35 +00:00
mips_ksyms.c [MIPS] Export __copy_user_inatomic. 2007-03-07 00:07:17 +00:00
mips-mt-fpaff.c [MIPS] Fixup secure computing stuff. 2007-07-31 21:35:21 +01:00
mips-mt.c [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
module.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pcspeaker.c [MIPS] Rename PC speaker code 2007-07-12 17:41:23 +01:00
proc.c [MIPS] Make facility to convert CPU types to strings generally available. 2007-10-11 23:46:17 +01:00
process.c [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
ptrace32.c [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
ptrace.c Consolidate PTRACE_DETACH 2007-10-16 09:42:49 -07:00
r4k_fpu.S [MIPS] Check FCSR for pending interrupts, alternative version 2007-03-17 01:03:25 +00:00
r4k_switch.S [MIPS] Fix resume for 64K page size on R4000 class processors. 2007-07-12 17:41:05 +01:00
r2300_fpu.S kbuild: mips use generic asm-offsets.h support 2005-09-09 22:32:31 +02:00
r2300_switch.S [MIPS] Disallow CpU exception in kernel again. 2007-04-20 14:58:37 +01:00
r6000_fpu.S kbuild: mips use generic asm-offsets.h support 2005-09-09 22:32:31 +02:00
relocate_kernel.S [MIPS] Kexec: Fix several 64-bit bugs. 2007-07-31 21:35:36 +01:00
reset.c [MIPS] Export pm_power_off 2006-12-10 21:52:11 +00:00
rtlx.c [MIPS] rtlx: Fix build error. 2007-09-14 19:08:42 +01:00
scall32-o32.S [MIPS] Wire up the fallocate syscall. 2007-07-31 21:35:22 +01:00
scall64-64.S [MIPS] Wire up the fallocate syscall. 2007-07-31 21:35:22 +01:00
scall64-n32.S [MIPS] N32 needs to use compat_sys_futimesat 2007-09-14 19:08:42 +01:00
scall64-o32.S [MIPS] Fix fallocate on o32 binary compat ABI 2007-09-28 19:27:20 +01:00
semaphore.c Always use ".set mips3" rather than select between "mips2" or "mips3" 2005-10-29 19:31:31 +01:00
setup.c [MIPS] ARC: Get rid of mips_machgroup 2007-10-11 23:46:08 +01:00
signal32.c [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
signal_n32.c [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
signal-common.h [MIPS] Retry {save,restore}_fp_context if failed in atomic context. 2007-04-20 14:58:37 +01:00
signal.c [MIPS] checkfiles: Fix "need space after that ','" errors. 2007-10-11 23:46:15 +01:00
smp-mt.c [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
smp.c [MIPS] SMP: Fix use of cpumasks. 2007-10-13 00:53:01 +01:00
smtc-asm.S [MIPS] SMTC: Don't set and restore irqregs ptr from self_ipi. 2007-06-11 18:20:53 +01:00
smtc-proc.c [MIPS] MT: Improved multithreading support. 2006-04-19 04:14:28 +02:00
smtc.c [MIPS] SMTC: Allow control over TC assignment to vpe0. 2007-10-29 19:35:32 +00:00
stacktrace.c simplify the stacktrace code 2007-05-08 11:14:58 -07:00
syscall.c [MIPS] Add len and addr validation for MAP_FIXED mappings. 2007-10-29 19:35:36 +00:00
sysirix.c pid namespaces: round up the API 2007-10-19 11:53:37 -07:00
time.c [MIPS] time: Cause platform definitions of plat_timer_setup to cause error. 2007-10-29 19:35:34 +00:00
topology.c [MIPS] Do topology_init even on uniprocessor kernels. 2006-11-29 16:21:34 +00:00
traps.c Use helpers to obtain task pid in printks (arch code) 2007-10-19 11:53:43 -07:00
unaligned.c [MIPS] Fix "no space between function name and open parenthesis" warnings. 2007-10-11 23:46:15 +01:00
vmlinux.lds.S [MIPS] vmlinux.lds.S: Handle KPROBES_TEXT. 2007-10-16 18:23:46 +01:00
vpe.c [MIPS] vpe: Use p_paddr instead of p_vaddr loader. 2007-10-29 19:35:33 +00:00