OpenCloudOS-Kernel/arch/sparc/lib
Al Viro 1f36cd05e0 sparc32: fix a braino in fault handling in csum_and_copy_..._user()
Fault handler used to make non-trivial calls, so it needed
to set a stack frame up.  Used to be
	save ... - grab a stack frame, old %o... become %i...
	....
	ret	- go back to address originally in %o7, currently %i7
	 restore - switch to previous stack frame, in delay slot
Non-trivial calls had been gone since ab5e8b3312 and that code should
have become
	retl	- go back to address in %o7
	 clr %o0 - have return value set to 0
What it had become instead was
	ret	- go back to address in %i7 - return address of *caller*
	 clr %o0 - have return value set to 0
which is not good, to put it mildly - we forcibly return 0 from
csum_and_copy_{from,to}_iter() (which is what the call of that
thing had been inlined into) and do that without dropping the
stack frame of said csum_and_copy_..._iter().  Confuses the
hell out of the caller of csum_and_copy_..._iter(), obviously...

Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Fixes: ab5e8b3312 "sparc32: propagate the calling conventions change down to __csum_partial_copy_sparc_generic()"
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2023-10-27 20:06:06 -04:00
..
GENbzero.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
GENcopy_from_user.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
GENcopy_to_user.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
GENmemcpy.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
GENpage.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
GENpatch.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
M7copy_from_user.S arch/sparc: Add accurate exception reporting in M7memcpy 2017-08-10 14:59:04 -07:00
M7copy_to_user.S arch/sparc: Add accurate exception reporting in M7memcpy 2017-08-10 14:59:04 -07:00
M7memcpy.S arch/sparc: Add accurate exception reporting in M7memcpy 2017-08-10 14:59:04 -07:00
M7memset.S arch/sparc: Optimized memcpy, memset, copy_to_user, copy_from_user for M7/M8 2017-08-10 14:57:00 -07:00
M7patch.S arch/sparc: Optimized memcpy, memset, copy_to_user, copy_from_user for M7/M8 2017-08-10 14:57:00 -07:00
Makefile sparc64: Fix boot on T4 and later. 2017-11-29 15:09:29 -05:00
Memcpy_utils.S arch/sparc: Add accurate exception reporting in M7memcpy 2017-08-10 14:59:04 -07:00
NG2copy_from_user.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NG2copy_to_user.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NG2memcpy.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NG2patch.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NG4clear_page.S sparc64: Add missing newline at end of file 2019-07-09 14:53:57 -07:00
NG4copy_from_user.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NG4copy_page.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NG4copy_to_user.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NG4fls.S sparc64: SPARC optimized __fls function 2017-11-15 14:26:46 +09:00
NG4memcpy.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NG4memset.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NG4patch.S Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2017-11-17 20:21:44 -08:00
NGbzero.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NGcopy_from_user.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NGcopy_to_user.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NGmemcpy.S sparc64: remove CONFIG_SET_FS support 2022-02-25 09:36:06 +01:00
NGpage.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
NGpatch.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
PeeCeeI.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
U1copy_from_user.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
U1copy_to_user.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
U1memcpy.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
U3copy_from_user.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
U3copy_to_user.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
U3memcpy.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
U3patch.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
VISsave.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
ashldi3.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
ashrdi3.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
atomic32.c bitops: wrap non-atomic bitops with a transparent macro 2022-06-30 19:52:41 -07:00
atomic_64.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
bitext.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bitops.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
blockops.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
bzero.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
checksum_32.S sparc32: fix a braino in fault handling in csum_and_copy_..._user() 2023-10-27 20:06:06 -04:00
checksum_64.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
clear_page.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
cmpdi2.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
copy_in_user.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
copy_page.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
copy_user.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
csum_copy.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
csum_copy_from_user.S sparc64: propagate the calling convention changes down to __csum_partial_copy_...() 2020-08-20 15:45:21 -04:00
csum_copy_to_user.S sparc64: propagate the calling convention changes down to __csum_partial_copy_...() 2020-08-20 15:45:21 -04:00
divdi3.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
ffs.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
fls.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
fls64.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
hweight.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
iomap.c sparc64: fix pci_iounmap() when CONFIG_PCI is not set 2021-09-20 10:56:32 -07:00
ipcsum.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
libgcc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
locks.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
lshrdi3.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
mcount.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
memcmp.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
memcpy.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
memmove.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
memscan_32.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
memscan_64.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
memset.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
muldi3.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
multi3.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
strlen.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
strncmp_32.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
strncmp_64.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00
ucmpdi2.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
udivdi3.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 14 2019-05-21 11:28:45 +02:00
xor.S sparc: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-22 18:12:25 +09:00