Kill __bzero() [take #2]
PATCH 1/1 Kill __bzero() [take #2]
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 <[email protected]>
---
This take includes Atsushi's comment.
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 | 4 ++-- 5 files changed, 5 insertions(+), 9 deletions(-)
arch/mips/kernel/mips_ksyms.c +0 -2
@@ -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);
arch/mips/lib/csum_partial.S +1 -1
@@ -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
arch/mips/lib/memcpy.S +1 -1
@@ -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
arch/mips/lib/memset.S +1 -3
@@ -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? */
include/asm-mips/uaccess.h +2 -2
@@ -643,11 +643,11 @@ __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) - : "$4", "$5", "$6", __UA_t0, __UA_t1, "$31"); + : "$2", "$4", "$5", "$6", __UA_t0, __UA_t1, "$31");return res; }
Signature · 1 line
1.5.3.4