From: Zhang Shengju <zhangshen...@cmss.chinamobile.com> Date: Tue, 1 Mar 2016 07:24:42 +0000
> Currently, arp_rcv() always return zero on a packet delivery upcall. > > To make its behavior more compliant with the way this API should be > used, this patch changes this to let it return NET_RX_SUCCESS when the > packet is proper handled, and NET_RX_DROP otherwise. > > Signed-off-by: Zhang Shengju <zhangshen...@cmss.chinamobile.com> This change is bogus. > @@ -880,7 +880,7 @@ out: > consume_skb(skb); > out_free_dst: > dst_release(reply_dst); > - return 0; > + return NET_RX_SUCCESS; Most of the paths to out: are dropping the request for one reason or another. If you want to do this right you need to split these two exit paths, convert consume_skb() to kfree_skb() in the drop path, and then you can return accurate NET_* codes.