android_kernel_oneplus_msm8998/arch/sparc/lib
David S. Miller 20d01c513f sparc64: Fix exception handling in UltraSPARC-III memcpy.
[ Upstream commit 0ede1c401332173ab0693121dc6cde04a4dbf131 ]

Mikael Pettersson reported that some test programs in the strace-4.18
testsuite cause an OOPS.

After some debugging it turns out that garbage values are returned
when an exception occurs, causing the fixup memset() to be run with
bogus arguments.

The problem is that two of the exception handler stubs write the
successfully copied length into the wrong register.

Fixes: ee841d0aff64 ("sparc64: Convert U3copy_{from,to}_user to accurate exception reporting.")
Reported-by: Mikael Pettersson <mikpelinux@gmail.com>
Tested-by: Mikael Pettersson <mikpelinux@gmail.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2018-11-10 07:41:39 -08:00
..
ashldi3.S sparc: Convert some assembler over to linakge.h's ENTRY/ENDPROC 2012-05-11 20:33:22 -07:00
ashrdi3.S sparc: Convert some assembler over to linakge.h's ENTRY/ENDPROC 2012-05-11 20:33:22 -07:00
atomic32.c sparc: Provide atomic_{or,xor,and} 2015-07-27 14:06:23 +02:00
atomic_64.S sparc: Provide atomic_{or,xor,and} 2015-07-27 14:06:23 +02:00
bitext.c sparc/srmmu: clear trailing edge of bitmap properly 2013-03-31 19:29:12 -04:00
bitops.S sparc: Convert some assembler over to linakge.h's ENTRY/ENDPROC 2012-05-11 20:33:22 -07:00
blockops.S sparc: Convert some assembler over to linakge.h's ENTRY/ENDPROC 2012-05-11 20:33:22 -07:00
bzero.S sparc: Convert some assembler over to linakge.h's ENTRY/ENDPROC 2012-05-11 20:33:22 -07:00
checksum_32.S sparc32: Fixed unaligned memory copying in function __csum_partial_copy_sparc_generic 2011-05-11 21:35:04 -07:00
checksum_64.S sparc,sparc64: unify lib/ 2008-12-04 09:17:19 -08:00
clear_page.S sparc64: Make PAGE_OFFSET variable. 2013-11-12 15:22:34 -08:00
cmpdi2.c
copy_in_user.S sparc64: Convert copy_in_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
copy_page.S sparc64: Make PAGE_OFFSET variable. 2013-11-12 15:22:34 -08:00
copy_user.S
COPYING.LIB
csum_copy.S sparc,sparc64: unify lib/ 2008-12-04 09:17:19 -08:00
csum_copy_from_user.S sparc64: Fix section attribute warnings. 2009-05-29 16:12:02 -07:00
csum_copy_to_user.S sparc64: Fix section attribute warnings. 2009-05-29 16:12:02 -07:00
divdi3.S sparc32: Kill off software 32-bit multiply/divide routines. 2012-05-15 11:23:47 -07:00
ffs.S sparc: Use popc when possible for ffs/__ffs/ffz. 2011-08-02 21:28:53 -07:00
GENbzero.S sparc64: Kill .fixup section bloat. 2009-02-08 22:00:55 -08:00
GENcopy_from_user.S sparc64: Convert GENcopy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
GENcopy_to_user.S sparc64: Convert GENcopy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
GENmemcpy.S sparc64: Convert GENcopy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
GENpage.S sparc,sparc64: unify lib/ 2008-12-04 09:17:19 -08:00
GENpatch.S sparc,sparc64: unify lib/ 2008-12-04 09:17:19 -08:00
hweight.S sparc: Use popc if possible for hweight routines. 2011-08-02 21:28:50 -07:00
iomap.c sparc: switch to GENERIC_PCI_IOMAP 2011-12-04 15:59:49 +02:00
ipcsum.S sparc: Convert some assembler over to linakge.h's ENTRY/ENDPROC 2012-05-11 20:33:22 -07:00
ksyms.c Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-09-03 15:46:07 -07:00
libgcc.h
locks.S sparc: remove CVS keywords 2008-05-20 00:33:44 -07:00
lshrdi3.S sparc: Convert some assembler over to linakge.h's ENTRY/ENDPROC 2012-05-11 20:33:22 -07:00
Makefile sparc64: Delete now unused user copy fixup functions. 2016-11-21 10:06:42 +01:00
mcount.S sparc64,ftrace: Remove check of obsolete variable function_trace_stop 2014-07-18 13:57:03 -04:00
memcmp.S sparc: Commonize memcmp assembler. 2008-12-09 04:09:07 -08:00
memcpy.S sparc32: Correct the return value of memcpy. 2011-10-20 15:17:23 -07:00
memmove.S sparc64: Fix several bugs in memmove(). 2015-03-23 09:22:10 -07:00
memscan_32.S sparc: prepare lib/ for unification 2008-12-04 09:17:18 -08:00
memscan_64.S sparc,sparc64: unify lib/ 2008-12-04 09:17:19 -08:00
memset.S sparc: Let memset return the address argument 2014-09-09 16:38:10 -07:00
muldi3.S sparc32: Kill off software 32-bit multiply/divide routines. 2012-05-15 11:23:47 -07:00
NG2copy_from_user.S sparc64: Convert NG2copy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:42 +01:00
NG2copy_to_user.S sparc64: Convert NG2copy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:42 +01:00
NG2memcpy.S sparc64: Convert NG2copy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:42 +01:00
NG2patch.S sparc,sparc64: unify lib/ 2008-12-04 09:17:19 -08:00
NG4clear_page.S sparc64: Niagara-4 bzero/memset, plus use MRU stores in page copy. 2012-10-05 13:45:26 -07:00
NG4copy_from_user.S sparc64: Convert NG4copy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
NG4copy_page.S sparc64: Niagara-4 bzero/memset, plus use MRU stores in page copy. 2012-10-05 13:45:26 -07:00
NG4copy_to_user.S sparc64: Convert NG4copy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
NG4memcpy.S sparc64: Convert NG4copy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
NG4memset.S sparc64: Niagara-4 bzero/memset, plus use MRU stores in page copy. 2012-10-05 13:45:26 -07:00
NG4patch.S sparc64: Niagara-4 bzero/memset, plus use MRU stores in page copy. 2012-10-05 13:45:26 -07:00
NGbzero.S sparc64: Kill .fixup section bloat. 2009-02-08 22:00:55 -08:00
NGcopy_from_user.S sparc64: Convert NGcopy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
NGcopy_to_user.S sparc64: Convert NGcopy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
NGmemcpy.S sparc64: Convert NGcopy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
NGpage.S sparc64: Add SPARC-T4 optimized memcpy. 2012-09-27 00:35:11 -07:00
NGpatch.S sparc,sparc64: unify lib/ 2008-12-04 09:17:19 -08:00
PeeCeeI.c sparc64: update IO access functions in PeeCeeI 2014-07-21 21:43:18 -07:00
strlen.S sparc: Unify strlen assembler. 2008-12-09 01:07:09 -08:00
strncmp_32.S sparc: Convert some assembler over to linakge.h's ENTRY/ENDPROC 2012-05-11 20:33:22 -07:00
strncmp_64.S sparc: Convert some assembler over to linakge.h's ENTRY/ENDPROC 2012-05-11 20:33:22 -07:00
U1copy_from_user.S sparc64: Convert U1copy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
U1copy_to_user.S sparc64: Convert U1copy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
U1memcpy.S sparc64: Convert U1copy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:41 +01:00
U3copy_from_user.S sparc64: Convert U3copy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:42 +01:00
U3copy_to_user.S sparc64: Convert U3copy_{from,to}_user to accurate exception reporting. 2016-11-21 10:06:42 +01:00
U3memcpy.S sparc64: Fix exception handling in UltraSPARC-III memcpy. 2018-11-10 07:41:39 -08:00
U3patch.S sparc,sparc64: unify lib/ 2008-12-04 09:17:19 -08:00
ucmpdi2.c sparc32: add ucmpdi2 2012-05-19 15:23:57 -07:00
udivdi3.S sparc32: Kill off software 32-bit multiply/divide routines. 2012-05-15 11:23:47 -07:00
VISsave.S sparc64: use ENTRY/ENDPROC in VISsave 2015-08-07 15:22:40 -07:00
xor.S sparc: Convert some assembler over to linakge.h's ENTRY/ENDPROC 2012-05-11 20:33:22 -07:00