mirror of https://gitee.com/openkylin/linux.git
net: core: use eth_type_vlan in __netif_receive_skb_core
Replace the check for ETH_P_8021Q and ETH_P_8021AD in __netif_receive_skb_core with eth_type_vlan. Signed-off-by: Menglong Dong <dong.menglong@zte.com.cn> Link: https://lore.kernel.org/r/20210111104221.3451-1-dong.menglong@zte.com.cn Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
679500e385
commit
324cefaf1c
|
@ -5151,8 +5151,7 @@ static int __netif_receive_skb_core(struct sk_buff **pskb, bool pfmemalloc,
|
|||
skb_reset_mac_len(skb);
|
||||
}
|
||||
|
||||
if (skb->protocol == cpu_to_be16(ETH_P_8021Q) ||
|
||||
skb->protocol == cpu_to_be16(ETH_P_8021AD)) {
|
||||
if (eth_type_vlan(skb->protocol)) {
|
||||
skb = skb_vlan_untag(skb);
|
||||
if (unlikely(!skb))
|
||||
goto out;
|
||||
|
@ -5236,8 +5235,7 @@ static int __netif_receive_skb_core(struct sk_buff **pskb, bool pfmemalloc,
|
|||
* find vlan device.
|
||||
*/
|
||||
skb->pkt_type = PACKET_OTHERHOST;
|
||||
} else if (skb->protocol == cpu_to_be16(ETH_P_8021Q) ||
|
||||
skb->protocol == cpu_to_be16(ETH_P_8021AD)) {
|
||||
} else if (eth_type_vlan(skb->protocol)) {
|
||||
/* Outer header is 802.1P with vlan 0, inner header is
|
||||
* 802.1Q or 802.1AD and vlan_do_receive() above could
|
||||
* not find vlan dev for vlan id 0.
|
||||
|
|
Loading…
Reference in New Issue