This patch removes this function because: 1/ Its unconventional prototype is error prone: its prototype is the same as memset one but was documented by mips_ksym.c like the following: extern void *__bzero(void *__s, size_t __count); 2/ For the caller, it makes no difference to call memset instead since it has to setup the second parameter of __bzero to 0. 3/ It's not part of the Linux user access API, so no module can use it. 4/ It needs to be exported with EXPORT_SYMBOL and therefore consumes some extra bytes. 5/ It has only one user. Signed-off-by: Franck Bui-Huu <fbuihuu@xxxxxxxxx> --- I'm wondering if I'm missing something, because this function seems so ugly and useless in the first place, that I can't refrain to submit a patch to get rid of it. Franck arch/mips/kernel/mips_ksyms.c | 2 -- arch/mips/lib/csum_partial.S | 2 +- arch/mips/lib/memcpy.S | 2 +- arch/mips/lib/memset.S | 4 +--- include/asm-mips/uaccess.h | 2 +- 5 files changed, 4 insertions(+), 8 deletions(-) diff --git a/arch/mips/kernel/mips_ksyms.c b/arch/mips/kernel/mips_ksyms.c index 225755d..6da9fa8 100644 --- a/arch/mips/kernel/mips_ksyms.c +++ b/arch/mips/kernel/mips_ksyms.c @@ -14,7 +14,6 @@ #include <asm/pgtable.h> #include <asm/uaccess.h> -extern void *__bzero(void *__s, size_t __count); extern long __strncpy_from_user_nocheck_asm(char *__to, const char *__from, long __len); extern long __strncpy_from_user_asm(char *__to, const char *__from, @@ -38,7 +37,6 @@ EXPORT_SYMBOL(kernel_thread); */ EXPORT_SYMBOL(__copy_user); EXPORT_SYMBOL(__copy_user_inatomic); -EXPORT_SYMBOL(__bzero); EXPORT_SYMBOL(__strncpy_from_user_nocheck_asm); EXPORT_SYMBOL(__strncpy_from_user_asm); EXPORT_SYMBOL(__strlen_user_nocheck_asm); diff --git a/arch/mips/lib/csum_partial.S b/arch/mips/lib/csum_partial.S index c0a77fe..8d3fa1e 100644 --- a/arch/mips/lib/csum_partial.S +++ b/arch/mips/lib/csum_partial.S @@ -694,7 +694,7 @@ l_exc: ADD dst, t0 # compute start address in a1 SUB dst, src /* - * Clear len bytes starting at dst. Can't call __bzero because it + * Clear len bytes starting at dst. Can't call memset because it * might modify len. An inefficient loop for these rare times... */ beqz len, done diff --git a/arch/mips/lib/memcpy.S b/arch/mips/lib/memcpy.S index a526c62..425f2c3 100644 --- a/arch/mips/lib/memcpy.S +++ b/arch/mips/lib/memcpy.S @@ -443,7 +443,7 @@ l_exc: ADD dst, t0 # compute start address in a1 SUB dst, src /* - * Clear len bytes starting at dst. Can't call __bzero because it + * Clear len bytes starting at dst. Can't call memset because it * might modify len. An inefficient loop for these rare times... */ beqz len, done diff --git a/arch/mips/lib/memset.S b/arch/mips/lib/memset.S index 3f8b8b3..a13248b 100644 --- a/arch/mips/lib/memset.S +++ b/arch/mips/lib/memset.S @@ -46,7 +46,7 @@ .endm /* - * memset(void *s, int c, size_t n) + * void *memset(void *s, int c, size_t n) * * a0: start of area to clear * a1: char to fill with @@ -68,8 +68,6 @@ LEAF(memset) #endif or a1, t1 1: - -FEXPORT(__bzero) sltiu t0, a2, LONGSIZE /* very small region? */ bnez t0, small_memset andi t0, a0, LONGMASK /* aligned? */ diff --git a/include/asm-mips/uaccess.h b/include/asm-mips/uaccess.h index c30c718..9b8234a 100644 --- a/include/asm-mips/uaccess.h +++ b/include/asm-mips/uaccess.h @@ -643,7 +643,7 @@ __clear_user(void __user *addr, __kernel_size_t size) "move\t$4, %1\n\t" "move\t$5, $0\n\t" "move\t$6, %2\n\t" - __MODULE_JAL(__bzero) + __MODULE_JAL(memset) "move\t%0, $6" : "=r" (res) : "r" (addr), "r" (size) -- 1.5.3.4