summaryrefslogtreecommitdiffstats
path: root/drivers/net/tap.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2019-02-22 12:55:32 -0800
committerDavid S. Miller <davem@davemloft.net>2019-02-22 12:55:32 -0800
commitd29d1c4957d4dde1a7578b10f2a2d1fae39bd47a (patch)
treeb41c5aa5786c702502de08f1560751c51170156e /drivers/net/tap.c
parent5328b633c9b3c3af38bec8cb70120658c0866e0a (diff)
parent41f5f63cd17530d9eddaf99a71f5d069afd787d8 (diff)
Merge branch 'AF_PACKET-transport_offset-fix'
Maxim Mikityanskiy says: ==================== AF_PACKET transport_offset fix This patch series contains the implementation of the RFC that was posted on this mailing list previously: https://www.spinics.net/lists/netdev/msg541709.html It fixes having incorrect skb->transport_header values in cases when dissect fails. Having correct values set by the kernel fixes mlx5 operation and allows to remove some unnecessary code flows in mlx5. v2 changes: - Rebase against the fresh net-next. - Don't return bool from skb_probe_transport_header (and don't rename the function). - WARN_ON_ONCE and error path in case of GSO without the L4 header. ==================== Acked-by: Willem de Bruijn <willemb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tap.c')
-rw-r--r--drivers/net/tap.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/tap.c b/drivers/net/tap.c
index c0b52e48f0e6..2ea9b4976f4a 100644
--- a/drivers/net/tap.c
+++ b/drivers/net/tap.c
@@ -712,7 +712,7 @@ static ssize_t tap_get_user(struct tap_queue *q, void *msg_control,
goto err_kfree;
}
- skb_probe_transport_header(skb, ETH_HLEN);
+ skb_probe_transport_header(skb);
/* Move network header to the right position for VLAN tagged packets */
if ((skb->protocol == htons(ETH_P_8021Q) ||
@@ -1187,7 +1187,7 @@ static int tap_get_user_xdp(struct tap_queue *q, struct xdp_buff *xdp)
tap = rcu_dereference(q->tap);
if (tap) {
skb->dev = tap->dev;
- skb_probe_transport_header(skb, ETH_HLEN);
+ skb_probe_transport_header(skb);
dev_queue_xmit(skb);
} else {
kfree_skb(skb);