diff options
author | Eric Dumazet <edumazet@google.com> | 2023-02-02 09:40:59 +0000 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-02-03 19:56:23 -0800 |
commit | 42186e6c00352ce9df9e3f12b1ff82e61978d40b (patch) | |
tree | bc309bd52a7bdda4bfdc23278b89c0a89a2e3b7b /net/ipv4 | |
parent | 8d8ebd77f5ede7ff9e3072653221706655924191 (diff) |
ipv4: raw: add drop reasons
Use existing helpers and drop reason codes for RAW input path.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/raw.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index 006c1f0ed8b4..9865d15a08df 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c @@ -287,11 +287,13 @@ void raw_icmp_error(struct sk_buff *skb, int protocol, u32 info) static int raw_rcv_skb(struct sock *sk, struct sk_buff *skb) { + enum skb_drop_reason reason; + /* Charge it to the socket. */ ipv4_pktinfo_prepare(sk, skb); - if (sock_queue_rcv_skb(sk, skb) < 0) { - kfree_skb(skb); + if (sock_queue_rcv_skb_reason(sk, skb, &reason) < 0) { + kfree_skb_reason(skb, reason); return NET_RX_DROP; } @@ -302,7 +304,7 @@ int raw_rcv(struct sock *sk, struct sk_buff *skb) { if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb)) { atomic_inc(&sk->sk_drops); - kfree_skb(skb); + kfree_skb_reason(skb, SKB_DROP_REASON_XFRM_POLICY); return NET_RX_DROP; } nf_reset_ct(skb); |