icmp: Remove some spurious dropped packet profile hits from the ICMP path
If icmp_rcv() has successfully processed the incoming ICMP datagram, we should use consume_skb() rather than kfree_skb() because a hit on the likes of perf -e skb:kfree_skb is not called-for. Signed-off-by: Rick Jones <rick.jones2@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
54aeba7f06
commit
e3e3217029
@@ -955,7 +955,7 @@ EXPORT_SYMBOL_GPL(ping_queue_rcv_skb);
|
||||
* All we need to do is get the socket.
|
||||
*/
|
||||
|
||||
void ping_rcv(struct sk_buff *skb)
|
||||
bool ping_rcv(struct sk_buff *skb)
|
||||
{
|
||||
struct sock *sk;
|
||||
struct net *net = dev_net(skb->dev);
|
||||
@@ -974,11 +974,11 @@ void ping_rcv(struct sk_buff *skb)
|
||||
pr_debug("rcv on socket %p\n", sk);
|
||||
ping_queue_rcv_skb(sk, skb_get(skb));
|
||||
sock_put(sk);
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
pr_debug("no socket, dropping\n");
|
||||
|
||||
/* We're called from icmp_rcv(). kfree_skb() is done there. */
|
||||
return false;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ping_rcv);
|
||||
|
||||
|
Reference in New Issue
Block a user