struct bpf_plt contains a u64 'target' field, but the struct itself is often placed at 4-byte aligned offsets in the BPF JIT buffer. This causes UBSAN to report misaligned-access warnings when dereferencing the structure. To pacify UBSAN and signal the compiler about the layout without over-aligning the entire JIT buffer allocation, mark struct bpf_plt as __packed. No functional change intended. Suggested-by: Will Deacon Fixes: b2ad54e1533e9 ("bpf, arm64: Build branch-target-identification-enabled BPF trampolines") Signed-off-by: Fuad Tabba --- arch/arm64/net/bpf_jit_comp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/net/bpf_jit_comp.c b/arch/arm64/net/bpf_jit_comp.c index 356d33c7a4ae..fc8c74c29bd6 100644 --- a/arch/arm64/net/bpf_jit_comp.c +++ b/arch/arm64/net/bpf_jit_comp.c @@ -98,7 +98,7 @@ struct bpf_plt { u32 insn_ldr; /* load target */ u32 insn_br; /* branch to target */ u64 target; /* target value */ -}; +} __packed; #define PLT_TARGET_SIZE sizeof_field(struct bpf_plt, target) #define PLT_TARGET_OFFSET offsetof(struct bpf_plt, target) -- 2.53.0.473.g4a7958ca14-goog