net: tunnel: add pskb_inet_may_pull_reason() helper
authorMenglong Dong <menglong8.dong@gmail.com>
Wed, 9 Oct 2024 02:28:20 +0000 (10:28 +0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 13 Oct 2024 10:33:08 +0000 (11:33 +0100)
Introduce the function pskb_inet_may_pull_reason() and make
pskb_inet_may_pull a simple inline call to it. The drop reasons of it just
come from pskb_may_pull_reason().

Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip_tunnels.h

index 6194fbb564c6897d906a90b2e24d33827f5ca9fa..7fc2f7bf837a40039cacd14c94b2238dbb43071b 100644 (file)
@@ -439,7 +439,8 @@ int ip_tunnel_encap_del_ops(const struct ip_tunnel_encap_ops *op,
 int ip_tunnel_encap_setup(struct ip_tunnel *t,
                          struct ip_tunnel_encap *ipencap);
 
-static inline bool pskb_inet_may_pull(struct sk_buff *skb)
+static inline enum skb_drop_reason
+pskb_inet_may_pull_reason(struct sk_buff *skb)
 {
        int nhlen;
 
@@ -456,7 +457,12 @@ static inline bool pskb_inet_may_pull(struct sk_buff *skb)
                nhlen = 0;
        }
 
-       return pskb_network_may_pull(skb, nhlen);
+       return pskb_network_may_pull_reason(skb, nhlen);
+}
+
+static inline bool pskb_inet_may_pull(struct sk_buff *skb)
+{
+       return pskb_inet_may_pull_reason(skb) == SKB_NOT_DROPPED_YET;
 }
 
 /* Variant of pskb_inet_may_pull().