bpf: add cg_skb_is_valid_access for BPF_PROG_TYPE_CGROUP_SKB
authorSong Liu <songliubraving@fb.com>
Fri, 19 Oct 2018 16:57:57 +0000 (09:57 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 19 Oct 2018 20:49:34 +0000 (13:49 -0700)
commitb39b5f411dcfce28ff954e5d6acb2c11be3cb0ec
tree4f724a3269469e76ed30c674bf52ddef3fb93db0
parent2929ad29a3015120ab64c86f362fc2a590ceb69c
bpf: add cg_skb_is_valid_access for BPF_PROG_TYPE_CGROUP_SKB

BPF programs of BPF_PROG_TYPE_CGROUP_SKB need to access headers in the
skb. This patch enables direct access of skb for these programs.

Two helper functions bpf_compute_and_save_data_end() and
bpf_restore_data_end() are introduced. There are used in
__cgroup_bpf_run_filter_skb(), to compute proper data_end for the
BPF program, and restore original data afterwards.

Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
include/linux/filter.h
kernel/bpf/cgroup.c
net/core/filter.c