mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
net: skb: introduce the function kfree_skb_list_reason()
To report reasons of skb drops, introduce the function kfree_skb_list_reason() and make kfree_skb_list() an inline call to it. This function will be used in the next commit in __dev_xmit_skb(). Signed-off-by: Menglong Dong <imagedong@tencent.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
98b4d7a4e7
commit
215b0f1963
2 changed files with 11 additions and 4 deletions
|
@ -1202,10 +1202,16 @@ static inline void kfree_skb(struct sk_buff *skb)
|
||||||
}
|
}
|
||||||
|
|
||||||
void skb_release_head_state(struct sk_buff *skb);
|
void skb_release_head_state(struct sk_buff *skb);
|
||||||
void kfree_skb_list(struct sk_buff *segs);
|
void kfree_skb_list_reason(struct sk_buff *segs,
|
||||||
|
enum skb_drop_reason reason);
|
||||||
void skb_dump(const char *level, const struct sk_buff *skb, bool full_pkt);
|
void skb_dump(const char *level, const struct sk_buff *skb, bool full_pkt);
|
||||||
void skb_tx_error(struct sk_buff *skb);
|
void skb_tx_error(struct sk_buff *skb);
|
||||||
|
|
||||||
|
static inline void kfree_skb_list(struct sk_buff *segs)
|
||||||
|
{
|
||||||
|
kfree_skb_list_reason(segs, SKB_DROP_REASON_NOT_SPECIFIED);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_TRACEPOINTS
|
#ifdef CONFIG_TRACEPOINTS
|
||||||
void consume_skb(struct sk_buff *skb);
|
void consume_skb(struct sk_buff *skb);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -777,16 +777,17 @@ void kfree_skb_reason(struct sk_buff *skb, enum skb_drop_reason reason)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(kfree_skb_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) {
|
while (segs) {
|
||||||
struct sk_buff *next = segs->next;
|
struct sk_buff *next = segs->next;
|
||||||
|
|
||||||
kfree_skb(segs);
|
kfree_skb_reason(segs, reason);
|
||||||
segs = next;
|
segs = next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(kfree_skb_list);
|
EXPORT_SYMBOL(kfree_skb_list_reason);
|
||||||
|
|
||||||
/* Dump skb information and contents.
|
/* Dump skb information and contents.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue