]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: add sk_drops_skbadd() helper
authorEric Dumazet <edumazet@google.com>
Tue, 26 Aug 2025 12:50:28 +0000 (12:50 +0000)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 28 Aug 2025 11:14:50 +0000 (13:14 +0200)
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>
include/linux/skmsg.h
include/net/sock.h
include/net/udp.h
net/ipv4/tcp_input.c
net/ipv4/tcp_ipv4.c
net/ipv6/tcp_ipv6.c
net/mptcp/protocol.c

index 0b9095a281b8988dfd06c69254d2bcbedcfaf6b4..49847888c287ab980531c4b78f5ab4aac5018240 100644 (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);
 }
 
index 34d7029eb622773e40e7c4ebd422d33b1c0a7836..9edb42ff06224cb8a1dd4f84af25bc22d1803ca9 100644 (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)
index e2af3bda90c9327105bb329927fd3521e51926d8..7b26d4c50f33b94507933c407531c14b8edd306a 100644 (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;
index a52a747d8a55e6a405d2fb1608e979abceb51c07..f1be65af1a777a803ae402c933e539cdabff7202 100644 (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);
 }
 
index a0c93b24c6e0ca2eb477686e477d164b0b132e7a..7c1d612afca18b424b32ee5e97b99a68062d8436 100644 (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;
index 8b2e7b7afbd847b5d94b30ab27779e4dc705710d..b4e56b8772730579cb85f10b147a15acce03f8e4 100644 (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;
index f2e728239480444ffdb297efc35303848d4c4a31..ad41c48126e44fda646f1ec1c81957db1407a6cc 100644 (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);
 }