aboutsummaryrefslogtreecommitdiffstats
path: root/arch/openrisc/lib
diff options
context:
space:
mode:
authorJonas Bonn <jonas@southpole.se>2012-05-27 04:25:47 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-28 00:00:32 -0400
commitb48b2c3e50433ff6f7e46186daa7f986bd960215 (patch)
tree9a10b2130582f99df5ae7eae0b959425e791118c /arch/openrisc/lib
parent1629372caaaf7ef744d3b983be56b99468a68ff8 (diff)
openrisc: use generic strnlen_user() function
The generic version is both easier to support and more correct. Signed-off-by: Jonas Bonn <jonas@southpole.se> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/openrisc/lib')
-rw-r--r--arch/openrisc/lib/string.S47
1 files changed, 0 insertions, 47 deletions
diff --git a/arch/openrisc/lib/string.S b/arch/openrisc/lib/string.S
index 8ceb11ebafb9..c09fee7dec14 100644
--- a/arch/openrisc/lib/string.S
+++ b/arch/openrisc/lib/string.S
@@ -103,50 +103,3 @@ __clear_user:
103 .section __ex_table, "a" 103 .section __ex_table, "a"
104 .long 9b, 99b // write fault 104 .long 9b, 99b // write fault
105 .previous 105 .previous
106
107
108/*
109 * extern int __strnlen_user(const char *str, long len, unsigned long top);
110 *
111 *
112 * RTRN: - length of a string including NUL termination character
113 * - on page fault 0
114 */
115
116 .global __strnlen_user
117__strnlen_user:
118 l.addi r1,r1,-8
119 l.sw 0(r1),r6
120 l.sw 4(r1),r3
121
122 l.addi r11,r0,0
1232: l.sfeq r11,r4
124 l.bf 1f
125 l.addi r11,r11,1
1268: l.lbz r6,0(r3)
127 l.sfeq r6,r0
128 l.bf 1f
129 l.sfgeu r3,r5 // are we over the top ?
130 l.bf 99f
131 l.j 2b
132 l.addi r3,r3,1
133
1341:
135 l.lwz r6,0(r1)
136 l.lwz r3,4(r1)
137 l.jr r9
138 l.addi r1,r1,8
139
140 .section .fixup, "ax"
14199:
142 l.addi r11,r0,0
143
144 l.lwz r6,0(r1)
145 l.lwz r3,4(r1)
146 l.jr r9
147 l.addi r1,r1,8
148 .previous
149
150 .section __ex_table, "a"
151 .long 8b, 99b // read fault
152 .previous