Commit c48be43eb5248ff96dacda58f9e51ee8bfd058ac
Committed by
Ralf Baechle
1 parent
078dde5e21
Exists in
master
and in
13 other branches
MIPS: lib: strnlen_user: Use macro to build the strnlen_user symbol
Build the __strnlen_user symbol using a macro. In EVA mode we will need to use similar code to do the userspace load operations so it is better if we use a macro to avoid code duplications. Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Showing 1 changed file with 10 additions and 6 deletions Side-by-side Diff
arch/mips/lib/strnlen_user.S
... | ... | @@ -25,23 +25,27 @@ |
25 | 25 | * bytes. There's nothing secret there. On 64-bit accessing beyond |
26 | 26 | * the maximum is a tad hairier ... |
27 | 27 | */ |
28 | -LEAF(__strnlen_user_asm) | |
28 | + .macro __BUILD_STRNLEN_ASM func | |
29 | +LEAF(__strnlen_\func\()_asm) | |
29 | 30 | LONG_L v0, TI_ADDR_LIMIT($28) # pointer ok? |
30 | 31 | and v0, a0 |
31 | - bnez v0, .Lfault | |
32 | + bnez v0, .Lfault\@ | |
32 | 33 | |
33 | -FEXPORT(__strnlen_user_nocheck_asm) | |
34 | +FEXPORT(__strnlen_\func\()_nocheck_asm) | |
34 | 35 | move v0, a0 |
35 | 36 | PTR_ADDU a1, a0 # stop pointer |
36 | 37 | 1: beq v0, a1, 1f # limit reached? |
37 | - EX(lb, t0, (v0), .Lfault) | |
38 | + EX(lb, t0, (v0), .Lfault\@) | |
38 | 39 | PTR_ADDIU v0, 1 |
39 | 40 | bnez t0, 1b |
40 | 41 | 1: PTR_SUBU v0, a0 |
41 | 42 | jr ra |
42 | - END(__strnlen_user_asm) | |
43 | + END(__strnlen_\func\()_asm) | |
43 | 44 | |
44 | -.Lfault: | |
45 | +.Lfault\@: | |
45 | 46 | move v0, zero |
46 | 47 | jr ra |
48 | + .endm | |
49 | + | |
50 | +__BUILD_STRNLEN_ASM user |