Skip to content

Commit

Permalink
net: skb: introduce the function kfree_skb_list_reason()
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
menglongdong authored and davem330 committed Mar 4, 2022
1 parent 98b4d7a commit 215b0f1
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
8 changes: 7 additions & 1 deletion include/linux/skbuff.h
Original file line number Diff line number Diff line change
Expand Up @@ -1202,10 +1202,16 @@ static inline void kfree_skb(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_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
void consume_skb(struct sk_buff *skb);
#else
Expand Down
7 changes: 4 additions & 3 deletions net/core/skbuff.c
Original file line number Diff line number Diff line change
Expand Up @@ -777,16 +777,17 @@ 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);
EXPORT_SYMBOL(kfree_skb_list_reason);

/* Dump skb information and contents.
*
Expand Down

0 comments on commit 215b0f1

Please sign in to comment.