[PATCH net-next 1/9] net: skb: introduce try_kfree_skb()

From: menglong8 . dong
Date: Sat Oct 29 2022 - 09:11:25 EST


From: Menglong Dong <imagedong@xxxxxxxxxxx>

In order to simply the code, introduce try_kfree_skb(), which allow
SKB_NOT_DROPPED_YET to be passed. When the reason is SKB_NOT_DROPPED_YET,
consume_skb() will be called to free the skb normally. Otherwise,
kfree_skb_reason() will be called.

Signed-off-by: Menglong Dong <imagedong@xxxxxxxxxxx>
---
include/linux/skbuff.h | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 59c9fd55699d..f722accc054e 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -1236,6 +1236,15 @@ static inline void consume_skb(struct sk_buff *skb)
}
#endif

+static inline void try_kfree_skb(struct sk_buff *skb,
+ enum skb_drop_reason reason)
+{
+ if (reason != SKB_NOT_DROPPED_YET)
+ kfree_skb_reason(skb, reason);
+ else
+ consume_skb(skb);
+}
+
void __consume_stateless_skb(struct sk_buff *skb);
void __kfree_skb(struct sk_buff *skb);
extern struct kmem_cache *skbuff_head_cache;
--
2.37.2