OpenCloudOS-Kernel/arch/sparc/lib
Dave Aldridge 3c7f622120 sparc64: fix fault handling in NGbzero.S and GENbzero.S
When any of the functions contained in NGbzero.S and GENbzero.S
vector through *bzero_from_clear_user, we may end up taking a
fault when executing one of the store alternate address space
instructions. If this happens, the exception handler does not
restore the %asi register.

This commit fixes the issue by introducing a new exception
handler that ensures the %asi register is restored when
a fault is handled.

Orabug: 25577560

Signed-off-by: Dave Aldridge <david.j.aldridge@oracle.com>
Reviewed-by: Rob Gardner <rob.gardner@oracle.com>
Reviewed-by: Babu Moger <babu.moger@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-05-09 12:16:25 -07:00
..
COPYING.LIB
GENbzero.S sparc64: fix fault handling in NGbzero.S and GENbzero.S 2017-05-09 12:16:25 -07:00
GENcopy_from_user.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
GENcopy_to_user.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
GENmemcpy.S sparc64: Convert GENcopy_{from,to}_user to accurate exception reporting. 2016-10-24 11:31:58 -07:00
GENpage.S sparc,sparc64: unify lib/ 2008-12-04 09:17:19 -08:00
GENpatch.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
Makefile sparc64: Delete now unused user copy fixup functions. 2016-10-24 21:26:04 -07:00
NG2copy_from_user.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
NG2copy_to_user.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
NG2memcpy.S arch/sparc: Avoid DCTI Couples 2017-03-27 21:51:40 -07:00
NG2patch.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04: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 sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04: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 sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
NG4memcpy.S arch/sparc: Avoid DCTI Couples 2017-03-27 21:51:40 -07:00
NG4memset.S arch/sparc: Avoid DCTI Couples 2017-03-27 21:51:40 -07:00
NG4patch.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
NGbzero.S sparc64: fix fault handling in NGbzero.S and GENbzero.S 2017-05-09 12:16:25 -07:00
NGcopy_from_user.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
NGcopy_to_user.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
NGmemcpy.S arch/sparc: Avoid DCTI Couples 2017-03-27 21:51:40 -07:00
NGpage.S sparc64: Add SPARC-T4 optimized memcpy. 2012-09-27 00:35:11 -07:00
NGpatch.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
PeeCeeI.c sparc64: update IO access functions in PeeCeeI 2014-07-21 21:43:18 -07:00
U1copy_from_user.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
U1copy_to_user.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
U1memcpy.S sparc64: Convert U1copy_{from,to}_user to accurate exception reporting. 2016-10-24 11:32:12 -07:00
U3copy_from_user.S sparc64: Convert U3copy_{from,to}_user to accurate exception reporting. 2016-10-24 21:20:35 -07:00
U3copy_to_user.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
U3memcpy.S sparc64: Convert U3copy_{from,to}_user to accurate exception reporting. 2016-10-24 21:20:35 -07:00
U3patch.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
VISsave.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
ashldi3.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
ashrdi3.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
atomic32.c locking/atomic, arch/sparc: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:30 +02:00
atomic_64.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
bitext.c sparc/srmmu: clear trailing edge of bitmap properly 2013-03-31 19:29:12 -04:00
bitops.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
blockops.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
bzero.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
checksum_32.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
checksum_64.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
clear_page.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
cmpdi2.c [SPARC32]: Add __cmpdi2() libcall implementation ala. MIPS. 2007-08-26 18:49:09 -07:00
copy_in_user.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
copy_page.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
copy_user.S sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
csum_copy.S sparc: move exports to definitions 2016-08-07 23:55:43 -04: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 sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
ffs.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
hweight.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
iomap.c sparc: switch to GENERIC_PCI_IOMAP 2011-12-04 15:59:49 +02:00
ipcsum.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
libgcc.h [SPARC32]: Add __cmpdi2() libcall implementation ala. MIPS. 2007-08-26 18:49:09 -07:00
locks.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
lshrdi3.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
mcount.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
memcmp.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
memcpy.S sparc32: debride memcpy.S a bit 2016-08-07 23:55:49 -04:00
memmove.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
memscan_32.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
memscan_64.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
memset.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
muldi3.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
strlen.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
strncmp_32.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00
strncmp_64.S sparc: move exports to definitions 2016-08-07 23:55:43 -04: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
xor.S sparc: move exports to definitions 2016-08-07 23:55:43 -04:00