struct netem_sched_data *q = qdisc_priv(sch); struct net_device *dev = sch->dev; struct sk_buff *skb; psched_time_t now; 
static void netem_watchdog(unsigned long arg){	struct Qdisc *sch = (struct Qdisc *)arg;	struct netem_sched_data *q = qdisc_priv(sch);	struct net_device *dev = sch->dev;	struct sk_buff *skb;	psched_time_t now;	pr_debug("netem_watchdog: fired @%lu\n", jiffies);	spin_lock_bh(&dev->queue_lock);	PSCHED_GET_TIME(now);	while ((skb = skb_peek(&q->delayed)) != NULL) {		const struct netem_skb_cb *cb			= (const struct netem_skb_cb *)skb->cb;		long delay 			= PSCHED_US2JIFFIE(PSCHED_TDIFF(cb->time_to_send, now));		pr_debug("netem_watchdog: skb %p@%lu %ld\n",			 skb, jiffies, delay);		/* if more time remaining? */		if (delay > 0) {			mod_timer(&q->timer, jiffies + delay);			break;		}		__skb_unlink(skb, &q->delayed);		if (q->qdisc->enqueue(skb, q->qdisc)) {			sch->q.qlen--;			sch->qstats.drops++;		}	}	qdisc_run(dev);	spin_unlock_bh(&dev->queue_lock);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/771018e76aaa6474be20a53c20458bcae8b00485/sch_netem.c/buggy/net/sched/sch_netem.c