]> git.baikalelectronics.ru Git - kernel.git/commit
ipvlan: fix various issues in ipvlan_process_multicast()
authorEric Dumazet <edumazet@google.com>
Thu, 22 Dec 2016 02:00:24 +0000 (18:00 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 23 Dec 2016 22:53:47 +0000 (17:53 -0500)
commitc0fc02a9160ea604eecd2e6da64304c38315c62a
tree576fad624349c35feded5a554103bf1c4cf5a68e
parent96d63049980b3c68ed40534dce4fbd0b3ded6d62
ipvlan: fix various issues in ipvlan_process_multicast()

1) netif_rx() / dev_forward_skb() should not be called from process
context.

2) ipvlan_count_rx() should be called with preemption disabled.

3) We should check if ipvlan->dev is up before feeding packets
to netif_rx()

4) We need to prevent device from disappearing if some packets
are in the multicast backlog.

5) One kfree_skb() should be a consume_skb() eventually

Fixes: e47b8db6a094 ("ipvlan: Defer multicast / broadcast processing to
a work-queue")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Mahesh Bandewar <maheshb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ipvlan/ipvlan_core.c
drivers/net/ipvlan/ipvlan_main.c