net: skb: add pskb_network_may_pull_reason() helper
authorMenglong Dong <menglong8.dong@gmail.com>
Wed, 9 Oct 2024 02:28:19 +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_network_may_pull_reason() and make
pskb_network_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>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/skbuff.h

index 39f1d16f362887821caa022464695c4045461493..48f1e0fa2a13619e41dfba40f2593dd61f9b9a06 100644 (file)
@@ -3130,9 +3130,15 @@ static inline int skb_inner_network_offset(const struct sk_buff *skb)
        return skb_inner_network_header(skb) - skb->data;
 }
 
+static inline enum skb_drop_reason
+pskb_network_may_pull_reason(struct sk_buff *skb, unsigned int len)
+{
+       return pskb_may_pull_reason(skb, skb_network_offset(skb) + len);
+}
+
 static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
 {
-       return pskb_may_pull(skb, skb_network_offset(skb) + len);
+       return pskb_network_may_pull_reason(skb, len) == SKB_NOT_DROPPED_YET;
 }
 
 /*