pr_debug("netem_dequeue: return skb=%p\n", skb); sch->q.qlen--; sch->flags &= ~TCQ_F_THROTTLED;
const struct netem_skb_cb *cb = (const struct netem_skb_cb *)skb->cb; psched_time_t now; long delay;   PSCHED_GET_TIME(now); delay = PSCHED_US2JIFFIE(PSCHED_TDIFF(cb->time_to_send, now)); pr_debug("netem_run: skb=%p delay=%ld\n", skb, delay); if (delay <= 0) { pr_debug("netem_dequeue: return skb=%p\n", skb); sch->q.qlen--; sch->flags &= ~TCQ_F_THROTTLED; return skb; }  mod_timer(&q->timer, jiffies + delay); sch->flags |= TCQ_F_THROTTLED;  if (q->qdisc->ops->requeue(skb, q->qdisc) != 0) sch->qstats.drops++;
static struct sk_buff *netem_dequeue(struct Qdisc *sch){	struct netem_sched_data *q = qdisc_priv(sch);	struct sk_buff *skb;	int pending;	pending = netem_run(sch);	skb = q->qdisc->dequeue(q->qdisc);	if (skb) {		pr_debug("netem_dequeue: return skb=%p\n", skb);		sch->q.qlen--;		sch->flags &= ~TCQ_F_THROTTLED;	}	else if (pending) {		pr_debug("netem_dequeue: throttling\n");		sch->flags |= TCQ_F_THROTTLED;	} 	return skb;}