linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / arm / lib / strnlen_user.S
index 18d8fa4..67bcd82 100644 (file)
        .text
        .align  5
 
-/* Prototype: unsigned long __strnlen_user(const char *str, long n)
+/* Prototype: unsigned long __arch_strnlen_user(const char *str, long n)
  * Purpose  : get length of a string in user memory
  * Params   : str - address of string in user memory
  * Returns  : length of string *including terminator*
  *           or zero on exception, or n + 1 if too long
  */
-ENTRY(__strnlen_user)
+ENTRY(__arch_strnlen_user)
+       save_lr
        mov     r2, r0
 1:
 USER(  ldrbt   r3, [r0], #1)
@@ -30,10 +31,10 @@ USER(       ldrbt   r3, [r0], #1)
        bne     1b
        add     r0, r0, #1
 2:     sub     r0, r0, r2
-       mov     pc, lr
+       restore_pc
 
        .section .fixup,"ax"
        .align  0
 9001:  mov     r0, #0
-       mov     pc, lr
+       restore_pc
        .previous