aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/lib
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2009-03-28 16:29:51 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-03-28 16:29:51 -0400
commited40d0c472b136682b2fcba05f89762859c7374f (patch)
tree076b83a26bcd63d6158463735dd34c10bbc591dc /arch/s390/lib
parent9e495834e59ca9b29f1a1f63b9f5533bb022ac49 (diff)
parent5d80f8e5a9dc9c9a94d4aeaa567e219a808b8a4a (diff)
Merge branch 'origin' into devel
Conflicts: sound/soc/pxa/pxa2xx-i2s.c
Diffstat (limited to 'arch/s390/lib')
-rw-r--r--arch/s390/lib/delay.c2
-rw-r--r--arch/s390/lib/string.c8
2 files changed, 10 insertions, 0 deletions
diff --git a/arch/s390/lib/delay.c b/arch/s390/lib/delay.c
index 6ccb9fab055a..3f5f680726ed 100644
--- a/arch/s390/lib/delay.c
+++ b/arch/s390/lib/delay.c
@@ -9,6 +9,7 @@
9#include <linux/sched.h> 9#include <linux/sched.h>
10#include <linux/delay.h> 10#include <linux/delay.h>
11#include <linux/timex.h> 11#include <linux/timex.h>
12#include <linux/module.h>
12#include <linux/irqflags.h> 13#include <linux/irqflags.h>
13#include <linux/interrupt.h> 14#include <linux/interrupt.h>
14 15
@@ -92,6 +93,7 @@ out:
92 local_irq_restore(flags); 93 local_irq_restore(flags);
93 preempt_enable(); 94 preempt_enable();
94} 95}
96EXPORT_SYMBOL(__udelay);
95 97
96/* 98/*
97 * Simple udelay variant. To be used on startup and reboot 99 * Simple udelay variant. To be used on startup and reboot
diff --git a/arch/s390/lib/string.c b/arch/s390/lib/string.c
index ae5cf5d03d41..4143b7c19096 100644
--- a/arch/s390/lib/string.c
+++ b/arch/s390/lib/string.c
@@ -44,7 +44,11 @@ static inline char *__strnend(const char *s, size_t n)
44 */ 44 */
45size_t strlen(const char *s) 45size_t strlen(const char *s)
46{ 46{
47#if __GNUC__ < 4
47 return __strend(s) - s; 48 return __strend(s) - s;
49#else
50 return __builtin_strlen(s);
51#endif
48} 52}
49EXPORT_SYMBOL(strlen); 53EXPORT_SYMBOL(strlen);
50 54
@@ -70,6 +74,7 @@ EXPORT_SYMBOL(strnlen);
70 */ 74 */
71char *strcpy(char *dest, const char *src) 75char *strcpy(char *dest, const char *src)
72{ 76{
77#if __GNUC__ < 4
73 register int r0 asm("0") = 0; 78 register int r0 asm("0") = 0;
74 char *ret = dest; 79 char *ret = dest;
75 80
@@ -78,6 +83,9 @@ char *strcpy(char *dest, const char *src)
78 : "+&a" (dest), "+&a" (src) : "d" (r0) 83 : "+&a" (dest), "+&a" (src) : "d" (r0)
79 : "cc", "memory" ); 84 : "cc", "memory" );
80 return ret; 85 return ret;
86#else
87 return __builtin_strcpy(dest, src);
88#endif
81} 89}
82EXPORT_SYMBOL(strcpy); 90EXPORT_SYMBOL(strcpy);
83 91