summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorSerhey Popovych <serhe.popovych@gmail.com>2019-11-29 11:21:29 +0200
committerJozsef Kadlecsik <kadlec@netfilter.org>2019-12-09 11:02:27 +0100
commitde06e92fc9b22f9c78316a2f2f4bc524696a91f6 (patch)
treeffd218411fa6c531f1ee0329abd8840d76b62cc8 /kernel
parentbb750b8ded015c4447cc2eee601709f50d06574e (diff)
configure.ac: Build on kernels without skb->vlan_proto correctly
Support for EtherType other than ETH_P_8021Q for VLAN header introduced with commit 86a9bad3ab6b ("net: vlan: add protocol argument to packet tagging functions") in upstream kernel since v3.10. To support build on older kernels check for ->vlan_proto presence in @struct sk_buff and return htons(ETH_P_8021Q) when it is missing. Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com> Signed-off-by: Jozsef Kadlecsik <kadlec@netfilter.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/include/linux/netfilter/ipset/ip_set_compat.h.in4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in b/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in
index f4d7acc..38f4179 100644
--- a/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in
+++ b/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in
@@ -338,7 +338,11 @@ static inline int nla_put_in6_addr(struct sk_buff *skb, int attrtype,
static inline __be16 tc_skb_protocol(const struct sk_buff *skb)
{
if (vlan_tx_tag_present(skb))
+#ifdef HAVE_VLAN_PROTO_IN_SK_BUFF
return skb->vlan_proto;
+#else
+ return htons(ETH_P_8021Q);
+#endif
return skb->protocol;
}
#endif