Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

MIPS: Use arch specific syscall name match function

On MIPS system, most of the syscall function name begin with prefix
sys_. Some syscalls are special such as clone/fork, function name of
these begin with __sys_. Since scratch registers need be saved in
stack when these system calls happens.

With ftrace system call method, system call functions are declared with
SYSCALL_DEFINEx, metadata of the system call symbol name begins with
sys_. Here mips specific function arch_syscall_match_sym_name is used to
compare function name between sys_call_table[] and metadata of syscall
symbol.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

authored by

Bibo Mao and committed by
Thomas Bogendoerfer
756276ce 5ae16e22

+16
+16
arch/mips/include/asm/ftrace.h
··· 91 91 92 92 #endif /* __ASSEMBLY__ */ 93 93 #endif /* CONFIG_FUNCTION_TRACER */ 94 + 95 + #ifdef CONFIG_FTRACE_SYSCALLS 96 + #ifndef __ASSEMBLY__ 97 + /* 98 + * Some syscall entry functions on mips start with "__sys_" (fork and clone, 99 + * for instance). We should also match the sys_ variant with those. 100 + */ 101 + #define ARCH_HAS_SYSCALL_MATCH_SYM_NAME 102 + static inline bool arch_syscall_match_sym_name(const char *sym, 103 + const char *name) 104 + { 105 + return !strcmp(sym, name) || 106 + (!strncmp(sym, "__sys_", 6) && !strcmp(sym + 6, name + 4)); 107 + } 108 + #endif /* __ASSEMBLY__ */ 109 + #endif /* CONFIG_FTRACE_SYSCALLS */ 94 110 #endif /* _ASM_MIPS_FTRACE_H */