[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bc137f2e-4375-4174-8985-c5fe31fbbf98@huaweicloud.com>
Date: Wed, 9 Oct 2024 18:31:57 +0800
From: Pu Lehui <pulehui@...weicloud.com>
To: Björn Töpel <bjorn@...nel.org>, bpf@...r.kernel.org,
linux-riscv@...ts.infradead.org, netdev@...r.kernel.org
Cc: Puranjay Mohan <puranjay@...nel.org>, Alexei Starovoitov
<ast@...nel.org>, Daniel Borkmann <daniel@...earbox.net>,
Andrii Nakryiko <andrii@...nel.org>, Martin KaFai Lau
<martin.lau@...ux.dev>, Eduard Zingerman <eddyz87@...il.com>,
Song Liu <song@...nel.org>, Yonghong Song <yonghong.song@...ux.dev>,
John Fastabend <john.fastabend@...il.com>, KP Singh <kpsingh@...nel.org>,
Stanislav Fomichev <sdf@...ichev.me>, Hao Luo <haoluo@...gle.com>,
Jiri Olsa <jolsa@...nel.org>, Palmer Dabbelt <palmer@...belt.com>,
Paul Walmsley <paul.walmsley@...ive.com>, Albert Ou <aou@...s.berkeley.edu>
Subject: Re: [PATCH bpf] riscv, bpf: Fix possible infinite tailcall when
CONFIG_CFI_CLANG is enabled
On 2024/10/9 16:33, Björn Töpel wrote:
> Pu Lehui <pulehui@...weicloud.com> writes:
>
>> From: Pu Lehui <pulehui@...wei.com>
>>
>> When CONFIG_CFI_CLANG is enabled, the number of prologue instructions
>> skipped by tailcall needs to include the kcfi instruction, otherwise the
>> TCC will be initialized every tailcall is called, which may result in
>> infinite tailcalls.
>>
>> Fixes: e63985ecd226 ("bpf, riscv64/cfi: Support kCFI + BPF on riscv64")
>> Signed-off-by: Pu Lehui <pulehui@...wei.com>
>
> Thanks! Did you test this with the selftest suite? Did the tailcall
> tests catch it?
Oh, I discovered it through code review.
I just tried llvm compilation but it seems that my environment cannot
compile bpf selftests. I need to find why.
But after reading the tailcalls testcase, I found that the tailcall_3
subtest can cover this scenario as it will verify the TCC value.
>
> Note to self is that I should run kCFI enabled tests for RISC-V.
>
>
> Acked-by: Björn Töpel <bjorn@...nel.org>
Powered by blists - more mailing lists