Re: [PATCH] x86/arch: Fix access invalid member when disable CONFIG_UNWINDER_ORC

From: Kumar Kartikeya Dwivedi
Date: Wed Sep 20 2023 - 05:58:39 EST


On Wed, 20 Sept 2023 at 06:14, Koba Ko <koba.ko@xxxxxxxxxxxxx> wrote:
>
> CONFIG_UNWINDER_DRAME_POINTER doesn't have bp and sp members.
> this leads the compilation error when only enable CONFIG_UNWINDER_DRAME_POINTER.
>
> arch/x86/net/bpf_jit_comp.c:3022:72: error: 'struct unwind_state' has no member named
> 'sp'; did you mean 'bp'?
> 3022 | if (!addr || !consume_fn(cookie, (u64)addr, (u64)state.sp, (u64)state.bp))
>
> Fixes: f18b03fabaa9 ("bpf: Implement BPF exceptions")
> Signed-off-by: Koba Ko <koba.ko@xxxxxxxxxxxxx>
> ---

Hi Koba,
Sincere apologies for the build breakage. This is fixed now in
bpf-next, and I believe it will soon make its way into net-next and
linux-next.
https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=5bfdb4fbf348f9e1935a6e9c64e7f60cb913fb21

> arch/x86/net/bpf_jit_comp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
> index 84005f2114e09..db2b09949d407 100644
> --- a/arch/x86/net/bpf_jit_comp.c
> +++ b/arch/x86/net/bpf_jit_comp.c
> @@ -3012,7 +3012,7 @@ bool bpf_jit_supports_exceptions(void)
>
> void arch_bpf_stack_walk(bool (*consume_fn)(void *cookie, u64 ip, u64 sp, u64 bp), void *cookie)
> {
> -#if defined(CONFIG_UNWINDER_ORC) || defined(CONFIG_UNWINDER_FRAME_POINTER)
> +#if defined(CONFIG_UNWINDER_ORC)
> struct unwind_state state;
> unsigned long addr;
>
> --
> 2.34.1
>