qdisc 16 drivers/net/ethernet/netronome/nfp/abm/qdisc.c static bool nfp_abm_qdisc_is_red(struct nfp_qdisc *qdisc) qdisc 18 drivers/net/ethernet/netronome/nfp/abm/qdisc.c return qdisc->type == NFP_QDISC_RED || qdisc->type == NFP_QDISC_GRED; qdisc 21 drivers/net/ethernet/netronome/nfp/abm/qdisc.c static bool nfp_abm_qdisc_child_valid(struct nfp_qdisc *qdisc, unsigned int id) qdisc 23 drivers/net/ethernet/netronome/nfp/abm/qdisc.c return qdisc->children[id] && qdisc 24 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->children[id] != NFP_QDISC_UNTRACKED; qdisc 45 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_stats_update_red(struct nfp_abm_link *alink, struct nfp_qdisc *qdisc, qdisc 52 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc->offloaded) qdisc 55 drivers/net/ethernet/netronome/nfp/abm/qdisc.c for (i = 0; i < qdisc->red.num_bands; i++) { qdisc 57 drivers/net/ethernet/netronome/nfp/abm/qdisc.c &qdisc->red.band[i].stats); qdisc 63 drivers/net/ethernet/netronome/nfp/abm/qdisc.c &qdisc->red.band[i].xstats); qdisc 71 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_stats_update_mq(struct nfp_abm_link *alink, struct nfp_qdisc *qdisc) qdisc 75 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (qdisc->type != NFP_QDISC_MQ) qdisc 79 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (nfp_abm_qdisc_child_valid(qdisc, i)) qdisc 80 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_stats_update_red(alink, qdisc->children[i], i); qdisc 106 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_qdisc_unlink_children(struct nfp_qdisc *qdisc, qdisc 112 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (nfp_abm_qdisc_child_valid(qdisc, i)) { qdisc 113 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->children[i]->use_cnt--; qdisc 114 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->children[i] = NULL; qdisc 119 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_qdisc_offload_stop(struct nfp_abm_link *alink, struct nfp_qdisc *qdisc) qdisc 124 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (qdisc->use_cnt) qdisc 126 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->handle); qdisc 128 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!nfp_abm_qdisc_is_red(qdisc)) qdisc 131 drivers/net/ethernet/netronome/nfp/abm/qdisc.c for (i = 0; i < qdisc->red.num_bands; i++) { qdisc 132 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.band[i].stats.backlog_pkts = 0; qdisc 133 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.band[i].stats.backlog_bytes = 0; qdisc 173 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_stats_init(struct nfp_abm_link *alink, struct nfp_qdisc *qdisc, qdisc 179 drivers/net/ethernet/netronome/nfp/abm/qdisc.c for (i = 0; i < qdisc->red.num_bands; i++) { qdisc 181 drivers/net/ethernet/netronome/nfp/abm/qdisc.c &qdisc->red.band[i].prev_stats, qdisc 182 drivers/net/ethernet/netronome/nfp/abm/qdisc.c &qdisc->red.band[i].prev_xstats); qdisc 191 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_offload_compile_red(struct nfp_abm_link *alink, struct nfp_qdisc *qdisc, qdisc 197 drivers/net/ethernet/netronome/nfp/abm/qdisc.c good_red = qdisc->type == NFP_QDISC_RED && qdisc 198 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->params_ok && qdisc 199 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->use_cnt == 1 && qdisc 201 drivers/net/ethernet/netronome/nfp/abm/qdisc.c !qdisc->children[0]; qdisc 202 drivers/net/ethernet/netronome/nfp/abm/qdisc.c good_gred = qdisc->type == NFP_QDISC_GRED && qdisc 203 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->params_ok && qdisc 204 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->use_cnt == 1; qdisc 205 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->offload_mark = good_red || good_gred; qdisc 208 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (qdisc->offload_mark && !qdisc->offloaded) qdisc 209 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (nfp_abm_stats_init(alink, qdisc, queue)) qdisc 210 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->offload_mark = false; qdisc 212 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc->offload_mark) qdisc 219 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.band[i].threshold); qdisc 220 drivers/net/ethernet/netronome/nfp/abm/qdisc.c act = qdisc->red.band[i].ecn ? qdisc 227 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_offload_compile_mq(struct nfp_abm_link *alink, struct nfp_qdisc *qdisc) qdisc 231 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->offload_mark = qdisc->type == NFP_QDISC_MQ; qdisc 232 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc->offload_mark) qdisc 236 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *child = qdisc->children[i]; qdisc 238 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!nfp_abm_qdisc_child_valid(qdisc, i)) qdisc 249 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *qdisc; qdisc 261 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc = nfp_abm_qdisc_tree_deref_slot(slot); qdisc 262 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->offload_mark = false; qdisc 270 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc = nfp_abm_qdisc_tree_deref_slot(slot); qdisc 271 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc->offload_mark && qdisc->offloaded) qdisc 272 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_qdisc_offload_stop(alink, qdisc); qdisc 273 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->offloaded = qdisc->offload_mark; qdisc 286 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *qdisc) qdisc 292 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc->use_cnt) qdisc 297 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (qdisc->type == NFP_QDISC_MQ && qdisc 298 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc == alink->root_qdisc && qdisc 310 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (mq->children[i] == qdisc) { qdisc 316 drivers/net/ethernet/netronome/nfp/abm/qdisc.c WARN(qdisc->use_cnt != mq_refs, "non-zero qdisc use count: %d (- %d)\n", qdisc 317 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->use_cnt, mq_refs); qdisc 322 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *qdisc) qdisc 326 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc) qdisc 328 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_qdisc_clear_mq(netdev, alink, qdisc); qdisc 330 drivers/net/ethernet/netronome/nfp/abm/qdisc.c TC_H_MAJ(qdisc->handle)) != qdisc); qdisc 332 drivers/net/ethernet/netronome/nfp/abm/qdisc.c kfree(qdisc->children); qdisc 333 drivers/net/ethernet/netronome/nfp/abm/qdisc.c kfree(qdisc); qdisc 344 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *qdisc; qdisc 347 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc = kzalloc(sizeof(*qdisc), GFP_KERNEL); qdisc 348 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc) qdisc 352 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->children = kcalloc(children, sizeof(void *), GFP_KERNEL); qdisc 353 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc->children) qdisc 357 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->netdev = netdev; qdisc 358 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->type = type; qdisc 359 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->parent_handle = parent_handle; qdisc 360 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->handle = handle; qdisc 361 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->num_children = children; qdisc 363 drivers/net/ethernet/netronome/nfp/abm/qdisc.c err = radix_tree_insert(&alink->qdiscs, TC_H_MAJ(qdisc->handle), qdisc); qdisc 371 drivers/net/ethernet/netronome/nfp/abm/qdisc.c return qdisc; qdisc 374 drivers/net/ethernet/netronome/nfp/abm/qdisc.c kfree(qdisc->children); qdisc 376 drivers/net/ethernet/netronome/nfp/abm/qdisc.c kfree(qdisc); qdisc 389 drivers/net/ethernet/netronome/nfp/abm/qdisc.c unsigned int children, struct nfp_qdisc **qdisc) qdisc 391 drivers/net/ethernet/netronome/nfp/abm/qdisc.c *qdisc = nfp_abm_qdisc_find(alink, handle); qdisc 392 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (*qdisc) { qdisc 393 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (WARN_ON((*qdisc)->type != type)) qdisc 398 drivers/net/ethernet/netronome/nfp/abm/qdisc.c *qdisc = nfp_abm_qdisc_alloc(netdev, alink, type, parent_handle, handle, qdisc 400 drivers/net/ethernet/netronome/nfp/abm/qdisc.c return *qdisc ? 0 : -ENOMEM; qdisc 407 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *qdisc; qdisc 409 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc = nfp_abm_qdisc_find(alink, handle); qdisc 410 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc) qdisc 414 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (alink->root_qdisc == qdisc) qdisc 415 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->use_cnt--; qdisc 417 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_qdisc_unlink_children(qdisc, 0, qdisc->num_children); qdisc 418 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_qdisc_free(netdev, alink, qdisc); qdisc 420 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (alink->root_qdisc == qdisc) { qdisc 485 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *qdisc; qdisc 490 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc = nfp_abm_qdisc_find(alink, handle); qdisc 491 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc) qdisc 497 drivers/net/ethernet/netronome/nfp/abm/qdisc.c for (i = 0; i < qdisc->red.num_bands; i++) { qdisc 501 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_stats_calculate(&qdisc->red.band[i].stats, qdisc 502 drivers/net/ethernet/netronome/nfp/abm/qdisc.c &qdisc->red.band[i].prev_stats, qdisc 504 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.band[i].prev_stats = qdisc->red.band[i].stats; qdisc 506 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_stats_red_calculate(&qdisc->red.band[i].xstats, qdisc 507 drivers/net/ethernet/netronome/nfp/abm/qdisc.c &qdisc->red.band[i].prev_xstats, qdisc 509 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.band[i].prev_xstats = qdisc->red.band[i].xstats; qdisc 512 drivers/net/ethernet/netronome/nfp/abm/qdisc.c return qdisc->offloaded ? 0 : -EOPNOTSUPP; qdisc 579 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *qdisc; qdisc 584 drivers/net/ethernet/netronome/nfp/abm/qdisc.c opt->handle, 0, &qdisc); qdisc 588 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->params_ok = nfp_abm_gred_check_params(alink, opt); qdisc 589 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (qdisc->params_ok) { qdisc 590 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.num_bands = opt->set.dp_cnt; qdisc 591 drivers/net/ethernet/netronome/nfp/abm/qdisc.c for (i = 0; i < qdisc->red.num_bands; i++) { qdisc 592 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.band[i].ecn = opt->set.tab[i].is_ecn; qdisc 593 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.band[i].threshold = opt->set.tab[i].min; qdisc 597 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (qdisc->use_cnt) qdisc 622 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *qdisc; qdisc 626 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc = nfp_abm_qdisc_find(alink, opt->handle); qdisc 627 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc || !qdisc->offloaded) qdisc 630 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_stats_red_calculate(&qdisc->red.band[0].xstats, qdisc 631 drivers/net/ethernet/netronome/nfp/abm/qdisc.c &qdisc->red.band[0].prev_xstats, qdisc 633 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.band[0].prev_xstats = qdisc->red.band[0].xstats; qdisc 641 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *qdisc; qdisc 645 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc = nfp_abm_qdisc_find(alink, handle); qdisc 646 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc) qdisc 652 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_stats_calculate(&qdisc->red.band[0].stats, qdisc 653 drivers/net/ethernet/netronome/nfp/abm/qdisc.c &qdisc->red.band[0].prev_stats, qdisc 655 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.band[0].prev_stats = qdisc->red.band[0].stats; qdisc 657 drivers/net/ethernet/netronome/nfp/abm/qdisc.c return qdisc->offloaded ? 0 : -EOPNOTSUPP; qdisc 701 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *qdisc; qdisc 705 drivers/net/ethernet/netronome/nfp/abm/qdisc.c opt->handle, 1, &qdisc); qdisc 711 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (nfp_abm_qdisc_child_valid(qdisc, 0)) qdisc 712 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->children[0]->use_cnt--; qdisc 713 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->children[0] = NULL; qdisc 719 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->children[0] = NFP_QDISC_UNTRACKED; qdisc 722 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->params_ok = nfp_abm_red_check_params(alink, opt); qdisc 723 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (qdisc->params_ok) { qdisc 724 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.num_bands = 1; qdisc 725 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.band[0].ecn = opt->set.is_ecn; qdisc 726 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->red.band[0].threshold = opt->set.min; qdisc 729 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (qdisc->use_cnt == 1) qdisc 760 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *qdisc; qdisc 765 drivers/net/ethernet/netronome/nfp/abm/qdisc.c &qdisc); qdisc 769 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->params_ok = true; qdisc 770 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc->offloaded = true; qdisc 779 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_qdisc *qdisc, *red; qdisc 782 drivers/net/ethernet/netronome/nfp/abm/qdisc.c qdisc = nfp_abm_qdisc_find(alink, handle); qdisc 783 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!qdisc) qdisc 791 drivers/net/ethernet/netronome/nfp/abm/qdisc.c memset(&qdisc->mq.stats, 0, sizeof(qdisc->mq.stats)); qdisc 792 drivers/net/ethernet/netronome/nfp/abm/qdisc.c memset(&qdisc->mq.prev_stats, 0, sizeof(qdisc->mq.prev_stats)); qdisc 794 drivers/net/ethernet/netronome/nfp/abm/qdisc.c for (i = 0; i < qdisc->num_children; i++) { qdisc 795 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!nfp_abm_qdisc_child_valid(qdisc, i)) qdisc 798 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!nfp_abm_qdisc_is_red(qdisc->children[i])) qdisc 800 drivers/net/ethernet/netronome/nfp/abm/qdisc.c red = qdisc->children[i]; qdisc 803 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_stats_propagate(&qdisc->mq.stats, qdisc 805 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_stats_propagate(&qdisc->mq.prev_stats, qdisc 810 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_abm_stats_calculate(&qdisc->mq.stats, &qdisc->mq.prev_stats, qdisc 813 drivers/net/ethernet/netronome/nfp/abm/qdisc.c return qdisc->offloaded ? 0 : -EOPNOTSUPP; qdisc 112 drivers/net/vrf.c struct Qdisc *qdisc; qdisc 118 drivers/net/vrf.c qdisc = rcu_access_pointer(txq->qdisc); qdisc 120 drivers/net/vrf.c return !qdisc->enqueue; qdisc 596 include/linux/netdevice.h struct Qdisc __rcu *qdisc; qdisc 1973 include/linux/netdevice.h struct Qdisc *qdisc; qdisc 72 include/net/pkt_sched.h struct Qdisc *qdisc; qdisc 75 include/net/pkt_sched.h void qdisc_watchdog_init_clockid(struct qdisc_watchdog *wd, struct Qdisc *qdisc, qdisc 77 include/net/pkt_sched.h void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc); qdisc 111 include/net/pkt_sched.h void qdisc_warn_nonwc(const char *txt, struct Qdisc *qdisc); qdisc 117 include/net/sch_generic.h static inline void qdisc_refcount_inc(struct Qdisc *qdisc) qdisc 119 include/net/sch_generic.h if (qdisc->flags & TCQ_F_BUILTIN) qdisc 121 include/net/sch_generic.h refcount_inc(&qdisc->refcnt); qdisc 128 include/net/sch_generic.h static inline struct Qdisc *qdisc_refcount_inc_nz(struct Qdisc *qdisc) qdisc 130 include/net/sch_generic.h if (qdisc->flags & TCQ_F_BUILTIN) qdisc 131 include/net/sch_generic.h return qdisc; qdisc 132 include/net/sch_generic.h if (refcount_inc_not_zero(&qdisc->refcnt)) qdisc 133 include/net/sch_generic.h return qdisc; qdisc 137 include/net/sch_generic.h static inline bool qdisc_is_running(struct Qdisc *qdisc) qdisc 139 include/net/sch_generic.h if (qdisc->flags & TCQ_F_NOLOCK) qdisc 140 include/net/sch_generic.h return spin_is_locked(&qdisc->seqlock); qdisc 141 include/net/sch_generic.h return (raw_read_seqcount(&qdisc->running) & 1) ? true : false; qdisc 149 include/net/sch_generic.h static inline bool qdisc_is_empty(const struct Qdisc *qdisc) qdisc 151 include/net/sch_generic.h if (qdisc_is_percpu_stats(qdisc)) qdisc 152 include/net/sch_generic.h return READ_ONCE(qdisc->empty); qdisc 153 include/net/sch_generic.h return !READ_ONCE(qdisc->q.qlen); qdisc 156 include/net/sch_generic.h static inline bool qdisc_run_begin(struct Qdisc *qdisc) qdisc 158 include/net/sch_generic.h if (qdisc->flags & TCQ_F_NOLOCK) { qdisc 159 include/net/sch_generic.h if (!spin_trylock(&qdisc->seqlock)) qdisc 161 include/net/sch_generic.h WRITE_ONCE(qdisc->empty, false); qdisc 162 include/net/sch_generic.h } else if (qdisc_is_running(qdisc)) { qdisc 168 include/net/sch_generic.h raw_write_seqcount_begin(&qdisc->running); qdisc 169 include/net/sch_generic.h seqcount_acquire(&qdisc->running.dep_map, 0, 1, _RET_IP_); qdisc 173 include/net/sch_generic.h static inline void qdisc_run_end(struct Qdisc *qdisc) qdisc 175 include/net/sch_generic.h write_seqcount_end(&qdisc->running); qdisc 176 include/net/sch_generic.h if (qdisc->flags & TCQ_F_NOLOCK) qdisc 177 include/net/sch_generic.h spin_unlock(&qdisc->seqlock); qdisc 180 include/net/sch_generic.h static inline bool qdisc_may_bulk(const struct Qdisc *qdisc) qdisc 182 include/net/sch_generic.h return qdisc->flags & TCQ_F_ONETXQUEUE; qdisc 496 include/net/sch_generic.h static inline spinlock_t *qdisc_lock(struct Qdisc *qdisc) qdisc 498 include/net/sch_generic.h return &qdisc->q.lock; qdisc 501 include/net/sch_generic.h static inline struct Qdisc *qdisc_root(const struct Qdisc *qdisc) qdisc 503 include/net/sch_generic.h struct Qdisc *q = rcu_dereference_rtnl(qdisc->dev_queue->qdisc); qdisc 508 include/net/sch_generic.h static inline struct Qdisc *qdisc_root_bh(const struct Qdisc *qdisc) qdisc 510 include/net/sch_generic.h return rcu_dereference_bh(qdisc->dev_queue->qdisc); qdisc 513 include/net/sch_generic.h static inline struct Qdisc *qdisc_root_sleeping(const struct Qdisc *qdisc) qdisc 515 include/net/sch_generic.h return qdisc->dev_queue->qdisc_sleeping; qdisc 529 include/net/sch_generic.h static inline spinlock_t *qdisc_root_lock(const struct Qdisc *qdisc) qdisc 531 include/net/sch_generic.h struct Qdisc *root = qdisc_root(qdisc); qdisc 537 include/net/sch_generic.h static inline spinlock_t *qdisc_root_sleeping_lock(const struct Qdisc *qdisc) qdisc 539 include/net/sch_generic.h struct Qdisc *root = qdisc_root_sleeping(qdisc); qdisc 545 include/net/sch_generic.h static inline seqcount_t *qdisc_root_sleeping_running(const struct Qdisc *qdisc) qdisc 547 include/net/sch_generic.h struct Qdisc *root = qdisc_root_sleeping(qdisc); qdisc 553 include/net/sch_generic.h static inline struct net_device *qdisc_dev(const struct Qdisc *qdisc) qdisc 555 include/net/sch_generic.h return qdisc->dev_queue->dev; qdisc 639 include/net/sch_generic.h struct Qdisc *qdisc); qdisc 640 include/net/sch_generic.h void qdisc_reset(struct Qdisc *qdisc); qdisc 641 include/net/sch_generic.h void qdisc_put(struct Qdisc *qdisc); qdisc 642 include/net/sch_generic.h void qdisc_put_unlocked(struct Qdisc *qdisc); qdisc 643 include/net/sch_generic.h void qdisc_tree_reduce_backlog(struct Qdisc *qdisc, int n, int len); qdisc 671 include/net/sch_generic.h void qdisc_free(struct Qdisc *qdisc); qdisc 702 include/net/sch_generic.h struct Qdisc *qdisc; qdisc 705 include/net/sch_generic.h qdisc = rtnl_dereference(netdev_get_tx_queue(dev, i)->qdisc); qdisc 706 include/net/sch_generic.h if (qdisc) { qdisc 707 include/net/sch_generic.h spin_lock_bh(qdisc_lock(qdisc)); qdisc 708 include/net/sch_generic.h qdisc_reset(qdisc); qdisc 709 include/net/sch_generic.h spin_unlock_bh(qdisc_lock(qdisc)); qdisc 727 include/net/sch_generic.h const struct Qdisc *q = rcu_dereference(txq->qdisc); qdisc 745 include/net/sch_generic.h if (rcu_access_pointer(txq->qdisc) != txq->qdisc_sleeping) qdisc 758 include/net/sch_generic.h if (rcu_access_pointer(txq->qdisc) != &noop_qdisc) qdisc 1281 include/net/sch_generic.h void mini_qdisc_pair_init(struct mini_Qdisc_pair *miniqp, struct Qdisc *qdisc, qdisc 2 include/trace/events/qdisc.h #define TRACE_SYSTEM qdisc qdisc 14 include/trace/events/qdisc.h TP_PROTO(struct Qdisc *qdisc, const struct netdev_queue *txq, qdisc 17 include/trace/events/qdisc.h TP_ARGS(qdisc, txq, packets, skb), qdisc 20 include/trace/events/qdisc.h __field( struct Qdisc *, qdisc ) qdisc 32 include/trace/events/qdisc.h __entry->qdisc = qdisc; qdisc 37 include/trace/events/qdisc.h __entry->handle = qdisc->handle; qdisc 38 include/trace/events/qdisc.h __entry->parent = qdisc->parent; qdisc 193 net/caif/caif_dev.c sch = rcu_dereference_bh(txq->qdisc); qdisc 2693 net/core/dev.c struct Qdisc *q = rcu_dereference(txq->qdisc); qdisc 2707 net/core/dev.c q = rcu_dereference(dev_queue->qdisc); qdisc 3740 net/core/dev.c q = rcu_dereference_bh(txq->qdisc); qdisc 9431 net/core/dev.c RCU_INIT_POINTER(queue->qdisc, &noop_qdisc); qdisc 1631 net/core/rtnetlink.c (dev->qdisc && qdisc 1632 net/core/rtnetlink.c nla_put_string(skb, IFLA_QDISC, dev->qdisc->ops->id)) || qdisc 638 net/sched/cls_api.c struct Qdisc *qdisc; qdisc 643 net/sched/cls_api.c qdisc = dev_ingress_queue(dev)->qdisc_sleeping; qdisc 644 net/sched/cls_api.c if (!qdisc) qdisc 647 net/sched/cls_api.c ops = qdisc->ops; qdisc 661 net/sched/cls_api.c return cops->tcf_block(qdisc, qdisc 1082 net/sched/cls_api.c *q = dev->qdisc; qdisc 2552 net/sched/cls_api.c q = dev->qdisc; qdisc 2937 net/sched/cls_api.c q = dev->qdisc; qdisc 301 net/sched/sch_api.c q = qdisc_match_from_root(dev->qdisc, handle); qdisc 320 net/sched/sch_api.c q = qdisc_match_from_root(dev->qdisc, handle); qdisc 584 net/sched/sch_api.c void qdisc_warn_nonwc(const char *txt, struct Qdisc *qdisc) qdisc 586 net/sched/sch_api.c if (!(qdisc->flags & TCQ_F_WARN_NONWC)) { qdisc 588 net/sched/sch_api.c txt, qdisc->ops->id, qdisc->handle >> 16); qdisc 589 net/sched/sch_api.c qdisc->flags |= TCQ_F_WARN_NONWC; qdisc 600 net/sched/sch_api.c __netif_schedule(qdisc_root(wd->qdisc)); qdisc 606 net/sched/sch_api.c void qdisc_watchdog_init_clockid(struct qdisc_watchdog *wd, struct Qdisc *qdisc, qdisc 611 net/sched/sch_api.c wd->qdisc = qdisc; qdisc 615 net/sched/sch_api.c void qdisc_watchdog_init(struct qdisc_watchdog *wd, struct Qdisc *qdisc) qdisc 617 net/sched/sch_api.c qdisc_watchdog_init_clockid(wd, qdisc, CLOCK_MONOTONIC); qdisc 624 net/sched/sch_api.c &qdisc_root_sleeping(wd->qdisc)->state)) qdisc 1068 net/sched/sch_api.c dev->qdisc, new); qdisc 1071 net/sched/sch_api.c dev->qdisc = new ? : &noop_qdisc; qdisc 1446 net/sched/sch_api.c q = dev->qdisc; qdisc 1535 net/sched/sch_api.c q = dev->qdisc; qdisc 1757 net/sched/sch_api.c if (tc_dump_qdisc_root(dev->qdisc, skb, cb, &q_idx, s_q_idx, qdisc 2033 net/sched/sch_api.c qid = dev->qdisc->handle; qdisc 2044 net/sched/sch_api.c qid = dev->qdisc->handle; qdisc 2205 net/sched/sch_api.c if (tc_dump_tclass_root(dev->qdisc, skb, tcm, cb, &t, s_t) < 0) qdisc 94 net/sched/sch_cbq.c struct Qdisc *qdisc; /* Ptr to CBQ discipline */ qdisc 293 net/sched/sch_cbq.c struct cbq_sched_data *q = qdisc_priv(cl->qdisc); qdisc 317 net/sched/sch_cbq.c struct cbq_sched_data *q = qdisc_priv(this->qdisc); qdisc 396 net/sched/sch_cbq.c struct cbq_sched_data *q = qdisc_priv(cl->qdisc); qdisc 483 net/sched/sch_cbq.c struct Qdisc *sch = q->watchdog.qdisc; qdisc 642 net/sched/sch_cbq.c struct cbq_sched_data *q = qdisc_priv(cl->qdisc); qdisc 902 net/sched/sch_cbq.c cl->quantum > 32*qdisc_dev(cl->qdisc)->mtu) { qdisc 905 net/sched/sch_cbq.c cl->quantum = qdisc_dev(cl->qdisc)->mtu/2 + 1; qdisc 913 net/sched/sch_cbq.c struct cbq_sched_data *q = qdisc_priv(cl->qdisc); qdisc 981 net/sched/sch_cbq.c struct cbq_sched_data *q = qdisc_priv(this->qdisc); qdisc 1008 net/sched/sch_cbq.c struct cbq_sched_data *q = qdisc_priv(this->qdisc); qdisc 1097 net/sched/sch_cbq.c struct cbq_sched_data *q = qdisc_priv(cl->qdisc); qdisc 1194 net/sched/sch_cbq.c q->link.qdisc = sch; qdisc 1644 net/sched/sch_cbq.c cl->qdisc = sch; qdisc 83 net/sched/sch_cbs.c struct Qdisc *qdisc; qdisc 108 net/sched/sch_cbs.c struct Qdisc *qdisc = q->qdisc; qdisc 110 net/sched/sch_cbs.c return cbs_child_enqueue(skb, sch, qdisc, to_free); qdisc 117 net/sched/sch_cbs.c struct Qdisc *qdisc = q->qdisc; qdisc 127 net/sched/sch_cbs.c return cbs_child_enqueue(skb, sch, qdisc, to_free); qdisc 178 net/sched/sch_cbs.c struct Qdisc *qdisc = q->qdisc; qdisc 206 net/sched/sch_cbs.c skb = cbs_child_dequeue(sch, qdisc); qdisc 233 net/sched/sch_cbs.c struct Qdisc *qdisc = q->qdisc; qdisc 235 net/sched/sch_cbs.c return cbs_child_dequeue(sch, qdisc); qdisc 346 net/sched/sch_cbs.c qdev = qdisc_dev(q->qdisc); qdisc 411 net/sched/sch_cbs.c q->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, qdisc 413 net/sched/sch_cbs.c if (!q->qdisc) qdisc 420 net/sched/sch_cbs.c qdisc_hash_add(q->qdisc, false); qdisc 438 net/sched/sch_cbs.c if (!q->qdisc) qdisc 448 net/sched/sch_cbs.c qdisc_put(q->qdisc); qdisc 482 net/sched/sch_cbs.c if (cl != 1 || !q->qdisc) /* only one class */ qdisc 486 net/sched/sch_cbs.c tcm->tcm_info = q->qdisc->handle; qdisc 503 net/sched/sch_cbs.c *old = qdisc_replace(sch, new, &q->qdisc); qdisc 511 net/sched/sch_cbs.c return q->qdisc; qdisc 26 net/sched/sch_drr.c struct Qdisc *qdisc; qdisc 111 net/sched/sch_drr.c cl->qdisc = qdisc_create_dflt(sch->dev_queue, qdisc 114 net/sched/sch_drr.c if (cl->qdisc == NULL) qdisc 115 net/sched/sch_drr.c cl->qdisc = &noop_qdisc; qdisc 117 net/sched/sch_drr.c qdisc_hash_add(cl->qdisc, true); qdisc 126 net/sched/sch_drr.c qdisc_put(cl->qdisc); qdisc 145 net/sched/sch_drr.c qdisc_put(cl->qdisc); qdisc 159 net/sched/sch_drr.c qdisc_purge_queue(cl->qdisc); qdisc 217 net/sched/sch_drr.c *old = qdisc_replace(sch, new, &cl->qdisc); qdisc 225 net/sched/sch_drr.c return cl->qdisc; qdisc 243 net/sched/sch_drr.c tcm->tcm_info = cl->qdisc->handle; qdisc 261 net/sched/sch_drr.c __u32 qlen = qdisc_qlen_sum(cl->qdisc); qdisc 262 net/sched/sch_drr.c struct Qdisc *cl_q = cl->qdisc; qdisc 357 net/sched/sch_drr.c first = !cl->qdisc->q.qlen; qdisc 358 net/sched/sch_drr.c err = qdisc_enqueue(skb, cl->qdisc, to_free); qdisc 388 net/sched/sch_drr.c skb = cl->qdisc->ops->peek(cl->qdisc); qdisc 390 net/sched/sch_drr.c qdisc_warn_nonwc(__func__, cl->qdisc); qdisc 397 net/sched/sch_drr.c skb = qdisc_dequeue_peeked(cl->qdisc); qdisc 400 net/sched/sch_drr.c if (cl->qdisc->q.qlen == 0) qdisc 441 net/sched/sch_drr.c if (cl->qdisc->q.qlen) qdisc 443 net/sched/sch_drr.c qdisc_reset(cl->qdisc); qdisc 441 net/sched/sch_etf.c if (q->watchdog.qdisc == sch) qdisc 460 net/sched/sch_etf.c if (q->watchdog.qdisc == sch) qdisc 527 net/sched/sch_generic.c static int noop_enqueue(struct sk_buff *skb, struct Qdisc *qdisc, qdisc 534 net/sched/sch_generic.c static struct sk_buff *noop_dequeue(struct Qdisc *qdisc) qdisc 549 net/sched/sch_generic.c RCU_POINTER_INITIALIZER(qdisc, &noop_qdisc), qdisc 577 net/sched/sch_generic.c static int noqueue_init(struct Qdisc *qdisc, struct nlattr *opt, qdisc 583 net/sched/sch_generic.c qdisc->enqueue = NULL; qdisc 621 net/sched/sch_generic.c static int pfifo_fast_enqueue(struct sk_buff *skb, struct Qdisc *qdisc, qdisc 625 net/sched/sch_generic.c struct pfifo_fast_priv *priv = qdisc_priv(qdisc); qdisc 633 net/sched/sch_generic.c if (qdisc_is_percpu_stats(qdisc)) qdisc 634 net/sched/sch_generic.c return qdisc_drop_cpu(skb, qdisc, to_free); qdisc 636 net/sched/sch_generic.c return qdisc_drop(skb, qdisc, to_free); qdisc 639 net/sched/sch_generic.c qdisc_update_stats_at_enqueue(qdisc, pkt_len); qdisc 643 net/sched/sch_generic.c static struct sk_buff *pfifo_fast_dequeue(struct Qdisc *qdisc) qdisc 645 net/sched/sch_generic.c struct pfifo_fast_priv *priv = qdisc_priv(qdisc); qdisc 658 net/sched/sch_generic.c qdisc_update_stats_at_dequeue(qdisc, skb); qdisc 660 net/sched/sch_generic.c WRITE_ONCE(qdisc->empty, true); qdisc 666 net/sched/sch_generic.c static struct sk_buff *pfifo_fast_peek(struct Qdisc *qdisc) qdisc 668 net/sched/sch_generic.c struct pfifo_fast_priv *priv = qdisc_priv(qdisc); qdisc 681 net/sched/sch_generic.c static void pfifo_fast_reset(struct Qdisc *qdisc) qdisc 684 net/sched/sch_generic.c struct pfifo_fast_priv *priv = qdisc_priv(qdisc); qdisc 700 net/sched/sch_generic.c if (qdisc_is_percpu_stats(qdisc)) { qdisc 704 net/sched/sch_generic.c q = per_cpu_ptr(qdisc->cpu_qstats, i); qdisc 711 net/sched/sch_generic.c static int pfifo_fast_dump(struct Qdisc *qdisc, struct sk_buff *skb) qdisc 724 net/sched/sch_generic.c static int pfifo_fast_init(struct Qdisc *qdisc, struct nlattr *opt, qdisc 727 net/sched/sch_generic.c unsigned int qlen = qdisc_dev(qdisc)->tx_queue_len; qdisc 728 net/sched/sch_generic.c struct pfifo_fast_priv *priv = qdisc_priv(qdisc); qdisc 745 net/sched/sch_generic.c qdisc->flags |= TCQ_F_CAN_BYPASS; qdisc 909 net/sched/sch_generic.c void qdisc_reset(struct Qdisc *qdisc) qdisc 911 net/sched/sch_generic.c const struct Qdisc_ops *ops = qdisc->ops; qdisc 915 net/sched/sch_generic.c ops->reset(qdisc); qdisc 917 net/sched/sch_generic.c skb_queue_walk_safe(&qdisc->gso_skb, skb, tmp) { qdisc 918 net/sched/sch_generic.c __skb_unlink(skb, &qdisc->gso_skb); qdisc 922 net/sched/sch_generic.c skb_queue_walk_safe(&qdisc->skb_bad_txq, skb, tmp) { qdisc 923 net/sched/sch_generic.c __skb_unlink(skb, &qdisc->skb_bad_txq); qdisc 927 net/sched/sch_generic.c qdisc->q.qlen = 0; qdisc 928 net/sched/sch_generic.c qdisc->qstats.backlog = 0; qdisc 932 net/sched/sch_generic.c void qdisc_free(struct Qdisc *qdisc) qdisc 934 net/sched/sch_generic.c if (qdisc_is_percpu_stats(qdisc)) { qdisc 935 net/sched/sch_generic.c free_percpu(qdisc->cpu_bstats); qdisc 936 net/sched/sch_generic.c free_percpu(qdisc->cpu_qstats); qdisc 939 net/sched/sch_generic.c kfree((char *) qdisc - qdisc->padded); qdisc 949 net/sched/sch_generic.c static void qdisc_destroy(struct Qdisc *qdisc) qdisc 951 net/sched/sch_generic.c const struct Qdisc_ops *ops = qdisc->ops; qdisc 955 net/sched/sch_generic.c qdisc_hash_del(qdisc); qdisc 957 net/sched/sch_generic.c qdisc_put_stab(rtnl_dereference(qdisc->stab)); qdisc 959 net/sched/sch_generic.c gen_kill_estimator(&qdisc->rate_est); qdisc 961 net/sched/sch_generic.c ops->reset(qdisc); qdisc 963 net/sched/sch_generic.c ops->destroy(qdisc); qdisc 966 net/sched/sch_generic.c dev_put(qdisc_dev(qdisc)); qdisc 968 net/sched/sch_generic.c skb_queue_walk_safe(&qdisc->gso_skb, skb, tmp) { qdisc 969 net/sched/sch_generic.c __skb_unlink(skb, &qdisc->gso_skb); qdisc 973 net/sched/sch_generic.c skb_queue_walk_safe(&qdisc->skb_bad_txq, skb, tmp) { qdisc 974 net/sched/sch_generic.c __skb_unlink(skb, &qdisc->skb_bad_txq); qdisc 978 net/sched/sch_generic.c call_rcu(&qdisc->rcu, qdisc_free_cb); qdisc 981 net/sched/sch_generic.c void qdisc_put(struct Qdisc *qdisc) qdisc 983 net/sched/sch_generic.c if (!qdisc) qdisc 986 net/sched/sch_generic.c if (qdisc->flags & TCQ_F_BUILTIN || qdisc 987 net/sched/sch_generic.c !refcount_dec_and_test(&qdisc->refcnt)) qdisc 990 net/sched/sch_generic.c qdisc_destroy(qdisc); qdisc 999 net/sched/sch_generic.c void qdisc_put_unlocked(struct Qdisc *qdisc) qdisc 1001 net/sched/sch_generic.c if (qdisc->flags & TCQ_F_BUILTIN || qdisc 1002 net/sched/sch_generic.c !refcount_dec_and_rtnl_lock(&qdisc->refcnt)) qdisc 1005 net/sched/sch_generic.c qdisc_destroy(qdisc); qdisc 1012 net/sched/sch_generic.c struct Qdisc *qdisc) qdisc 1021 net/sched/sch_generic.c if (qdisc == NULL) qdisc 1022 net/sched/sch_generic.c qdisc = &noop_qdisc; qdisc 1023 net/sched/sch_generic.c dev_queue->qdisc_sleeping = qdisc; qdisc 1024 net/sched/sch_generic.c rcu_assign_pointer(dev_queue->qdisc, &noop_qdisc); qdisc 1036 net/sched/sch_generic.c struct Qdisc *qdisc; qdisc 1044 net/sched/sch_generic.c qdisc = qdisc_create_dflt(dev_queue, ops, TC_H_ROOT, NULL); qdisc 1045 net/sched/sch_generic.c if (!qdisc) { qdisc 1050 net/sched/sch_generic.c qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; qdisc 1051 net/sched/sch_generic.c dev_queue->qdisc_sleeping = qdisc; qdisc 1057 net/sched/sch_generic.c struct Qdisc *qdisc; qdisc 1064 net/sched/sch_generic.c dev->qdisc = txq->qdisc_sleeping; qdisc 1065 net/sched/sch_generic.c qdisc_refcount_inc(dev->qdisc); qdisc 1067 net/sched/sch_generic.c qdisc = qdisc_create_dflt(txq, &mq_qdisc_ops, TC_H_ROOT, NULL); qdisc 1068 net/sched/sch_generic.c if (qdisc) { qdisc 1069 net/sched/sch_generic.c dev->qdisc = qdisc; qdisc 1070 net/sched/sch_generic.c qdisc->ops->attach(qdisc); qdisc 1074 net/sched/sch_generic.c if (dev->qdisc != &noop_qdisc) qdisc 1075 net/sched/sch_generic.c qdisc_hash_add(dev->qdisc, false); qdisc 1089 net/sched/sch_generic.c rcu_assign_pointer(dev_queue->qdisc, new_qdisc); qdisc 1105 net/sched/sch_generic.c if (dev->qdisc == &noop_qdisc) qdisc 1129 net/sched/sch_generic.c struct Qdisc *qdisc; qdisc 1131 net/sched/sch_generic.c qdisc = rtnl_dereference(dev_queue->qdisc); qdisc 1132 net/sched/sch_generic.c if (qdisc) { qdisc 1133 net/sched/sch_generic.c bool nolock = qdisc->flags & TCQ_F_NOLOCK; qdisc 1136 net/sched/sch_generic.c spin_lock_bh(&qdisc->seqlock); qdisc 1137 net/sched/sch_generic.c spin_lock_bh(qdisc_lock(qdisc)); qdisc 1139 net/sched/sch_generic.c if (!(qdisc->flags & TCQ_F_BUILTIN)) qdisc 1140 net/sched/sch_generic.c set_bit(__QDISC_STATE_DEACTIVATED, &qdisc->state); qdisc 1142 net/sched/sch_generic.c rcu_assign_pointer(dev_queue->qdisc, qdisc_default); qdisc 1143 net/sched/sch_generic.c qdisc_reset(qdisc); qdisc 1145 net/sched/sch_generic.c spin_unlock_bh(qdisc_lock(qdisc)); qdisc 1147 net/sched/sch_generic.c spin_unlock_bh(&qdisc->seqlock); qdisc 1182 net/sched/sch_generic.c struct Qdisc *qdisc = dev_queue->qdisc_sleeping; qdisc 1184 net/sched/sch_generic.c if (qdisc) qdisc 1185 net/sched/sch_generic.c qdisc_reset(qdisc); qdisc 1241 net/sched/sch_generic.c struct Qdisc *qdisc = dev_queue->qdisc_sleeping; qdisc 1242 net/sched/sch_generic.c const struct Qdisc_ops *ops = qdisc->ops; qdisc 1245 net/sched/sch_generic.c return ops->change_tx_queue_len(qdisc, dev->tx_queue_len); qdisc 1275 net/sched/sch_generic.c struct Qdisc *qdisc = _qdisc; qdisc 1277 net/sched/sch_generic.c rcu_assign_pointer(dev_queue->qdisc, qdisc); qdisc 1278 net/sched/sch_generic.c dev_queue->qdisc_sleeping = qdisc; qdisc 1283 net/sched/sch_generic.c dev->qdisc = &noop_qdisc; qdisc 1295 net/sched/sch_generic.c struct Qdisc *qdisc = dev_queue->qdisc_sleeping; qdisc 1298 net/sched/sch_generic.c if (qdisc) { qdisc 1299 net/sched/sch_generic.c rcu_assign_pointer(dev_queue->qdisc, qdisc_default); qdisc 1302 net/sched/sch_generic.c qdisc_put(qdisc); qdisc 1311 net/sched/sch_generic.c qdisc_put(dev->qdisc); qdisc 1312 net/sched/sch_generic.c dev->qdisc = &noop_qdisc; qdisc 1394 net/sched/sch_generic.c void mini_qdisc_pair_init(struct mini_Qdisc_pair *miniqp, struct Qdisc *qdisc, qdisc 1397 net/sched/sch_generic.c miniqp->miniq1.cpu_bstats = qdisc->cpu_bstats; qdisc 1398 net/sched/sch_generic.c miniqp->miniq1.cpu_qstats = qdisc->cpu_qstats; qdisc 1399 net/sched/sch_generic.c miniqp->miniq2.cpu_bstats = qdisc->cpu_bstats; qdisc 1400 net/sched/sch_generic.c miniqp->miniq2.cpu_qstats = qdisc->cpu_qstats; qdisc 126 net/sched/sch_hfsc.c struct Qdisc *qdisc; /* leaf qdisc */ qdisc 749 net/sched/sch_hfsc.c if (cl->qdisc->q.qlen == 0 && cl->cl_flags & HFSC_FSC) qdisc 984 net/sched/sch_hfsc.c if (cl->qdisc->q.qlen != 0) { qdisc 985 net/sched/sch_hfsc.c int len = qdisc_peek_len(cl->qdisc); qdisc 1056 net/sched/sch_hfsc.c cl->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, qdisc 1058 net/sched/sch_hfsc.c if (cl->qdisc == NULL) qdisc 1059 net/sched/sch_hfsc.c cl->qdisc = &noop_qdisc; qdisc 1061 net/sched/sch_hfsc.c qdisc_hash_add(cl->qdisc, true); qdisc 1070 net/sched/sch_hfsc.c qdisc_purge_queue(parent->qdisc); qdisc 1086 net/sched/sch_hfsc.c qdisc_put(cl->qdisc); qdisc 1106 net/sched/sch_hfsc.c qdisc_purge_queue(cl->qdisc); qdisc 1184 net/sched/sch_hfsc.c *old = qdisc_replace(sch, new, &cl->qdisc); qdisc 1194 net/sched/sch_hfsc.c return cl->qdisc; qdisc 1302 net/sched/sch_hfsc.c tcm->tcm_info = cl->qdisc->handle; qdisc 1324 net/sched/sch_hfsc.c qdisc_qstats_qlen_backlog(cl->qdisc, &qlen, &cl->qstats.backlog); qdisc 1410 net/sched/sch_hfsc.c q->root.qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, qdisc 1412 net/sched/sch_hfsc.c if (q->root.qdisc == NULL) qdisc 1413 net/sched/sch_hfsc.c q->root.qdisc = &noop_qdisc; qdisc 1415 net/sched/sch_hfsc.c qdisc_hash_add(q->root.qdisc, true); qdisc 1464 net/sched/sch_hfsc.c qdisc_reset(cl->qdisc); qdisc 1547 net/sched/sch_hfsc.c first = !cl->qdisc->q.qlen; qdisc 1548 net/sched/sch_hfsc.c err = qdisc_enqueue(skb, cl->qdisc, to_free); qdisc 1568 net/sched/sch_hfsc.c cl->qdisc->ops->peek(cl->qdisc); qdisc 1614 net/sched/sch_hfsc.c skb = qdisc_dequeue_peeked(cl->qdisc); qdisc 1616 net/sched/sch_hfsc.c qdisc_warn_nonwc("HFSC", cl->qdisc); qdisc 1626 net/sched/sch_hfsc.c if (cl->qdisc->q.qlen != 0) { qdisc 1628 net/sched/sch_hfsc.c next_len = qdisc_peek_len(cl->qdisc); qdisc 988 net/sched/sch_htb.c struct Qdisc *sch = q->watchdog.qdisc; qdisc 73 net/sched/sch_mq.c struct Qdisc *qdisc; qdisc 90 net/sched/sch_mq.c qdisc = qdisc_create_dflt(dev_queue, get_default_qdisc_ops(dev, ntx), qdisc 94 net/sched/sch_mq.c if (!qdisc) qdisc 96 net/sched/sch_mq.c priv->qdiscs[ntx] = qdisc; qdisc 97 net/sched/sch_mq.c qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; qdisc 110 net/sched/sch_mq.c struct Qdisc *qdisc, *old; qdisc 114 net/sched/sch_mq.c qdisc = priv->qdiscs[ntx]; qdisc 115 net/sched/sch_mq.c old = dev_graft_qdisc(qdisc->dev_queue, qdisc); qdisc 120 net/sched/sch_mq.c qdisc_hash_add(qdisc, false); qdisc 131 net/sched/sch_mq.c struct Qdisc *qdisc; qdisc 145 net/sched/sch_mq.c qdisc = netdev_get_tx_queue(dev, ntx)->qdisc_sleeping; qdisc 146 net/sched/sch_mq.c spin_lock_bh(qdisc_lock(qdisc)); qdisc 148 net/sched/sch_mq.c if (qdisc_is_percpu_stats(qdisc)) { qdisc 149 net/sched/sch_mq.c qlen = qdisc_qlen_sum(qdisc); qdisc 151 net/sched/sch_mq.c qdisc->cpu_bstats, qdisc 152 net/sched/sch_mq.c &qdisc->bstats); qdisc 154 net/sched/sch_mq.c qdisc->cpu_qstats, qdisc 155 net/sched/sch_mq.c &qdisc->qstats, qlen); qdisc 158 net/sched/sch_mq.c sch->q.qlen += qdisc->q.qlen; qdisc 159 net/sched/sch_mq.c sch->bstats.bytes += qdisc->bstats.bytes; qdisc 160 net/sched/sch_mq.c sch->bstats.packets += qdisc->bstats.packets; qdisc 161 net/sched/sch_mq.c sch->qstats.qlen += qdisc->qstats.qlen; qdisc 162 net/sched/sch_mq.c sch->qstats.backlog += qdisc->qstats.backlog; qdisc 163 net/sched/sch_mq.c sch->qstats.drops += qdisc->qstats.drops; qdisc 164 net/sched/sch_mq.c sch->qstats.requeues += qdisc->qstats.requeues; qdisc 165 net/sched/sch_mq.c sch->qstats.overlimits += qdisc->qstats.overlimits; qdisc 168 net/sched/sch_mq.c spin_unlock_bh(qdisc_lock(qdisc)); qdisc 139 net/sched/sch_mqprio.c struct Qdisc *qdisc; qdisc 228 net/sched/sch_mqprio.c qdisc = qdisc_create_dflt(dev_queue, qdisc 232 net/sched/sch_mqprio.c if (!qdisc) qdisc 235 net/sched/sch_mqprio.c priv->qdiscs[i] = qdisc; qdisc 236 net/sched/sch_mqprio.c qdisc->flags |= TCQ_F_ONETXQUEUE | TCQ_F_NOPARENT; qdisc 293 net/sched/sch_mqprio.c struct Qdisc *qdisc, *old; qdisc 298 net/sched/sch_mqprio.c qdisc = priv->qdiscs[ntx]; qdisc 299 net/sched/sch_mqprio.c old = dev_graft_qdisc(qdisc->dev_queue, qdisc); qdisc 303 net/sched/sch_mqprio.c qdisc_hash_add(qdisc, false); qdisc 389 net/sched/sch_mqprio.c struct Qdisc *qdisc; qdisc 402 net/sched/sch_mqprio.c qdisc = netdev_get_tx_queue(dev, ntx)->qdisc_sleeping; qdisc 403 net/sched/sch_mqprio.c spin_lock_bh(qdisc_lock(qdisc)); qdisc 405 net/sched/sch_mqprio.c if (qdisc_is_percpu_stats(qdisc)) { qdisc 406 net/sched/sch_mqprio.c __u32 qlen = qdisc_qlen_sum(qdisc); qdisc 409 net/sched/sch_mqprio.c qdisc->cpu_bstats, qdisc 410 net/sched/sch_mqprio.c &qdisc->bstats); qdisc 412 net/sched/sch_mqprio.c qdisc->cpu_qstats, qdisc 413 net/sched/sch_mqprio.c &qdisc->qstats, qlen); qdisc 416 net/sched/sch_mqprio.c sch->q.qlen += qdisc->q.qlen; qdisc 417 net/sched/sch_mqprio.c sch->bstats.bytes += qdisc->bstats.bytes; qdisc 418 net/sched/sch_mqprio.c sch->bstats.packets += qdisc->bstats.packets; qdisc 419 net/sched/sch_mqprio.c sch->qstats.backlog += qdisc->qstats.backlog; qdisc 420 net/sched/sch_mqprio.c sch->qstats.drops += qdisc->qstats.drops; qdisc 421 net/sched/sch_mqprio.c sch->qstats.requeues += qdisc->qstats.requeues; qdisc 422 net/sched/sch_mqprio.c sch->qstats.overlimits += qdisc->qstats.overlimits; qdisc 425 net/sched/sch_mqprio.c spin_unlock_bh(qdisc_lock(qdisc)); qdisc 531 net/sched/sch_mqprio.c struct Qdisc *qdisc = rtnl_dereference(q->qdisc); qdisc 535 net/sched/sch_mqprio.c spin_lock_bh(qdisc_lock(qdisc)); qdisc 536 net/sched/sch_mqprio.c if (qdisc_is_percpu_stats(qdisc)) { qdisc 537 net/sched/sch_mqprio.c cpu_bstats = qdisc->cpu_bstats; qdisc 538 net/sched/sch_mqprio.c cpu_qstats = qdisc->cpu_qstats; qdisc 541 net/sched/sch_mqprio.c qlen = qdisc_qlen_sum(qdisc); qdisc 543 net/sched/sch_mqprio.c cpu_bstats, &qdisc->bstats); qdisc 546 net/sched/sch_mqprio.c &qdisc->qstats, qdisc 548 net/sched/sch_mqprio.c spin_unlock_bh(qdisc_lock(qdisc)); qdisc 63 net/sched/sch_multiq.c struct Qdisc *qdisc; qdisc 66 net/sched/sch_multiq.c qdisc = multiq_classify(skb, sch, &ret); qdisc 68 net/sched/sch_multiq.c if (qdisc == NULL) { qdisc 77 net/sched/sch_multiq.c ret = qdisc_enqueue(skb, qdisc, to_free); qdisc 90 net/sched/sch_multiq.c struct Qdisc *qdisc; qdisc 105 net/sched/sch_multiq.c qdisc = q->queues[q->curband]; qdisc 106 net/sched/sch_multiq.c skb = qdisc->dequeue(qdisc); qdisc 122 net/sched/sch_multiq.c struct Qdisc *qdisc; qdisc 137 net/sched/sch_multiq.c qdisc = q->queues[curband]; qdisc 138 net/sched/sch_multiq.c skb = qdisc->ops->peek(qdisc); qdisc 81 net/sched/sch_netem.c struct Qdisc *qdisc; qdisc 718 net/sched/sch_netem.c if (q->qdisc) { qdisc 723 net/sched/sch_netem.c err = qdisc_enqueue(skb, q->qdisc, &to_free); qdisc 736 net/sched/sch_netem.c if (q->qdisc) { qdisc 737 net/sched/sch_netem.c skb = q->qdisc->ops->dequeue(q->qdisc); qdisc 747 net/sched/sch_netem.c if (q->qdisc) { qdisc 748 net/sched/sch_netem.c skb = q->qdisc->ops->dequeue(q->qdisc); qdisc 761 net/sched/sch_netem.c if (q->qdisc) qdisc 762 net/sched/sch_netem.c qdisc_reset(q->qdisc); qdisc 1075 net/sched/sch_netem.c if (q->qdisc) qdisc 1076 net/sched/sch_netem.c qdisc_put(q->qdisc); qdisc 1218 net/sched/sch_netem.c if (cl != 1 || !q->qdisc) /* only one class */ qdisc 1222 net/sched/sch_netem.c tcm->tcm_info = q->qdisc->handle; qdisc 1232 net/sched/sch_netem.c *old = qdisc_replace(sch, new, &q->qdisc); qdisc 1239 net/sched/sch_netem.c return q->qdisc; qdisc 72 net/sched/sch_prio.c struct Qdisc *qdisc; qdisc 75 net/sched/sch_prio.c qdisc = prio_classify(skb, sch, &ret); qdisc 77 net/sched/sch_prio.c if (qdisc == NULL) { qdisc 86 net/sched/sch_prio.c ret = qdisc_enqueue(skb, qdisc, to_free); qdisc 103 net/sched/sch_prio.c struct Qdisc *qdisc = q->queues[prio]; qdisc 104 net/sched/sch_prio.c struct sk_buff *skb = qdisc->ops->peek(qdisc); qdisc 117 net/sched/sch_prio.c struct Qdisc *qdisc = q->queues[prio]; qdisc 118 net/sched/sch_prio.c struct sk_buff *skb = qdisc_dequeue_peeked(qdisc); qdisc 137 net/sched/sch_qfq.c struct Qdisc *qdisc; qdisc 318 net/sched/sch_qfq.c if (cl->qdisc->q.qlen > 0) { /* adding an active class */ qdisc 367 net/sched/sch_qfq.c if (cl->qdisc->q.qlen > 0) /* class is active */ qdisc 471 net/sched/sch_qfq.c cl->qdisc = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, qdisc 473 net/sched/sch_qfq.c if (cl->qdisc == NULL) qdisc 474 net/sched/sch_qfq.c cl->qdisc = &noop_qdisc; qdisc 486 net/sched/sch_qfq.c if (cl->qdisc != &noop_qdisc) qdisc 487 net/sched/sch_qfq.c qdisc_hash_add(cl->qdisc, true); qdisc 517 net/sched/sch_qfq.c qdisc_put(cl->qdisc); qdisc 528 net/sched/sch_qfq.c qdisc_put(cl->qdisc); qdisc 542 net/sched/sch_qfq.c qdisc_purge_queue(cl->qdisc); qdisc 598 net/sched/sch_qfq.c *old = qdisc_replace(sch, new, &cl->qdisc); qdisc 606 net/sched/sch_qfq.c return cl->qdisc; qdisc 617 net/sched/sch_qfq.c tcm->tcm_info = cl->qdisc->handle; qdisc 646 net/sched/sch_qfq.c qdisc_qstats_copy(d, cl->qdisc) < 0) qdisc 977 net/sched/sch_qfq.c qdisc_dequeue_peeked(cl->qdisc); qdisc 981 net/sched/sch_qfq.c if (cl->qdisc->q.qlen == 0) /* no more packets, remove from list */ qdisc 983 net/sched/sch_qfq.c else if (cl->deficit < qdisc_pkt_len(cl->qdisc->ops->peek(cl->qdisc))) { qdisc 996 net/sched/sch_qfq.c skb = (*cl)->qdisc->ops->peek((*cl)->qdisc); qdisc 1227 net/sched/sch_qfq.c first = !cl->qdisc->q.qlen; qdisc 1228 net/sched/sch_qfq.c err = qdisc_enqueue(skb, cl->qdisc, to_free); qdisc 1246 net/sched/sch_qfq.c if (unlikely(skb == cl->qdisc->ops->peek(cl->qdisc)) && qdisc 1459 net/sched/sch_qfq.c if (cl->qdisc->q.qlen > 0) qdisc 1462 net/sched/sch_qfq.c qdisc_reset(cl->qdisc); qdisc 44 net/sched/sch_red.c struct Qdisc *qdisc; qdisc 61 net/sched/sch_red.c struct Qdisc *child = q->qdisc; qdisc 116 net/sched/sch_red.c struct Qdisc *child = q->qdisc; qdisc 133 net/sched/sch_red.c struct Qdisc *child = q->qdisc; qdisc 142 net/sched/sch_red.c qdisc_reset(q->qdisc); qdisc 182 net/sched/sch_red.c qdisc_put(q->qdisc); qdisc 233 net/sched/sch_red.c qdisc_tree_flush_backlog(q->qdisc); qdisc 234 net/sched/sch_red.c old_child = q->qdisc; qdisc 235 net/sched/sch_red.c q->qdisc = child; qdisc 249 net/sched/sch_red.c if (!q->qdisc->q.qlen) qdisc 278 net/sched/sch_red.c q->qdisc = &noop_qdisc; qdisc 363 net/sched/sch_red.c tcm->tcm_info = q->qdisc->handle; qdisc 390 net/sched/sch_red.c *old = qdisc_replace(sch, new, &q->qdisc); qdisc 399 net/sched/sch_red.c return q->qdisc; qdisc 53 net/sched/sch_sfb.c struct Qdisc *qdisc; qdisc 284 net/sched/sch_sfb.c struct Qdisc *child = q->qdisc; qdisc 426 net/sched/sch_sfb.c struct Qdisc *child = q->qdisc; qdisc 429 net/sched/sch_sfb.c skb = child->dequeue(q->qdisc); qdisc 444 net/sched/sch_sfb.c struct Qdisc *child = q->qdisc; qdisc 455 net/sched/sch_sfb.c qdisc_reset(q->qdisc); qdisc 469 net/sched/sch_sfb.c qdisc_put(q->qdisc); qdisc 522 net/sched/sch_sfb.c qdisc_purge_queue(q->qdisc); qdisc 523 net/sched/sch_sfb.c old = q->qdisc; qdisc 524 net/sched/sch_sfb.c q->qdisc = child; qdisc 561 net/sched/sch_sfb.c q->qdisc = &noop_qdisc; qdisc 581 net/sched/sch_sfb.c sch->qstats.backlog = q->qdisc->qstats.backlog; qdisc 625 net/sched/sch_sfb.c *old = qdisc_replace(sch, new, &q->qdisc); qdisc 633 net/sched/sch_sfb.c return q->qdisc; qdisc 73 net/sched/sch_skbprio.c struct sk_buff_head *qdisc; qdisc 81 net/sched/sch_skbprio.c qdisc = &q->qdiscs[prio]; qdisc 83 net/sched/sch_skbprio.c __skb_queue_tail(qdisc, skb); qdisc 106 net/sched/sch_skbprio.c __skb_queue_tail(qdisc, skb); qdisc 1653 net/sched/sch_taprio.c struct Qdisc *qdisc; qdisc 1656 net/sched/sch_taprio.c qdisc = qdisc_create_dflt(dev_queue, qdisc 1661 net/sched/sch_taprio.c if (!qdisc) qdisc 1665 net/sched/sch_taprio.c qdisc_hash_add(qdisc, false); qdisc 1667 net/sched/sch_taprio.c q->qdiscs[i] = qdisc; qdisc 109 net/sched/sch_tbf.c struct Qdisc *qdisc; /* Inner qdisc, default - bfifo queue */ qdisc 163 net/sched/sch_tbf.c ret = qdisc_enqueue(segs, q->qdisc, to_free); qdisc 192 net/sched/sch_tbf.c ret = qdisc_enqueue(skb, q->qdisc, to_free); qdisc 214 net/sched/sch_tbf.c skb = q->qdisc->ops->peek(q->qdisc); qdisc 237 net/sched/sch_tbf.c skb = qdisc_dequeue_peeked(q->qdisc); qdisc 273 net/sched/sch_tbf.c qdisc_reset(q->qdisc); qdisc 372 net/sched/sch_tbf.c if (q->qdisc != &noop_qdisc) { qdisc 373 net/sched/sch_tbf.c err = fifo_set_limit(q->qdisc, qopt->limit); qdisc 390 net/sched/sch_tbf.c qdisc_tree_flush_backlog(q->qdisc); qdisc 391 net/sched/sch_tbf.c qdisc_put(q->qdisc); qdisc 392 net/sched/sch_tbf.c q->qdisc = child; qdisc 422 net/sched/sch_tbf.c q->qdisc = &noop_qdisc; qdisc 437 net/sched/sch_tbf.c qdisc_put(q->qdisc); qdisc 446 net/sched/sch_tbf.c sch->qstats.backlog = q->qdisc->qstats.backlog; qdisc 484 net/sched/sch_tbf.c tcm->tcm_info = q->qdisc->handle; qdisc 497 net/sched/sch_tbf.c *old = qdisc_replace(sch, new, &q->qdisc); qdisc 504 net/sched/sch_tbf.c return q->qdisc; qdisc 99 net/sched/sch_teql.c q = rcu_dereference_bh(dat_queue->qdisc); qdisc 152 net/sched/sch_teql.c root_lock = qdisc_root_sleeping_lock(rtnl_dereference(txq->qdisc)); qdisc 154 net/sched/sch_teql.c qdisc_reset(rtnl_dereference(txq->qdisc)); qdisc 262 net/sched/sch_teql.c if (rcu_access_pointer(txq->qdisc) == &noop_qdisc)