Commit ec133572 authored by Vladimir Oltean's avatar Vladimir Oltean Committed by David S. Miller

net: flow_dissector: fix RPS on DSA masters

After the blamed patch, __skb_flow_dissect() on the DSA master stopped
adjusting for the length of the DSA headers. This is because it was told
to adjust only if the needed_headroom is zero, aka if there is no DSA
header. Of course, the adjustment should be done only if there _is_ a
DSA header.

Modify the comment too so it is clearer.

Fixes: 4e500251 ("net: dsa: generalize overhead for taggers that use both headers and trailers")
Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3009e8aa
...@@ -943,8 +943,8 @@ bool __skb_flow_dissect(const struct net *net, ...@@ -943,8 +943,8 @@ bool __skb_flow_dissect(const struct net *net,
int offset = 0; int offset = 0;
ops = skb->dev->dsa_ptr->tag_ops; ops = skb->dev->dsa_ptr->tag_ops;
/* Tail taggers don't break flow dissection */ /* Only DSA header taggers break flow dissection */
if (!ops->needed_headroom) { if (ops->needed_headroom) {
if (ops->flow_dissect) if (ops->flow_dissect)
ops->flow_dissect(skb, &proto, &offset); ops->flow_dissect(skb, &proto, &offset);
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment