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_decrease_qlen(struct Qdisc *sch, unsigned int n) in qdisc_tree_decrease_qlen() argument
758 while ((parentid = sch->parent)) { in qdisc_tree_decrease_qlen()
762 if (sch->flags & TCQ_F_NOPARENT) in qdisc_tree_decrease_qlen()
765 sch = qdisc_lookup(qdisc_dev(sch), TC_H_MAJ(parentid)); in qdisc_tree_decrease_qlen()
766 if (sch == NULL) { in qdisc_tree_decrease_qlen()
770 cops = sch->ops->cl_ops; in qdisc_tree_decrease_qlen()
772 cl = cops->get(sch, parentid); in qdisc_tree_decrease_qlen()
773 cops->qlen_notify(sch, cl); in qdisc_tree_decrease_qlen()
774 cops->put(sch, cl); in qdisc_tree_decrease_qlen()
776 sch->q.qlen -= n; in qdisc_tree_decrease_qlen()
777 __qdisc_qstats_drop(sch, drops); in qdisc_tree_decrease_qlen()
895 struct Qdisc *sch; in qdisc_create() local
932 sch = qdisc_alloc(dev_queue, ops); in qdisc_create()
933 if (IS_ERR(sch)) { in qdisc_create()
934 err = PTR_ERR(sch); in qdisc_create()
938 sch->parent = parent; in qdisc_create()
941 sch->flags |= TCQ_F_INGRESS; in qdisc_create()
943 lockdep_set_class(qdisc_lock(sch), &qdisc_rx_lock); in qdisc_create()
951 lockdep_set_class(qdisc_lock(sch), &qdisc_tx_lock); in qdisc_create()
953 sch->flags |= TCQ_F_ONETXQUEUE; in qdisc_create()
956 sch->handle = handle; in qdisc_create()
958 if (!ops->init || (err = ops->init(sch, tca[TCA_OPTIONS])) == 0) { in qdisc_create()
959 if (qdisc_is_percpu_stats(sch)) { in qdisc_create()
960 sch->cpu_bstats = in qdisc_create()
962 if (!sch->cpu_bstats) in qdisc_create()
965 sch->cpu_qstats = alloc_percpu(struct gnet_stats_queue); in qdisc_create()
966 if (!sch->cpu_qstats) in qdisc_create()
976 rcu_assign_pointer(sch->stab, stab); in qdisc_create()
982 if (sch->flags & TCQ_F_MQROOT) in qdisc_create()
985 if ((sch->parent != TC_H_ROOT) && in qdisc_create()
986 !(sch->flags & TCQ_F_INGRESS) && in qdisc_create()
988 root_lock = qdisc_root_sleeping_lock(sch); in qdisc_create()
990 root_lock = qdisc_lock(sch); in qdisc_create()
992 err = gen_new_estimator(&sch->bstats, in qdisc_create()
993 sch->cpu_bstats, in qdisc_create()
994 &sch->rate_est, in qdisc_create()
1001 qdisc_list_add(sch); in qdisc_create()
1003 return sch; in qdisc_create()
1007 kfree((char *) sch - sch->padded); in qdisc_create()
1015 free_percpu(sch->cpu_bstats); in qdisc_create()
1016 free_percpu(sch->cpu_qstats); in qdisc_create()
1021 qdisc_put_stab(rtnl_dereference(sch->stab)); in qdisc_create()
1023 ops->destroy(sch); in qdisc_create()
1027 static int qdisc_change(struct Qdisc *sch, struct nlattr **tca) in qdisc_change() argument
1033 if (sch->ops->change == NULL) in qdisc_change()
1035 err = sch->ops->change(sch, tca[TCA_OPTIONS]); in qdisc_change()
1046 ostab = rtnl_dereference(sch->stab); in qdisc_change()
1047 rcu_assign_pointer(sch->stab, stab); in qdisc_change()
1053 if (sch->flags & TCQ_F_MQROOT) in qdisc_change()
1055 gen_replace_estimator(&sch->bstats, in qdisc_change()
1056 sch->cpu_bstats, in qdisc_change()
1057 &sch->rate_est, in qdisc_change()
1058 qdisc_root_sleeping_lock(sch), in qdisc_change()