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

From: Koba Ko
Date: Wed Sep 20 2023 - 00:15:00 EST


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>
---
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