diff options
author | David S. Miller <davem@davemloft.net> | 2018-10-17 21:28:01 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-10-17 21:29:23 -0700 |
commit | 776ca1543b5fe673aaf1beb244fcc2429d378083 (patch) | |
tree | c40d5e40a9a3746b21520c2d57a45d0de01ed6fe /tools/perf/util/event.c | |
parent | Merge branch 'parisc-4.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux (diff) | |
download | linux-dev-776ca1543b5fe673aaf1beb244fcc2429d378083.tar.xz linux-dev-776ca1543b5fe673aaf1beb244fcc2429d378083.zip |
sparc: Fix syscall fallback bugs in VDSO.
First, the trap number for 32-bit syscalls is 0x10.
Also, only negate the return value when syscall error is indicated by
the carry bit being set.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r-- | tools/perf/util/event.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c index 0cd42150f712..651cd6f6762c 100644 --- a/tools/perf/util/event.c +++ b/tools/perf/util/event.c @@ -1081,6 +1081,7 @@ void *cpu_map_data__alloc(struct cpu_map *map, size_t *size, u16 *type, int *max } *size += sizeof(struct cpu_map_data); + *size = PERF_ALIGN(*size, sizeof(u64)); return zalloc(*size); } @@ -1560,7 +1561,9 @@ struct map *thread__find_map(struct thread *thread, u8 cpumode, u64 addr, return NULL; } +#if 0 try_again: +#endif al->map = map_groups__find(mg, al->addr); if (al->map == NULL) { /* @@ -1572,6 +1575,7 @@ try_again: * "[vdso]" dso, but for now lets use the old trick of looking * in the whole kernel symbol list. */ +#if 0 if (cpumode == PERF_RECORD_MISC_USER && machine && mg != &machine->kmaps && machine__kernel_ip(machine, al->addr)) { @@ -1579,6 +1583,7 @@ try_again: load_map = true; goto try_again; } +#endif } else { /* * Kernel maps might be changed when loading symbols so loading |