From: YueHaibing <[email protected]>
Date: Mon, 24 Jun 2019 11:49:13 +0800

> @@ -998,6 +998,9 @@ bool __skb_flow_dissect(const struct net *net,
>                   skb && skb_vlan_tag_present(skb)) {
>                       proto = skb->protocol;
>               } else {
> +                     if (dissector_vlan == FLOW_DISSECTOR_KEY_MAX)
> +                             nhoff -= sizeof(*vlan);
> +

But this is wrong when we are being called via eth_get_headlen(), in
that case nhoff will be sizeof(struct ethhdr).

Reply via email to