linux/arch/sh/lib
Stuart MENEFY 5d52013cbb sh: __copy_user function can corrupt the stack in case of exception
The __copy_user function can corrupt the stack in the case of a
non-trivial length of data, and either of the first two move instructions
cause an exception. This is because the fixup for these two instructions
is mapped to the no_pop case, but these instructions execute after the
stack is pushed.

This change creates an explicit NO_POP exception mapping macro, and uses
it for the two instructions executed in the trivial case where no stack
pushes occur.

More information at ST Linux bugzilla:

	https://bugzilla.stlinux.com/show_bug.cgi?id=4824

Signed-off-by: Dylan Reid <dylan_reid@bose.com>
Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-11-13 17:40:30 +09:00
..
Makefile move arch/sh/lib/io.o to obj-y 2008-07-28 18:10:28 +09:00
checksum.S sh: Fix TCP payload csum bug in csum_partial_copy_generic(). 2006-09-27 14:46:24 +09:00
clear_page.S sh: Allow optimized clear/copy page routines to be used on SH-2. 2008-04-18 09:50:02 -07:00
copy_page.S sh: __copy_user function can corrupt the stack in case of exception 2008-11-13 17:40:30 +09:00
delay.c sh: Fixup ndelay() xloops calculation for alternate HZ. 2007-05-09 01:35:02 +00:00
div64-generic.c sh: fixup many sparse errors. 2008-09-08 10:35:04 +09:00
div64.S sh: Correct __xdiv64_32/div64_32 return value size. 2007-07-06 10:58:04 +09:00
io.c sh: Fix up the __raw_read/writeX() definitions. 2008-10-01 15:12:27 +09:00
memchr.S
memcpy-sh4.S sh: Fix up optimized SH-4 memcpy on big endian. 2008-05-16 14:55:07 +09:00
memcpy.S
memmove.S
memset.S sh: Fix a sign extension bug in memset(). 2006-09-27 14:13:14 +09:00
strlen.S