aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/filter.c
diff options
context:
space:
mode:
authorDaniel Borkmann <daniel@iogearbox.net>2015-09-23 22:20:15 +0200
committerDavid S. Miller <davem@davemloft.net>2015-09-23 14:25:51 -0700
commit927ab1d764565aec36ace1d017fa14c1e84f2769 (patch)
tree46ab37f63488558dce59828a1fb3d5e0fbb96a2f /net/core/filter.c
parentipv6 Use get_hash_from_flowi6 for rt6 hash (diff)
downloadlinux-dev-927ab1d764565aec36ace1d017fa14c1e84f2769.tar.xz
linux-dev-927ab1d764565aec36ace1d017fa14c1e84f2769.zip
sched, bpf: let stack handle !IFF_UP devs on bpf_clone_redirect
Similarly as already the case in bpf_redirect()/skb_do_redirect() pair, let the stack deal with devs that are !IFF_UP. dev_forward_skb() as well as dev_queue_xmit() will free the skb and increment drop counter internally in such cases, so we can spare the condition in bpf_clone_redirect(). Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Alexei Starovoitov <ast@plumgrid.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/filter.c')
-rw-r--r--net/core/filter.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/net/core/filter.c b/net/core/filter.c
index da3f3d94d6e9..96bd962c292d 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -1404,9 +1404,6 @@ static u64 bpf_clone_redirect(u64 r1, u64 ifindex, u64 flags, u64 r4, u64 r5)
if (unlikely(!dev))
return -EINVAL;
- if (unlikely(!(dev->flags & IFF_UP)))
- return -EINVAL;
-
skb2 = skb_clone(skb, GFP_ATOMIC);
if (unlikely(!skb2))
return -ENOMEM;