]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: constify sk_skb_reason_drop() sock parameter
authorEric Dumazet <edumazet@google.com>
Mon, 11 May 2026 07:23:08 +0000 (07:23 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 13 May 2026 01:31:11 +0000 (18:31 -0700)
sk_skb_reason_drop() does not change sock parameter, make it
const so that we can call it from TCP stack without a cast
on a (const) listener socket.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20260511072310.1094859-2-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/skbuff.h
include/trace/events/skb.h
net/core/drop_monitor.c
net/core/skbuff.c

index 2bcf78a4de7b9edb0d1342319d4340c0a9997eeb..746e741a8ef99b3052ad581650e5d0db2a95dbb3 100644 (file)
@@ -1313,7 +1313,8 @@ static inline bool skb_data_unref(const struct sk_buff *skb,
        return true;
 }
 
-void __fix_address sk_skb_reason_drop(struct sock *sk, struct sk_buff *skb,
+void __fix_address sk_skb_reason_drop(const struct sock *sk,
+                                     struct sk_buff *skb,
                                      enum skb_drop_reason reason);
 
 static inline void
index b877133cd93a80f6b130fab64f334ecdeab8c8fd..2945aa7fe9a7ded5bdec5be3a67382de95239517 100644 (file)
@@ -24,14 +24,14 @@ DEFINE_DROP_REASON(FN, FN)
 TRACE_EVENT(kfree_skb,
 
        TP_PROTO(struct sk_buff *skb, void *location,
-                enum skb_drop_reason reason, struct sock *rx_sk),
+                enum skb_drop_reason reason, const struct sock *rx_sk),
 
        TP_ARGS(skb, location, reason, rx_sk),
 
        TP_STRUCT__entry(
                __field(void *,         skbaddr)
                __field(void *,         location)
-               __field(void *,         rx_sk)
+               __field(const void *,   rx_sk)
                __field(unsigned short, protocol)
                __field(enum skb_drop_reason,   reason)
        ),
index f23cea9e1aafb1e98a17f75e6b9c10ce3e2b9d45..2bf3cab5e557a15dd3fa7197098d6b0abcc01fab 100644 (file)
@@ -110,7 +110,7 @@ struct net_dm_alert_ops {
        void (*kfree_skb_probe)(void *ignore, struct sk_buff *skb,
                                void *location,
                                enum skb_drop_reason reason,
-                               struct sock *rx_sk);
+                               const struct sock *rx_sk);
        void (*napi_poll_probe)(void *ignore, struct napi_struct *napi,
                                int work, int budget);
        void (*work_item_func)(struct work_struct *work);
@@ -266,7 +266,7 @@ out:
 static void trace_kfree_skb_hit(void *ignore, struct sk_buff *skb,
                                void *location,
                                enum skb_drop_reason reason,
-                               struct sock *rx_sk)
+                               const struct sock *rx_sk)
 {
        trace_drop_common(skb, location);
 }
@@ -493,7 +493,7 @@ static void net_dm_packet_trace_kfree_skb_hit(void *ignore,
                                              struct sk_buff *skb,
                                              void *location,
                                              enum skb_drop_reason reason,
-                                             struct sock *rx_sk)
+                                             const struct sock *rx_sk)
 {
        ktime_t tstamp = ktime_get_real();
        struct per_cpu_dm_data *data;
index 7dad68e3b5186cf622a3ed5a6e87c09d46bc3fd6..acca1365672c4f98b004c2548133d70c9cf5ddc1 100644 (file)
@@ -1206,7 +1206,7 @@ void __kfree_skb(struct sk_buff *skb)
 EXPORT_SYMBOL(__kfree_skb);
 
 static __always_inline
-bool __sk_skb_reason_drop(struct sock *sk, struct sk_buff *skb,
+bool __sk_skb_reason_drop(const struct sock *sk, struct sk_buff *skb,
                          enum skb_drop_reason reason)
 {
        if (unlikely(!skb_unref(skb)))
@@ -1235,7 +1235,8 @@ bool __sk_skb_reason_drop(struct sock *sk, struct sk_buff *skb,
  *     'kfree_skb' tracepoint.
  */
 void __fix_address
-sk_skb_reason_drop(struct sock *sk, struct sk_buff *skb, enum skb_drop_reason reason)
+sk_skb_reason_drop(const struct sock *sk, struct sk_buff *skb,
+                  enum skb_drop_reason reason)
 {
        if (__sk_skb_reason_drop(sk, skb, reason))
                __kfree_skb(skb);