Lines Matching refs:sch

651 void qdisc_class_hash_grow(struct Qdisc *sch, struct Qdisc_class_hash *clhash)  in qdisc_class_hash_grow()  argument
671 sch_tree_lock(sch); in qdisc_class_hash_grow()
681 sch_tree_unlock(sch); in qdisc_class_hash_grow()
747 void qdisc_tree_reduce_backlog(struct Qdisc *sch, unsigned int n, in qdisc_tree_reduce_backlog() argument
759 while ((parentid = sch->parent)) { in qdisc_tree_reduce_backlog()
763 if (sch->flags & TCQ_F_NOPARENT) in qdisc_tree_reduce_backlog()
766 sch = qdisc_lookup(qdisc_dev(sch), TC_H_MAJ(parentid)); in qdisc_tree_reduce_backlog()
767 if (sch == NULL) { in qdisc_tree_reduce_backlog()
771 cops = sch->ops->cl_ops; in qdisc_tree_reduce_backlog()
773 cl = cops->get(sch, parentid); in qdisc_tree_reduce_backlog()
774 cops->qlen_notify(sch, cl); in qdisc_tree_reduce_backlog()
775 cops->put(sch, cl); in qdisc_tree_reduce_backlog()
777 sch->q.qlen -= n; in qdisc_tree_reduce_backlog()
778 sch->qstats.backlog -= len; in qdisc_tree_reduce_backlog()
779 __qdisc_qstats_drop(sch, drops); in qdisc_tree_reduce_backlog()
897 struct Qdisc *sch; in qdisc_create() local
934 sch = qdisc_alloc(dev_queue, ops); in qdisc_create()
935 if (IS_ERR(sch)) { in qdisc_create()
936 err = PTR_ERR(sch); in qdisc_create()
940 sch->parent = parent; in qdisc_create()
943 sch->flags |= TCQ_F_INGRESS; in qdisc_create()
945 lockdep_set_class(qdisc_lock(sch), &qdisc_rx_lock); in qdisc_create()
953 lockdep_set_class(qdisc_lock(sch), &qdisc_tx_lock); in qdisc_create()
955 sch->flags |= TCQ_F_ONETXQUEUE; in qdisc_create()
958 sch->handle = handle; in qdisc_create()
960 if (!ops->init || (err = ops->init(sch, tca[TCA_OPTIONS])) == 0) { in qdisc_create()
961 if (qdisc_is_percpu_stats(sch)) { in qdisc_create()
962 sch->cpu_bstats = in qdisc_create()
964 if (!sch->cpu_bstats) in qdisc_create()
967 sch->cpu_qstats = alloc_percpu(struct gnet_stats_queue); in qdisc_create()
968 if (!sch->cpu_qstats) in qdisc_create()
978 rcu_assign_pointer(sch->stab, stab); in qdisc_create()
984 if (sch->flags & TCQ_F_MQROOT) in qdisc_create()
987 if ((sch->parent != TC_H_ROOT) && in qdisc_create()
988 !(sch->flags & TCQ_F_INGRESS) && in qdisc_create()
990 root_lock = qdisc_root_sleeping_lock(sch); in qdisc_create()
992 root_lock = qdisc_lock(sch); in qdisc_create()
994 err = gen_new_estimator(&sch->bstats, in qdisc_create()
995 sch->cpu_bstats, in qdisc_create()
996 &sch->rate_est, in qdisc_create()
1003 qdisc_list_add(sch); in qdisc_create()
1005 return sch; in qdisc_create()
1009 kfree((char *) sch - sch->padded); in qdisc_create()
1017 free_percpu(sch->cpu_bstats); in qdisc_create()
1018 free_percpu(sch->cpu_qstats); in qdisc_create()
1023 qdisc_put_stab(rtnl_dereference(sch->stab)); in qdisc_create()
1025 ops->destroy(sch); in qdisc_create()
1029 static int qdisc_change(struct Qdisc *sch, struct nlattr **tca) in qdisc_change() argument
1035 if (sch->ops->change == NULL) in qdisc_change()
1037 err = sch->ops->change(sch, tca[TCA_OPTIONS]); in qdisc_change()
1048 ostab = rtnl_dereference(sch->stab); in qdisc_change()
1049 rcu_assign_pointer(sch->stab, stab); in qdisc_change()
1055 if (sch->flags & TCQ_F_MQROOT) in qdisc_change()
1057 gen_replace_estimator(&sch->bstats, in qdisc_change()
1058 sch->cpu_bstats, in qdisc_change()
1059 &sch->rate_est, in qdisc_change()
1060 qdisc_root_sleeping_lock(sch), in qdisc_change()