From f4e554663692f521ae553c40d7c64dd38c206cf2 Mon Sep 17 00:00:00 2001 From: Adrian Szyndela Date: Wed, 6 Sep 2017 15:14:57 +0200 Subject: [PATCH] BPF: make 'pseudo' function return pointer 'pseudo' function returns u64. However, in fact it returns pointers. It makes difference for 32-bit systems. The generated IR has additional trunc instruction, which may make further problems, remote: when passed to eBPF verifier. This patch is made to handle similar change in llvm. Change-Id: I4a691bdfa4b10b207197941c589026997b62f8fe --- src/cc/export/helpers.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cc/export/helpers.h b/src/cc/export/helpers.h index 4b6b9478..dbedb48e 100644 --- a/src/cc/export/helpers.h +++ b/src/cc/export/helpers.h @@ -366,7 +366,7 @@ u64 load_dword(void *skb, u64 off) { void bpf_store_byte(void *skb, u64 off, u64 val) asm("llvm.bpf.store.byte"); void bpf_store_half(void *skb, u64 off, u64 val) asm("llvm.bpf.store.half"); void bpf_store_word(void *skb, u64 off, u64 val) asm("llvm.bpf.store.word"); -u64 bpf_pseudo_fd(u64, u64) asm("llvm.bpf.pseudo"); +void *bpf_pseudo_fd(u64, u64) asm("llvm.bpf.pseudo"); static inline void __attribute__((always_inline)) bpf_store_dword(void *skb, u64 off, u64 val) { -- 2.34.1