1
0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2026-01-12 01:20:14 +00:00

net: add sk_drops_skbadd() helper

Existing sk_drops_add() helper is renamed to sk_drops_skbadd().

Add sk_drops_add() and convert sk_drops_inc() to use it.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20250826125031.1578842-3-edumazet@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Eric Dumazet 2025-08-26 12:50:28 +00:00 committed by Paolo Abeni
parent f86f42ed2c
commit cb4d5a6eb6
7 changed files with 16 additions and 11 deletions

View File

@ -315,7 +315,7 @@ static inline bool sk_psock_test_state(const struct sk_psock *psock,
static inline void sock_drop(struct sock *sk, struct sk_buff *skb)
{
sk_drops_add(sk, skb);
sk_drops_skbadd(sk, skb);
kfree_skb(skb);
}

View File

@ -2682,9 +2682,14 @@ struct sock_skb_cb {
#define sock_skb_cb_check_size(size) \
BUILD_BUG_ON((size) > SOCK_SKB_CB_OFFSET)
static inline void sk_drops_add(struct sock *sk, int segs)
{
atomic_add(segs, &sk->sk_drops);
}
static inline void sk_drops_inc(struct sock *sk)
{
atomic_inc(&sk->sk_drops);
sk_drops_add(sk, 1);
}
static inline int sk_drops_read(const struct sock *sk)
@ -2704,11 +2709,11 @@ sock_skb_set_dropcount(const struct sock *sk, struct sk_buff *skb)
sk_drops_read(sk) : 0;
}
static inline void sk_drops_add(struct sock *sk, const struct sk_buff *skb)
static inline void sk_drops_skbadd(struct sock *sk, const struct sk_buff *skb)
{
int segs = max_t(u16, 1, skb_shinfo(skb)->gso_segs);
atomic_add(segs, &sk->sk_drops);
sk_drops_add(sk, segs);
}
static inline ktime_t sock_read_timestamp(struct sock *sk)

View File

@ -627,7 +627,7 @@ static inline struct sk_buff *udp_rcv_segment(struct sock *sk,
return segs;
drop:
atomic_add(drop_count, &sk->sk_drops);
sk_drops_add(sk, drop_count);
SNMP_ADD_STATS(__UDPX_MIB(sk, ipv4), UDP_MIB_INERRORS, drop_count);
kfree_skb(skb);
return NULL;

View File

@ -4830,7 +4830,7 @@ static bool tcp_ooo_try_coalesce(struct sock *sk,
noinline_for_tracing static void
tcp_drop_reason(struct sock *sk, struct sk_buff *skb, enum skb_drop_reason reason)
{
sk_drops_add(sk, skb);
sk_drops_skbadd(sk, skb);
sk_skb_reason_drop(sk, skb, reason);
}

View File

@ -2254,7 +2254,7 @@ lookup:
&iph->saddr, &iph->daddr,
AF_INET, dif, sdif);
if (unlikely(drop_reason)) {
sk_drops_add(sk, skb);
sk_drops_skbadd(sk, skb);
reqsk_put(req);
goto discard_it;
}
@ -2399,7 +2399,7 @@ discard_it:
return 0;
discard_and_relse:
sk_drops_add(sk, skb);
sk_drops_skbadd(sk, skb);
if (refcounted)
sock_put(sk);
goto discard_it;

View File

@ -1809,7 +1809,7 @@ lookup:
&hdr->saddr, &hdr->daddr,
AF_INET6, dif, sdif);
if (drop_reason) {
sk_drops_add(sk, skb);
sk_drops_skbadd(sk, skb);
reqsk_put(req);
goto discard_it;
}
@ -1948,7 +1948,7 @@ discard_it:
return 0;
discard_and_relse:
sk_drops_add(sk, skb);
sk_drops_skbadd(sk, skb);
if (refcounted)
sock_put(sk);
goto discard_it;

View File

@ -137,7 +137,7 @@ struct sock *__mptcp_nmpc_sk(struct mptcp_sock *msk)
static void mptcp_drop(struct sock *sk, struct sk_buff *skb)
{
sk_drops_add(sk, skb);
sk_drops_skbadd(sk, skb);
__kfree_skb(skb);
}