consume_skb(skb);
                                return NET_XMIT_DROP;
                        }
-                       return ipvlan_rcv_frame(addr, &skb, true);
+                       ipvlan_rcv_frame(addr, &skb, true);
+                       return NET_XMIT_SUCCESS;
                }
        }
 out:
                                        consume_skb(skb);
                                        return NET_XMIT_DROP;
                                }
-                               return ipvlan_rcv_frame(addr, &skb, true);
+                               ipvlan_rcv_frame(addr, &skb, true);
+                               return NET_XMIT_SUCCESS;
                        }
                }
                skb = skb_share_check(skb, GFP_ATOMIC);
                 * the skb for the main-dev. At the RX side we just return
                 * RX_PASS for it to be processed further on the stack.
                 */
-               return dev_forward_skb(ipvlan->phy_dev, skb);
+               dev_forward_skb(ipvlan->phy_dev, skb);
+               return NET_XMIT_SUCCESS;
 
        } else if (is_multicast_ether_addr(eth->h_dest)) {
                skb_reset_mac_header(skb);