ipvlan_process_multicast() runs from process context, there is no risk of stack overflow if we call netif_receive_skb() instead of netif_rx(). This avoids some overhead adding/removing skbs to/from a per-cpu backlog and raising/processing NET_RX softirqs. Signed-off-by: Eric Dumazet --- drivers/net/ipvlan/ipvlan_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ipvlan/ipvlan_core.c b/drivers/net/ipvlan/ipvlan_core.c index 1be8620ad3971d281fb36fd0770efd67b566ae60..7ad12dc7845c836bdd04395f153b2b4b397797d6 100644 --- a/drivers/net/ipvlan/ipvlan_core.c +++ b/drivers/net/ipvlan/ipvlan_core.c @@ -286,7 +286,7 @@ void ipvlan_process_multicast(struct work_struct *work) if (tx_pkt) ret = dev_forward_skb(ipvlan->dev, nskb); else - ret = netif_rx(nskb); + ret = netif_receive_skb(nskb); } ipvlan_count_rx(ipvlan, len, ret == NET_RX_SUCCESS, true); local_bh_enable(); -- 2.54.0.545.g6539524ca2-goog