if (gred_wred_mode(t)) 
if (gred_wred_mode(t) && !red_is_idling(&t->wred_set)) 
static unsigned int gred_drop(struct Qdisc* sch){	struct sk_buff *skb;	struct gred_sched *t = qdisc_priv(sch);	skb = qdisc_dequeue_tail(sch);	if (skb) {		unsigned int len = skb->len;		struct gred_sched_data *q;		u16 dp = tc_index_to_dp(skb);		if (dp >= t->DPs || (q = t->tab[dp]) == NULL) {			if (net_ratelimit())				printk(KERN_WARNING "GRED: Unable to relocate "				       "VQ 0x%x while dropping, screwing up "				       "backlog.\n", tc_index_to_dp(skb));		} else {			q->backlog -= len;			q->stats.other++;			if (!q->backlog && !gred_wred_mode(t))				red_start_of_idle_period(&q->parms);		}		qdisc_drop(skb, sch);		return len;	}	if (gred_wred_mode(t))		red_start_of_idle_period(&t->wred_set);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d8f64e19605d6ce40bc560e7bc919e2e02a79c1b/sch_gred.c/clean/net/sched/sch_gred.c