kernel-ark/include/asm-mips
Ralf Baechle 3218357c94 [MIPS] More uaccess.h fixes with gcc >= 4.0.1.
From Richard Sandiford <richard@codesourcery.com>:
    
This patch caused a miscompilation of the restore_gp_regs() block
in restore_sigcontext().  This was in a 32-bit kernel compiled with
GCC CVS head.
    
restore_gp_regs() copies 64-bit user fields into 32-bit variables,
and in this combination, the new __get_user_asm_ll32() clobbers too
many registers.  It says:
    
/*
 * Get a long long 64 using 32 bit registers.
 */
{									\
	__asm__ __volatile__(						\
	"1:	lw	%1, (%3)				\n"	\
	"2:	lw	%D1, 4(%3)				\n"	\
	"	move	%0, $0					\n"	\
	"3:	.section	.fixup,\"ax\"			\n"	\
	"4:	li	%0, %4					\n"	\
	"	move	%1, $0					\n"	\
	"	move	%D1, $0					\n"	\
	"	j	3b					\n"	\
	"	.previous					\n"	\
	"	.section	__ex_table,\"a\"		\n"	\
	"	" __UA_ADDR "	1b, 4b				\n"	\
	"	" __UA_ADDR "	2b, 4b				\n"	\
	"	.previous					\n"	\
	: "=r" (__gu_err), "=&r" (val)					\
	: "0" (0), "r" (addr), "i" (-EFAULT));				\
}

and this requires val (%1) to be a 64-bit value.  In the case I saw,
gcc was using $3 for the 32-bit val, and wasn't expecting $4 to be
clobbered.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2006-02-14 19:13:24 +00:00
..
arc
ddb5xxx
dec
galileo-boards
gcc
ip32
it8172
jmr3927
lasat
mach-atlas
mach-au1x00 [MIPS] Au1200: Make KGDB compile 2006-02-07 13:30:23 +00:00
mach-cobalt [MIPS] CPU definitions for Cobalt. 2006-02-07 13:30:22 +00:00
mach-db1x00
mach-ddb5074 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mach-dec
mach-ev64120
mach-ev96100
mach-generic [MIPS] RM200: Give RM200 it's own timex.h. 2006-02-14 19:13:23 +00:00
mach-ip22 MIPS: Introduce machinery for testing for MIPSxxR1/2. 2006-01-10 13:39:06 +00:00
mach-ip27 [PATCH] scheduler cache-hot-autodetect 2006-01-12 09:08:50 -08:00
mach-ip32 [MIPS] Nevada support for SGI O2. 2006-02-07 13:30:22 +00:00
mach-ja MIPS: Introduce machinery for testing for MIPSxxR1/2. 2006-01-10 13:39:06 +00:00
mach-jazz
mach-jmr3927
mach-lasat
mach-mips Fixup a few lose ends in explicit support for MIPS R1/R2. 2005-10-29 19:32:37 +01:00
mach-ocelot
mach-ocelot3 MIPS: Introduce machinery for testing for MIPSxxR1/2. 2006-01-10 13:39:06 +00:00
mach-pb1x00
mach-pnx8550
mach-qemu
mach-rm200 [MIPS] RM200: Give RM200 it's own timex.h. 2006-02-14 19:13:23 +00:00
mach-sibyte
mach-sim
mach-yosemite MIPS: Introduce machinery for testing for MIPSxxR1/2. 2006-01-10 13:39:06 +00:00
mips-boards
pci
sgi
sibyte
sn
tx4927 [MIPS] TX49x7: Fix reporting of the CPU name and PCI clock 2006-02-07 13:30:26 +00:00
tx4938
vr41xx Update Yoichi Yuasa's email address. 2006-01-10 13:39:07 +00:00
xtalk
8253pit.h
a.out.h
abi.h [MIPS] Make do_signal return void. 2006-02-08 17:52:25 +00:00
addrspace.h
asm.h
asmmacro-32.h
asmmacro-64.h
asmmacro.h [PATCH] mips: nuke trailing whitespace 2005-09-05 00:06:07 -07:00
atomic.h MIPS: Get rid of atomic_lock. 2006-01-10 13:39:06 +00:00
auxvec.h
bcache.h
bitops.h [MIPS] Cleanup fls implementation. 2006-02-07 13:30:24 +00:00
bootinfo.h
branch.h
break.h
bug.h
bugs.h
byteorder.h [MIPS] MIPS R2 optimized endianess swapping. 2006-02-07 13:30:25 +00:00
cache.h [PATCH] Kill L1_CACHE_SHIFT_MAX 2006-01-08 20:13:39 -08:00
cachectl.h
cacheflush.h [MIPS] Remove wrong __user tags. 2006-02-07 13:30:25 +00:00
cacheops.h
checksum.h
compat.h
compiler.h
cpu-features.h MIPS: Reorganize ISA constants strictly as bitmasks. 2006-01-10 13:39:07 +00:00
cpu-info.h
cpu.h MIPS: Reorganize ISA constants strictly as bitmasks. 2006-01-10 13:39:07 +00:00
cputime.h
current.h
ddb5074.h
debug.h
delay.h MIPS: Fix mdelay(1) for 64bit kernel with HZ == 1000 2006-01-10 13:39:04 +00:00
div64.h
dma-mapping.h
dma.h
ds1286.h
dsp.h MIPS: DSP: Set all register masks to 0x3ff. 2006-01-10 13:39:04 +00:00
elf.h MIPS: Namespace pollution: dump_regs() -> elf_dump_regs() 2006-01-10 13:39:08 +00:00
emergency-restart.h
errno.h
fcntl.h
fixmap.h
floppy.h
fpregdef.h
fpu_emulator.h
fpu.h
futex.h
gdb-stub.h
gfx.h
gt64120.h
gt64240.h
hardirq.h
hazards.h [MIPS] Fix C version of ssnop to use the right opcode. 2006-02-07 13:30:21 +00:00
highmem.h
hw_irq.h
i8259.h
ide.h
inst.h
interrupt.h [MIPS] TX49 MFC0 bug workaround 2006-02-07 13:30:26 +00:00
inventory.h
io.h Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus 2006-02-08 09:58:27 -08:00
ioctl.h
ioctls.h
ipc.h
ipcbuf.h
irq_cpu.h
irq.h
isadep.h
it8712.h
jazz.h
jazzdma.h
kmap_types.h
linkage.h
local.h [PATCH] mips: clean up 32/64-bit configuration 2005-09-05 00:06:06 -07:00
m48t35.h
m48t37.h
marvell.h
mc146818-time.h
mc146818rtc.h
mipsmtregs.h
mipsprom.h
mipsregs.h MIPS: DSP: Put mask field into the right place. 2006-01-10 13:39:05 +00:00
mman.h [PATCH] madvise(MADV_REMOVE): remove pages from tmpfs shm backing store 2006-01-06 08:33:22 -08:00
mmu_context.h
mmu.h
mmzone.h
module.h Add spaces to MODULE_PROC_FAMILY values. 2005-11-07 18:05:34 +00:00
msc01_ic.h
msgbuf.h
mutex.h [PATCH] mutex subsystem, add default include/asm-*/mutex.h files 2006-01-09 15:59:19 -08:00
namei.h
nile4.h
numnodes.h
paccess.h
page.h
param.h
parport.h
pci.h
percpu.h
pgalloc.h
pgtable-32.h
pgtable-64.h
pgtable-bits.h
pgtable.h
pmon.h
poll.h
posix_types.h
prctl.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
prefetch.h
processor.h [PATCH] mips: task_stack_page() 2006-01-12 09:08:59 -08:00
ptrace.h
qemu.h
r4kcache.h [MIPS] Add protected_blast_icache_range, blast_icache_range, etc. 2006-02-14 19:13:24 +00: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
regdef.h
resource.h
rtc.h
rtlx.h
scatterlist.h
sections.h
segment.h
semaphore.h
sembuf.h
serial.h
setup.h
sgialib.h
sgiarcs.h
sgidefs.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
sim.h
smp.h
sni.h
socket.h
sockios.h
spinlock_types.h
spinlock.h
stackframe.h
stat.h
statfs.h
string.h [MIPS] Remove buggy inline version of memscan. 2006-02-07 13:30:25 +00:00
suspend.h
sysmips.h
system.h [PATCH] mips: task_pt_regs() 2006-01-12 09:08:58 -08:00
termbits.h
termios.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
thread_info.h [MIPS] Add support for TIF_RESTORE_SIGMASK. 2006-02-08 17:52:24 +00:00
time.h
timex.h
titan_dep.h
tlb.h
tlbdebug.h
tlbflush.h
topology.h
traps.h
tx3912.h
types.h
uaccess.h [MIPS] More uaccess.h fixes with gcc >= 4.0.1. 2006-02-14 19:13:24 +00:00
ucontext.h
unaligned.h
unistd.h [MIPS] Fold non-__mips64 case into CONFIG_32BIT case. 2006-02-14 19:13:23 +00:00
user.h
vga.h
war.h
watch.h
wbflush.h
xor.h
xxs1500.h