__delay() is either exported or exists as a static inline on all architectures - except sh. Add the missing export of __delay(), move the exports of the rest of that bunch from sh_ksyms32.c to the place where all of them are defined (i.e. arch/sh/lib/delay.c). Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> --- diff --git a/arch/sh/kernel/sh_ksyms_32.c b/arch/sh/kernel/sh_ksyms_32.c index 5858936cb431..0b9b28144efe 100644 --- a/arch/sh/kernel/sh_ksyms_32.c +++ b/arch/sh/kernel/sh_ksyms_32.c @@ -2,7 +2,6 @@ #include <linux/module.h> #include <linux/string.h> #include <linux/uaccess.h> -#include <linux/delay.h> #include <linux/mm.h> #include <asm/checksum.h> #include <asm/sections.h> @@ -12,9 +11,6 @@ EXPORT_SYMBOL(memcpy); EXPORT_SYMBOL(memset); EXPORT_SYMBOL(memmove); EXPORT_SYMBOL(__copy_user); -EXPORT_SYMBOL(__udelay); -EXPORT_SYMBOL(__ndelay); -EXPORT_SYMBOL(__const_udelay); EXPORT_SYMBOL(strlen); EXPORT_SYMBOL(csum_partial); EXPORT_SYMBOL(csum_partial_copy_generic); diff --git a/arch/sh/lib/delay.c b/arch/sh/lib/delay.c index dad8e6a54906..63cd32550b0c 100644 --- a/arch/sh/lib/delay.c +++ b/arch/sh/lib/delay.c @@ -7,6 +7,7 @@ #include <linux/sched.h> #include <linux/delay.h> +#include <linux/export.h> void __delay(unsigned long loops) { @@ -29,6 +30,7 @@ void __delay(unsigned long loops) : "0" (loops) : "t"); } +EXPORT_SYMBOL(__delay); inline void __const_udelay(unsigned long xloops) { @@ -41,14 +43,16 @@ inline void __const_udelay(unsigned long xloops) : "macl", "mach"); __delay(++xloops); } +EXPORT_SYMBOL(__const_udelay); void __udelay(unsigned long usecs) { __const_udelay(usecs * 0x000010c6); /* 2**32 / 1000000 */ } +EXPORT_SYMBOL(__udelay); void __ndelay(unsigned long nsecs) { __const_udelay(nsecs * 0x00000005); } - +EXPORT_SYMBOL(__ndelay);