[PATCH] riscv: Fix fill_callchain return value

Nikita Shubin posted 1 patch 4 years, 3 months ago
arch/riscv/kernel/perf_callchain.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] riscv: Fix fill_callchain return value
Posted by Nikita Shubin 4 years, 3 months ago
From: Nikita Shubin <n.shubin@yadro.com>

perf_callchain_store return 0 on success, -1 otherwise,
fix fill_callchain to return correct bool value.

Fixes: dbeb90b0c1eb ("riscv: Add perf callchain support")
Signed-off-by: Nikita Shubin <n.shubin@yadro.com>
---
 arch/riscv/kernel/perf_callchain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/riscv/kernel/perf_callchain.c b/arch/riscv/kernel/perf_callchain.c
index 1fc075b8f764..7aca6a238173 100644
--- a/arch/riscv/kernel/perf_callchain.c
+++ b/arch/riscv/kernel/perf_callchain.c
@@ -68,7 +68,7 @@ void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
 
 static bool fill_callchain(void *entry, unsigned long pc)
 {
-	return perf_callchain_store(entry, pc);
+	return perf_callchain_store(entry, pc) == 0;
 }
 
 void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
-- 
2.34.1
Re: [PATCH] riscv: Fix fill_callchain return value
Posted by Palmer Dabbelt 4 years, 2 months ago
On Thu, 10 Mar 2022 22:58:15 PST (-0800), nikita.shubin@maquefel.me wrote:
> From: Nikita Shubin <n.shubin@yadro.com>
>
> perf_callchain_store return 0 on success, -1 otherwise,
> fix fill_callchain to return correct bool value.
>
> Fixes: dbeb90b0c1eb ("riscv: Add perf callchain support")
> Signed-off-by: Nikita Shubin <n.shubin@yadro.com>
> ---
>  arch/riscv/kernel/perf_callchain.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/riscv/kernel/perf_callchain.c b/arch/riscv/kernel/perf_callchain.c
> index 1fc075b8f764..7aca6a238173 100644
> --- a/arch/riscv/kernel/perf_callchain.c
> +++ b/arch/riscv/kernel/perf_callchain.c
> @@ -68,7 +68,7 @@ void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
>
>  static bool fill_callchain(void *entry, unsigned long pc)
>  {
> -	return perf_callchain_store(entry, pc);
> +	return perf_callchain_store(entry, pc) == 0;
>  }
>
>  void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,

Thanks, this is on for-next.  Looks like we share some of this code with 
at least arm64, it might be worth refactoring this into something 
generic.