Message ID | 20220226084929.6417-2-dongli.zhang@oracle.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | tun/tap: use kfree_skb_reason() to trace dropped skb | expand |
On Sat, 26 Feb 2022 00:49:26 -0800 Dongli Zhang wrote: > +void kfree_skb_list(struct sk_buff *segs) > +{ > + kfree_skb_list_reason(segs, SKB_DROP_REASON_NOT_SPECIFIED); > +} > EXPORT_SYMBOL(kfree_skb_list); Why not make it a static inline now, like we did with kfree_skb()?
Hi Jakub, On 3/1/22 6:34 PM, Jakub Kicinski wrote: > On Sat, 26 Feb 2022 00:49:26 -0800 Dongli Zhang wrote: >> +void kfree_skb_list(struct sk_buff *segs) >> +{ >> + kfree_skb_list_reason(segs, SKB_DROP_REASON_NOT_SPECIFIED); >> +} >> EXPORT_SYMBOL(kfree_skb_list); > > Why not make it a static inline now, like we did with kfree_skb()? > I will move kfree_skb_list() to include/linux/skbuff.h as static inline. Thank you very much! Dongli Zhang
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 31be38078918..bc3f7822110c 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -1176,6 +1176,8 @@ static inline void kfree_skb(struct sk_buff *skb) } void skb_release_head_state(struct sk_buff *skb); +void kfree_skb_list_reason(struct sk_buff *segs, + enum skb_drop_reason reason); void kfree_skb_list(struct sk_buff *segs); void skb_dump(const char *level, const struct sk_buff *skb, bool full_pkt); void skb_tx_error(struct sk_buff *skb); diff --git a/net/core/skbuff.c b/net/core/skbuff.c index b32c5d782fe1..b4193eab3083 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -777,15 +777,22 @@ void kfree_skb_reason(struct sk_buff *skb, enum skb_drop_reason reason) } EXPORT_SYMBOL(kfree_skb_reason); -void kfree_skb_list(struct sk_buff *segs) +void kfree_skb_list_reason(struct sk_buff *segs, + enum skb_drop_reason reason) { while (segs) { struct sk_buff *next = segs->next; - kfree_skb(segs); + kfree_skb_reason(segs, reason); segs = next; } } +EXPORT_SYMBOL(kfree_skb_list_reason); + +void kfree_skb_list(struct sk_buff *segs) +{ + kfree_skb_list_reason(segs, SKB_DROP_REASON_NOT_SPECIFIED); +} EXPORT_SYMBOL(kfree_skb_list); /* Dump skb information and contents.