Subject: Re: [PATCH][NET_SCHED] sch_sfq: fix queue limiting while enqueuing

From: Patrick McHardy <[email-masked]>
Date: Sun, 27 Apr 2008 20:29:44 +0200

Jarek Poplawski wrote:
> [NET_SCHED] sch_sfq: fix queue limiting while enqueuing
>
> diff --git a/net/sched/sch_sfq.c b/net/sched/sch_sfq.c
> index a20e2ef..b4fd592 100644
> --- a/net/sched/sch_sfq.c
> +++ b/net/sched/sch_sfq.c
> @@ -283,6 +283,9 @@ sfq_enqueue(struct sk_buff *skb, struct Qdisc *sch)
>  	sfq_index x;
>  	int ret;
>  
> +	if (unlikely(sch->q.qlen >= max_t(__u32, sch->dev->tx_queue_len, 1)))
> +		return qdisc_drop(skb, sch);
> +
>   

I don't think we should do this. The tx_queue_len is only used for
initialization in case no parameter is specified by other qdiscs.

Besides this *will* break for example my configuration, I use SFQ
as inner qdisc on virtual devices with either tx_queue_len == 0
or 3 in case of ppp.