diff options
| author | Dave Airlie <airlied@redhat.com> | 2016-11-07 09:37:09 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2016-11-07 09:37:09 +1000 |
| commit | 7b624ad8fea1be7ff4c22643e212191aa6a2a3c2 (patch) | |
| tree | 41d0357d3259868cd85521c3fb9578cd2fc13831 /include/net/tcp.h | |
| parent | dc345c46774bc150ab852d2c74ee6542de438d46 (diff) | |
| parent | bc33b0ca11e3df467777a4fa7639ba488c9d4911 (diff) | |
| download | blackbird-op-linux-7b624ad8fea1be7ff4c22643e212191aa6a2a3c2.tar.gz blackbird-op-linux-7b624ad8fea1be7ff4c22643e212191aa6a2a3c2.zip | |
Backmerge tag 'v4.9-rc4' into drm-next
Linux 4.9-rc4
This is needed for nouveau development.
Diffstat (limited to 'include/net/tcp.h')
| -rw-r--r-- | include/net/tcp.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h index f83b7f220a65..5b82d4d94834 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -794,12 +794,23 @@ struct tcp_skb_cb { */ static inline int tcp_v6_iif(const struct sk_buff *skb) { - bool l3_slave = skb_l3mdev_slave(TCP_SKB_CB(skb)->header.h6.flags); + bool l3_slave = ipv6_l3mdev_skb(TCP_SKB_CB(skb)->header.h6.flags); return l3_slave ? skb->skb_iif : TCP_SKB_CB(skb)->header.h6.iif; } #endif +/* TCP_SKB_CB reference means this can not be used from early demux */ +static inline bool inet_exact_dif_match(struct net *net, struct sk_buff *skb) +{ +#if IS_ENABLED(CONFIG_NET_L3_MASTER_DEV) + if (!net->ipv4.sysctl_tcp_l3mdev_accept && + ipv4_l3mdev_skb(TCP_SKB_CB(skb)->header.h4.flags)) + return true; +#endif + return false; +} + /* Due to TSO, an SKB can be composed of multiple actual * packets. To keep these tracked properly, we use this. */ |

