mirror of
https://github.com/torvalds/linux.git
synced 2025-04-09 14:45:27 +00:00
perf syscalltbl: Mask off ABI type for MIPS system calls
Arnd Bergmann described that MIPS system calls don't necessarily start from 0 as an ABI prefix is applied: https://lore.kernel.org/lkml/8ed7dfb2-1e4d-4aa4-a04b-0397a89365d1@app.fastmail.com/ When decoding the "id" (aka system call number) for MIPS ignore values greater-than 1000. Signed-off-by: Ian Rogers <irogers@google.com> Reviewed-by: Namhyung Kim <namhyung@kernel.org> Acked-by: Arnaldo Carvalho de Melo <acme@kernel.org> Link: https://lore.kernel.org/r/20250319050741.269828-12-irogers@google.com Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
parent
16ab5c708d
commit
95b802ca9d
@ -46,6 +46,14 @@ const char *syscalltbl__name(int e_machine, int id)
|
||||
{
|
||||
const struct syscalltbl *table = find_table(e_machine);
|
||||
|
||||
if (e_machine == EM_MIPS && id > 1000) {
|
||||
/*
|
||||
* MIPS may encode the N32/64/O32 type in the high part of
|
||||
* syscall number. Mask this off if present. See the values of
|
||||
* __NR_N32_Linux, __NR_64_Linux, __NR_O32_Linux and __NR_Linux.
|
||||
*/
|
||||
id = id % 1000;
|
||||
}
|
||||
if (table && id >= 0 && id < table->num_to_name_len)
|
||||
return table->num_to_name[id];
|
||||
return NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user