]> git.baikalelectronics.ru Git - kernel.git/commit
bpf: drop unnecessary test in cls_bpf_classify and tcf_bpf
authorDaniel Borkmann <daniel@iogearbox.net>
Mon, 12 Sep 2016 21:38:42 +0000 (23:38 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Sep 2016 23:29:47 +0000 (19:29 -0400)
commit1ef6ba980ed41667dc86d88149cc05b42d890daf
tree69a455f64c1e3a62bee759750acd9d112a4e110d
parentdc47f11bb6b4f7a530e4ece490fbb1f21537512f
bpf: drop unnecessary test in cls_bpf_classify and tcf_bpf

The skb_mac_header_was_set() test in cls_bpf's and act_bpf's fast-path is
actually unnecessary and can be removed altogether. This was added by
commit fd6d3cc29fc4 ("bpf: fix bpf helpers to use skb->mac_header relative
offsets"), which was later on improved by ae737423a19c ("bpf: make programs
see skb->data == L2 for ingress and egress"). We're always guaranteed to
have valid mac header at the time we invoke cls_bpf_classify() or tcf_bpf().

Reason is that since e335aad38f0c ("net: reset mac header in dev_start_xmit()")
we do skb_reset_mac_header() in __dev_queue_xmit() before we could call
into sch_handle_egress() or any subsequent enqueue. sch_handle_ingress()
always sees a valid mac header as well (things like skb_reset_mac_len()
would badly fail otherwise). Thus, drop the unnecessary test in classifier
and action case.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/act_bpf.c
net/sched/cls_bpf.c