icmp: correct return value of icmp_rcv()
authorZhang Shengju <zhangshengju@cmss.chinamobile.com>
Wed, 7 Dec 2016 06:52:53 +0000 (14:52 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 Dec 2016 16:24:23 +0000 (11:24 -0500)
Currently, icmp_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 <zhangshengju@cmss.chinamobile.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/icmp.c

index 691146a..f79d7a8 100644 (file)
@@ -1047,12 +1047,12 @@ int icmp_rcv(struct sk_buff *skb)
 
        if (success)  {
                consume_skb(skb);
-               return 0;
+               return NET_RX_SUCCESS;
        }
 
 drop:
        kfree_skb(skb);
-       return 0;
+       return NET_RX_DROP;
 csum_error:
        __ICMP_INC_STATS(net, ICMP_MIB_CSUMERRORS);
 error: