net: skb: use kfree_skb_reason() in tcp_v4_rcv()
authorMenglong Dong <imagedong@tencent.com>
Sun, 9 Jan 2022 06:36:27 +0000 (14:36 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Jul 2022 15:25:15 +0000 (17:25 +0200)
commit1629144da3838569a4023d16fd1764039e98705b
treee485d17a9ca84739bd16729433771c016812464b
parent5158e18225c06f39cde0176a431db6e60f52ebc2
net: skb: use kfree_skb_reason() in tcp_v4_rcv()

[ Upstream commit 85125597419aec3aa7b8f3b8713e415f997796f2 ]

Replace kfree_skb() with kfree_skb_reason() in tcp_v4_rcv(). Following
drop reasons are added:

SKB_DROP_REASON_NO_SOCKET
SKB_DROP_REASON_PKT_TOO_SMALL
SKB_DROP_REASON_TCP_CSUM
SKB_DROP_REASON_TCP_FILTER

After this patch, 'kfree_skb' event will print message like this:

$           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
$              | |         |   |||||     |         |
          <idle>-0       [000] ..s1.    36.113438: kfree_skb: skbaddr=(____ptrval____) protocol=2048 location=(____ptrval____) reason: NO_SOCKET

The reason of skb drop is printed too.

Signed-off-by: Menglong Dong <imagedong@tencent.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/linux/skbuff.h
include/trace/events/skb.h
net/ipv4/tcp_ipv4.c