summaryrefslogtreecommitdiffstats
path: root/tools/include/uapi/linux
diff options
context:
space:
mode:
authorStanislav Fomichev2019-07-01 19:38:39 +0200
committerDaniel Borkmann2019-07-08 16:22:55 +0200
commit600c70bad6594cb124c641ed05355ca134650ea4 (patch)
tree64b117309f808caca760fc11a37284880654eda3 /tools/include/uapi/linux
parentMerge branch 'bpf-libbpf-perf-rb-api' (diff)
downloadkernel-qcow2-linux-600c70bad6594cb124c641ed05355ca134650ea4.tar.gz
kernel-qcow2-linux-600c70bad6594cb124c641ed05355ca134650ea4.tar.xz
kernel-qcow2-linux-600c70bad6594cb124c641ed05355ca134650ea4.zip
bpf: allow wide (u64) aligned stores for some fields of bpf_sock_addr
Since commit cd17d7770578 ("bpf/tools: sync bpf.h") clang decided that it can do a single u64 store into user_ip6[2] instead of two separate u32 ones: # 17: (18) r2 = 0x100000000000000 # ; ctx->user_ip6[2] = bpf_htonl(DST_REWRITE_IP6_2); # 19: (7b) *(u64 *)(r1 +16) = r2 # invalid bpf_context access off=16 size=8 >From the compiler point of view it does look like a correct thing to do, so let's support it on the kernel side. Credit to Andrii Nakryiko for a proper implementation of bpf_ctx_wide_store_ok. Cc: Andrii Nakryiko <andriin@fb.com> Cc: Yonghong Song <yhs@fb.com> Fixes: cd17d7770578 ("bpf/tools: sync bpf.h") Reported-by: kernel test robot <rong.a.chen@intel.com> Acked-by: Yonghong Song <yhs@fb.com> Acked-by: Andrii Nakryiko <andriin@fb.com> Signed-off-by: Stanislav Fomichev <sdf@google.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'tools/include/uapi/linux')
0 files changed, 0 insertions, 0 deletions