diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 225bfc80811225e5a334950c95c5578c2ae678a1..349123592af0f5387f3dd8aec32eb7c5fdcce9bd 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -451,6 +451,10 @@ static rx_handler_result_t macvlan_handle_frame(struct sk_buff **pskb) int ret; rx_handler_result_t handle_res; + /* Packets from dev_loopback_xmit() do not have L2 header, bail out */ + if (unlikely(skb->pkt_type == PACKET_LOOPBACK)) + return RX_HANDLER_PASS; + port = macvlan_port_get_rcu(skb->dev); if (is_multicast_ether_addr(eth->h_dest)) { unsigned int hash;