diff options
Diffstat (limited to 'include/net/sch_generic.h')
| -rw-r--r-- | include/net/sch_generic.h | 19 | 
1 files changed, 19 insertions, 0 deletions
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index dad558bc06f..67dc08eaaa4 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -427,6 +427,25 @@ static inline struct sk_buff *qdisc_dequeue_head(struct Qdisc *sch)  	return __qdisc_dequeue_head(sch, &sch->q);  } +static inline unsigned int __qdisc_queue_drop_head(struct Qdisc *sch, +					      struct sk_buff_head *list) +{ +	struct sk_buff *skb = __qdisc_dequeue_head(sch, list); + +	if (likely(skb != NULL)) { +		unsigned int len = qdisc_pkt_len(skb); +		kfree_skb(skb); +		return len; +	} + +	return 0; +} + +static inline unsigned int qdisc_queue_drop_head(struct Qdisc *sch) +{ +	return __qdisc_queue_drop_head(sch, &sch->q); +} +  static inline struct sk_buff *__qdisc_dequeue_tail(struct Qdisc *sch,  						   struct sk_buff_head *list)  {  |