net: sched: fix skb->protocol use in case of accelerated vlan path
authorJiri Pirko <jiri@resnulli.us>
Tue, 13 Jan 2015 16:13:43 +0000 (17:13 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 13 Jan 2015 22:51:08 +0000 (17:51 -0500)
commitd8b9605d2697c48fb822c821c5751afbb4567003
treee9c4cbcafae686743acae5cd834086735e31aa7a
parent8bdda5ddd1f1590ae24002749adb72693b80baaf
net: sched: fix skb->protocol use in case of accelerated vlan path

tc code implicitly considers skb->protocol even in case of accelerated
vlan paths and expects vlan protocol type here. However, on rx path,
if the vlan header was already stripped, skb->protocol contains value
of next header. Similar situation is on tx path.

So for skbs that use skb->vlan_tci for tagging, use skb->vlan_proto instead.

Reported-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/pkt_sched.h
net/sched/act_csum.c
net/sched/cls_flow.c
net/sched/em_ipset.c
net/sched/em_meta.c
net/sched/sch_api.c
net/sched/sch_dsmark.c
net/sched/sch_teql.c