summary refs log tree commit diff
path: root/drivers/net/tap.c
diff options
context:
space:
mode:
authorMenglong Dong <dong.menglong@zte.com.cn>2021-01-14 18:32:38 -0800
committerJakub Kicinski <kuba@kernel.org>2021-01-15 20:13:49 -0800
commitb69df2608281b71575fbb3b9f426dbcc4be8a700 (patch)
tree9a03a74248c1bf225c6c694890b7bb6502d25afc /drivers/net/tap.c
parent32d91b4af35312cf559a45a07aad1f3bde996dfb (diff)
downloadlinux-b69df2608281b71575fbb3b9f426dbcc4be8a700.tar.gz
net: tap: check vlan with eth_type_vlan() method
Replace some checks for ETH_P_8021Q and ETH_P_8021AD in
drivers/net/tap.c with eth_type_vlan.

Signed-off-by: Menglong Dong <dong.menglong@zte.com.cn>
Link: https://lore.kernel.org/r/20210115023238.4681-1-dong.menglong@zte.com.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/tap.c')
-rw-r--r--drivers/net/tap.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/tap.c b/drivers/net/tap.c
index 3c652c8ac5ba..ff4aa35979a1 100644
--- a/drivers/net/tap.c
+++ b/drivers/net/tap.c
@@ -713,8 +713,7 @@ static ssize_t tap_get_user(struct tap_queue *q, void *msg_control,
 	skb_probe_transport_header(skb);
 
 	/* Move network header to the right position for VLAN tagged packets */
-	if ((skb->protocol == htons(ETH_P_8021Q) ||
-	     skb->protocol == htons(ETH_P_8021AD)) &&
+	if (eth_type_vlan(skb->protocol) &&
 	    __vlan_get_protocol(skb, skb->protocol, &depth) != 0)
 		skb_set_network_header(skb, depth);
 
@@ -1164,8 +1163,7 @@ static int tap_get_user_xdp(struct tap_queue *q, struct xdp_buff *xdp)
 	}
 
 	/* Move network header to the right position for VLAN tagged packets */
-	if ((skb->protocol == htons(ETH_P_8021Q) ||
-	     skb->protocol == htons(ETH_P_8021AD)) &&
+	if (eth_type_vlan(skb->protocol) &&
 	    __vlan_get_protocol(skb, skb->protocol, &depth) != 0)
 		skb_set_network_header(skb, depth);