net: ipv4: fix list processing on L3 slave devices
authorEdward Cree <ecree@solarflare.com>
Thu, 5 Jul 2018 14:47:39 +0000 (15:47 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 6 Jul 2018 02:19:07 +0000 (11:19 +0900)
commitefe6aaca67a0229a195f493d142102c864b41dde
tree04ac8eb3f34139235484304995944505d8c0995e
parent2cc0608e42aceb38abc9e57a017449b9efc2e4a9
net: ipv4: fix list processing on L3 slave devices

If we have an L3 master device, l3mdev_ip_rcv() will steal the skb, but
 we were returning NET_RX_SUCCESS from ip_rcv_finish_core() which meant
 that ip_list_rcv_finish() would keep it on the list.  Instead let's
 move the l3mdev_ip_rcv() call into the caller, so that our response to
 a steal can be different in the single packet path (return
 NET_RX_SUCCESS) and the list path (forget this packet and continue).

Fixes: 5fa12739a53d ("net: ipv4: listify ip_rcv_finish")
Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ip_input.c