--- linux-mips-cvs-21012005/net/sched/sch_generic.c 2005-01-26 16:31:42.000000000 +0100 +++ linux-broadcom/net/sched/sch_generic.c 2005-01-27 05:13:47.000000000 +0100 @@ -392,7 +392,11 @@ return NULL; memset(sch, 0, size); +#ifdef CONFIG_BCM4710 + sch->next = NULL; +#else INIT_LIST_HEAD(&sch->list); +#endif skb_queue_head_init(&sch->q); sch->ops = ops; sch->enqueue = ops->enqueue; @@ -426,7 +430,9 @@ if (qdisc->flags&TCQ_F_BUILTIN || !atomic_dec_and_test(&qdisc->refcnt)) return; +#ifndef CONFIG_BCM4710 list_del(&qdisc->list); +#endif #ifdef CONFIG_NET_ESTIMATOR qdisc_kill_estimator(&qdisc->stats); #endif @@ -454,9 +460,11 @@ printk(KERN_INFO "%s: activation failed\n", dev->name); return; } +#ifndef CONFIG_BCM4710 write_lock(&qdisc_tree_lock); list_add_tail(&qdisc->list, &dev->qdisc_list); write_unlock(&qdisc_tree_lock); +#endif } else { qdisc = &noqueue_qdisc; @@ -501,7 +509,11 @@ dev->qdisc = &noop_qdisc; spin_unlock_bh(&dev->queue_lock); dev->qdisc_sleeping = &noop_qdisc; +#ifdef CONFIG_BCM4710 + dev->qdisc_list = NULL; +#else INIT_LIST_HEAD(&dev->qdisc_list); +#endif write_unlock(&qdisc_tree_lock); dev_watchdog_init(dev); @@ -523,7 +535,11 @@ qdisc_destroy(qdisc); } #endif +#ifdef CONFIG_BCM4710 + BUG_TRAP(dev->qdisc_list == NULL); +#else BUG_TRAP(list_empty(&dev->qdisc_list)); +#endif BUG_TRAP(!timer_pending(&dev->watchdog_timer)); spin_unlock_bh(&dev->queue_lock); write_unlock(&qdisc_tree_lock);