sparc: switch to RAW_COPY_USER
... and drop zeroing in sparc32. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
#define PREAMBLE \
|
||||
rd %asi, %g1; \
|
||||
cmp %g1, ASI_AIUS; \
|
||||
bne,pn %icc, ___copy_in_user; \
|
||||
bne,pn %icc, raw_copy_in_user; \
|
||||
nop
|
||||
#endif
|
||||
|
||||
|
@@ -27,7 +27,7 @@
|
||||
#define PREAMBLE \
|
||||
rd %asi, %g1; \
|
||||
cmp %g1, ASI_AIUS; \
|
||||
bne,pn %icc, ___copy_in_user; \
|
||||
bne,pn %icc, raw_copy_in_user; \
|
||||
nop
|
||||
#endif
|
||||
|
||||
|
@@ -26,8 +26,8 @@
|
||||
.type generic_patch_copyops,#function
|
||||
generic_patch_copyops:
|
||||
GEN_DO_PATCH(memcpy, GENmemcpy)
|
||||
GEN_DO_PATCH(___copy_from_user, GENcopy_from_user)
|
||||
GEN_DO_PATCH(___copy_to_user, GENcopy_to_user)
|
||||
GEN_DO_PATCH(raw_copy_from_user, GENcopy_from_user)
|
||||
GEN_DO_PATCH(raw_copy_to_user, GENcopy_to_user)
|
||||
retl
|
||||
nop
|
||||
.size generic_patch_copyops,.-generic_patch_copyops
|
||||
|
@@ -36,7 +36,7 @@
|
||||
#define PREAMBLE \
|
||||
rd %asi, %g1; \
|
||||
cmp %g1, ASI_AIUS; \
|
||||
bne,pn %icc, ___copy_in_user; \
|
||||
bne,pn %icc, raw_copy_in_user; \
|
||||
nop
|
||||
#endif
|
||||
|
||||
|
@@ -45,7 +45,7 @@
|
||||
#define PREAMBLE \
|
||||
rd %asi, %g1; \
|
||||
cmp %g1, ASI_AIUS; \
|
||||
bne,pn %icc, ___copy_in_user; \
|
||||
bne,pn %icc, raw_copy_in_user; \
|
||||
nop
|
||||
#endif
|
||||
|
||||
|
@@ -26,8 +26,8 @@
|
||||
.type niagara2_patch_copyops,#function
|
||||
niagara2_patch_copyops:
|
||||
NG_DO_PATCH(memcpy, NG2memcpy)
|
||||
NG_DO_PATCH(___copy_from_user, NG2copy_from_user)
|
||||
NG_DO_PATCH(___copy_to_user, NG2copy_to_user)
|
||||
NG_DO_PATCH(raw_copy_from_user, NG2copy_from_user)
|
||||
NG_DO_PATCH(raw_copy_to_user, NG2copy_to_user)
|
||||
retl
|
||||
nop
|
||||
.size niagara2_patch_copyops,.-niagara2_patch_copyops
|
||||
|
@@ -31,7 +31,7 @@
|
||||
#define PREAMBLE \
|
||||
rd %asi, %g1; \
|
||||
cmp %g1, ASI_AIUS; \
|
||||
bne,pn %icc, ___copy_in_user; \
|
||||
bne,pn %icc, raw_copy_in_user; \
|
||||
nop
|
||||
#endif
|
||||
|
||||
|
@@ -40,7 +40,7 @@
|
||||
#define PREAMBLE \
|
||||
rd %asi, %g1; \
|
||||
cmp %g1, ASI_AIUS; \
|
||||
bne,pn %icc, ___copy_in_user; \
|
||||
bne,pn %icc, raw_copy_in_user; \
|
||||
nop
|
||||
#endif
|
||||
|
||||
|
@@ -26,8 +26,8 @@
|
||||
.type niagara4_patch_copyops,#function
|
||||
niagara4_patch_copyops:
|
||||
NG_DO_PATCH(memcpy, NG4memcpy)
|
||||
NG_DO_PATCH(___copy_from_user, NG4copy_from_user)
|
||||
NG_DO_PATCH(___copy_to_user, NG4copy_to_user)
|
||||
NG_DO_PATCH(raw_copy_from_user, NG4copy_from_user)
|
||||
NG_DO_PATCH(raw_copy_to_user, NG4copy_to_user)
|
||||
retl
|
||||
nop
|
||||
.size niagara4_patch_copyops,.-niagara4_patch_copyops
|
||||
|
@@ -25,7 +25,7 @@
|
||||
#define PREAMBLE \
|
||||
rd %asi, %g1; \
|
||||
cmp %g1, ASI_AIUS; \
|
||||
bne,pn %icc, ___copy_in_user; \
|
||||
bne,pn %icc, raw_copy_in_user; \
|
||||
nop
|
||||
#endif
|
||||
|
||||
|
@@ -28,7 +28,7 @@
|
||||
#define PREAMBLE \
|
||||
rd %asi, %g1; \
|
||||
cmp %g1, ASI_AIUS; \
|
||||
bne,pn %icc, ___copy_in_user; \
|
||||
bne,pn %icc, raw_copy_in_user; \
|
||||
nop
|
||||
#endif
|
||||
|
||||
|
@@ -26,8 +26,8 @@
|
||||
.type niagara_patch_copyops,#function
|
||||
niagara_patch_copyops:
|
||||
NG_DO_PATCH(memcpy, NGmemcpy)
|
||||
NG_DO_PATCH(___copy_from_user, NGcopy_from_user)
|
||||
NG_DO_PATCH(___copy_to_user, NGcopy_to_user)
|
||||
NG_DO_PATCH(raw_copy_from_user, NGcopy_from_user)
|
||||
NG_DO_PATCH(raw_copy_to_user, NGcopy_to_user)
|
||||
retl
|
||||
nop
|
||||
.size niagara_patch_copyops,.-niagara_patch_copyops
|
||||
|
@@ -19,7 +19,7 @@
|
||||
.text; \
|
||||
.align 4;
|
||||
|
||||
#define FUNC_NAME ___copy_from_user
|
||||
#define FUNC_NAME raw_copy_from_user
|
||||
#define LOAD(type,addr,dest) type##a [addr] %asi, dest
|
||||
#define LOAD_BLK(addr,dest) ldda [addr] ASI_BLK_AIUS, dest
|
||||
#define EX_RETVAL(x) 0
|
||||
@@ -31,7 +31,7 @@
|
||||
#define PREAMBLE \
|
||||
rd %asi, %g1; \
|
||||
cmp %g1, ASI_AIUS; \
|
||||
bne,pn %icc, ___copy_in_user; \
|
||||
bne,pn %icc, raw_copy_in_user; \
|
||||
nop; \
|
||||
|
||||
#include "U1memcpy.S"
|
||||
|
@@ -19,7 +19,7 @@
|
||||
.text; \
|
||||
.align 4;
|
||||
|
||||
#define FUNC_NAME ___copy_to_user
|
||||
#define FUNC_NAME raw_copy_to_user
|
||||
#define STORE(type,src,addr) type##a src, [addr] ASI_AIUS
|
||||
#define STORE_BLK(src,addr) stda src, [addr] ASI_BLK_AIUS
|
||||
#define EX_RETVAL(x) 0
|
||||
@@ -31,7 +31,7 @@
|
||||
#define PREAMBLE \
|
||||
rd %asi, %g1; \
|
||||
cmp %g1, ASI_AIUS; \
|
||||
bne,pn %icc, ___copy_in_user; \
|
||||
bne,pn %icc, raw_copy_in_user; \
|
||||
nop; \
|
||||
|
||||
#include "U1memcpy.S"
|
||||
|
@@ -31,7 +31,7 @@
|
||||
#define PREAMBLE \
|
||||
rd %asi, %g1; \
|
||||
cmp %g1, ASI_AIUS; \
|
||||
bne,pn %icc, ___copy_in_user; \
|
||||
bne,pn %icc, raw_copy_in_user; \
|
||||
nop; \
|
||||
|
||||
#include "U3memcpy.S"
|
||||
|
@@ -26,8 +26,8 @@
|
||||
.type cheetah_patch_copyops,#function
|
||||
cheetah_patch_copyops:
|
||||
ULTRA3_DO_PATCH(memcpy, U3memcpy)
|
||||
ULTRA3_DO_PATCH(___copy_from_user, U3copy_from_user)
|
||||
ULTRA3_DO_PATCH(___copy_to_user, U3copy_to_user)
|
||||
ULTRA3_DO_PATCH(raw_copy_from_user, U3copy_from_user)
|
||||
ULTRA3_DO_PATCH(raw_copy_to_user, U3copy_to_user)
|
||||
retl
|
||||
nop
|
||||
.size cheetah_patch_copyops,.-cheetah_patch_copyops
|
||||
|
@@ -44,7 +44,7 @@ __retl_o2_plus_1:
|
||||
* to copy register windows around during thread cloning.
|
||||
*/
|
||||
|
||||
ENTRY(___copy_in_user) /* %o0=dst, %o1=src, %o2=len */
|
||||
ENTRY(raw_copy_in_user) /* %o0=dst, %o1=src, %o2=len */
|
||||
cmp %o2, 0
|
||||
be,pn %XCC, 85f
|
||||
or %o0, %o1, %o3
|
||||
@@ -105,5 +105,5 @@ ENTRY(___copy_in_user) /* %o0=dst, %o1=src, %o2=len */
|
||||
add %o0, 1, %o0
|
||||
retl
|
||||
clr %o0
|
||||
ENDPROC(___copy_in_user)
|
||||
EXPORT_SYMBOL(___copy_in_user)
|
||||
ENDPROC(raw_copy_in_user)
|
||||
EXPORT_SYMBOL(raw_copy_in_user)
|
||||
|
@@ -364,21 +364,7 @@ short_aligned_end:
|
||||
97:
|
||||
mov %o2, %g3
|
||||
fixupretl:
|
||||
sethi %hi(PAGE_OFFSET), %g1
|
||||
cmp %o0, %g1
|
||||
blu 1f
|
||||
cmp %o1, %g1
|
||||
bgeu 1f
|
||||
ld [%g6 + TI_PREEMPT], %g1
|
||||
cmp %g1, 0
|
||||
bne 1f
|
||||
nop
|
||||
save %sp, -64, %sp
|
||||
mov %i0, %o0
|
||||
call __bzero
|
||||
mov %g3, %o1
|
||||
restore
|
||||
1: retl
|
||||
retl
|
||||
mov %g3, %o0
|
||||
|
||||
/* exception routine sets %g2 to (broken_insn - first_insn)>>2 */
|
||||
|
Reference in New Issue
Block a user