Skip to content

Commit 0c57ff0

Browse files
Dmitry SkorodumovPaolo Abeni
authored andcommitted
ipvlan: Ignore PACKET_LOOPBACK in handle_mode_l2()
Packets with pkt_type == PACKET_LOOPBACK are captured by handle_frame() function, but they don't have L2 header. We should not process them in handle_mode_l2(). This doesn't affect old L2 functionality, since handling was anyway incorrect. Handle them the same way as in br_handle_frame(): just pass the skb. To observe invalid behaviour, just start "ping -b" on bcast address of port-interface. Fixes: 2ad7bf3 ("ipvlan: Initial check-in of the IPVLAN driver.") Signed-off-by: Dmitry Skorodumov <skorodumov.dmitry@huawei.com> Link: https://patch.msgid.link/20251202103906.4087675-1-skorodumov.dmitry@huawei.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
1 parent 5b48f49 commit 0c57ff0

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/net/ipvlan/ipvlan_core.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -737,6 +737,9 @@ static rx_handler_result_t ipvlan_handle_mode_l2(struct sk_buff **pskb,
737737
struct ethhdr *eth = eth_hdr(skb);
738738
rx_handler_result_t ret = RX_HANDLER_PASS;
739739

740+
if (unlikely(skb->pkt_type == PACKET_LOOPBACK))
741+
return RX_HANDLER_PASS;
742+
740743
if (is_multicast_ether_addr(eth->h_dest)) {
741744
if (ipvlan_external_frame(skb, port)) {
742745
struct sk_buff *nskb = skb_clone(skb, GFP_ATOMIC);

0 commit comments

Comments
 (0)