diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-11-04 06:41:09 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-11-04 06:41:09 +0100 |
commit | 16c8373ecf7b3c723a8e765d798ea413bc8345a6 (patch) | |
tree | 19684614078313ac940ce1ad744772dac71b91a6 /net/core/lwt_bpf.c | |
parent | d19f1d44e74322ae2a75dc07b7d44fecacd5bcfb (diff) | |
parent | a99d8080aaf358d5d23581244e5da23b35e340b9 (diff) | |
download | talos-op-linux-16c8373ecf7b3c723a8e765d798ea413bc8345a6.tar.gz talos-op-linux-16c8373ecf7b3c723a8e765d798ea413bc8345a6.zip |
Merge 5.4-rc6 into usb-next
We need the USB fixes in here to build on top of.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/core/lwt_bpf.c')
-rw-r--r-- | net/core/lwt_bpf.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/core/lwt_bpf.c b/net/core/lwt_bpf.c index f93785e5833c..74cfb8b5ab33 100644 --- a/net/core/lwt_bpf.c +++ b/net/core/lwt_bpf.c @@ -88,11 +88,16 @@ static int bpf_lwt_input_reroute(struct sk_buff *skb) int err = -EINVAL; if (skb->protocol == htons(ETH_P_IP)) { + struct net_device *dev = skb_dst(skb)->dev; struct iphdr *iph = ip_hdr(skb); + dev_hold(dev); + skb_dst_drop(skb); err = ip_route_input_noref(skb, iph->daddr, iph->saddr, - iph->tos, skb_dst(skb)->dev); + iph->tos, dev); + dev_put(dev); } else if (skb->protocol == htons(ETH_P_IPV6)) { + skb_dst_drop(skb); err = ipv6_stub->ipv6_route_input(skb); } else { err = -EAFNOSUPPORT; |