TCF_LAYER_LINK and TCF_LAYER_NETWORK returned the same pointer as skb->data points to the network header. Use skb_mac_header instead.
Signed-off-by: Wolfgang Bumiller <w.bumil...@proxmox.com> --- Only change: fixed up commit message Previous comment: Alternatively this could return skb->head directly, but 'sk_buff->mac_header' is documented as 'Link layer header' and this seemed more clear. Since on the first read I thought "it looks fine" while in fact skb->head comes before skb->data, so this seems less confusing. include/net/pkt_cls.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index 8e08b6da72f3..753ac9361154 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -522,7 +522,7 @@ static inline unsigned char * tcf_get_base_ptr(struct sk_buff *skb, int layer) { switch (layer) { case TCF_LAYER_LINK: - return skb->data; + return skb_mac_header(skb); case TCF_LAYER_NETWORK: return skb_network_header(skb); case TCF_LAYER_TRANSPORT: -- 2.11.0