Lines Matching refs:qdisc

133 static inline void qdisc_refcount_inc(struct Qdisc *qdisc)  in qdisc_refcount_inc()  argument
135 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_inc()
137 refcount_inc(&qdisc->refcnt); in qdisc_refcount_inc()
140 static inline bool qdisc_refcount_dec_if_one(struct Qdisc *qdisc) in qdisc_refcount_dec_if_one() argument
142 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_dec_if_one()
144 return refcount_dec_if_one(&qdisc->refcnt); in qdisc_refcount_dec_if_one()
151 static inline struct Qdisc *qdisc_refcount_inc_nz(struct Qdisc *qdisc) in qdisc_refcount_inc_nz() argument
153 if (qdisc->flags & TCQ_F_BUILTIN) in qdisc_refcount_inc_nz()
154 return qdisc; in qdisc_refcount_inc_nz()
155 if (refcount_inc_not_zero(&qdisc->refcnt)) in qdisc_refcount_inc_nz()
156 return qdisc; in qdisc_refcount_inc_nz()
164 static inline bool qdisc_is_running(struct Qdisc *qdisc) in qdisc_is_running() argument
166 if (qdisc->flags & TCQ_F_NOLOCK) in qdisc_is_running()
167 return spin_is_locked(&qdisc->seqlock); in qdisc_is_running()
168 return test_bit(__QDISC_STATE2_RUNNING, &qdisc->state2); in qdisc_is_running()
171 static inline bool nolock_qdisc_is_empty(const struct Qdisc *qdisc) in nolock_qdisc_is_empty() argument
173 return !(READ_ONCE(qdisc->state) & QDISC_STATE_NON_EMPTY); in nolock_qdisc_is_empty()
181 static inline bool qdisc_is_empty(const struct Qdisc *qdisc) in qdisc_is_empty() argument
183 if (qdisc_is_percpu_stats(qdisc)) in qdisc_is_empty()
184 return nolock_qdisc_is_empty(qdisc); in qdisc_is_empty()
185 return !READ_ONCE(qdisc->q.qlen); in qdisc_is_empty()
191 static inline bool qdisc_run_begin(struct Qdisc *qdisc) in qdisc_run_begin() argument
193 if (qdisc->flags & TCQ_F_NOLOCK) { in qdisc_run_begin()
194 if (spin_trylock(&qdisc->seqlock)) in qdisc_run_begin()
202 if (test_and_set_bit(__QDISC_STATE_MISSED, &qdisc->state)) in qdisc_run_begin()
209 return spin_trylock(&qdisc->seqlock); in qdisc_run_begin()
211 return !__test_and_set_bit(__QDISC_STATE2_RUNNING, &qdisc->state2); in qdisc_run_begin()
214 static inline void qdisc_run_end(struct Qdisc *qdisc) in qdisc_run_end() argument
216 if (qdisc->flags & TCQ_F_NOLOCK) { in qdisc_run_end()
217 spin_unlock(&qdisc->seqlock); in qdisc_run_end()
226 &qdisc->state))) in qdisc_run_end()
227 __netif_schedule(qdisc); in qdisc_run_end()
229 __clear_bit(__QDISC_STATE2_RUNNING, &qdisc->state2); in qdisc_run_end()
233 static inline bool qdisc_may_bulk(const struct Qdisc *qdisc) in qdisc_may_bulk() argument
235 return qdisc->flags & TCQ_F_ONETXQUEUE; in qdisc_may_bulk()
536 static inline spinlock_t *qdisc_lock(struct Qdisc *qdisc) in qdisc_lock() argument
538 return &qdisc->q.lock; in qdisc_lock()
541 static inline struct Qdisc *qdisc_root(const struct Qdisc *qdisc) in qdisc_root() argument
543 struct Qdisc *q = rcu_dereference_rtnl(qdisc->dev_queue->qdisc); in qdisc_root()
548 static inline struct Qdisc *qdisc_root_bh(const struct Qdisc *qdisc) in qdisc_root_bh() argument
550 return rcu_dereference_bh(qdisc->dev_queue->qdisc); in qdisc_root_bh()
553 static inline struct Qdisc *qdisc_root_sleeping(const struct Qdisc *qdisc) in qdisc_root_sleeping() argument
555 return rcu_dereference_rtnl(qdisc->dev_queue->qdisc_sleeping); in qdisc_root_sleeping()
558 static inline spinlock_t *qdisc_root_sleeping_lock(const struct Qdisc *qdisc) in qdisc_root_sleeping_lock() argument
560 struct Qdisc *root = qdisc_root_sleeping(qdisc); in qdisc_root_sleeping_lock()
566 static inline struct net_device *qdisc_dev(const struct Qdisc *qdisc) in qdisc_dev() argument
568 return qdisc->dev_queue->dev; in qdisc_dev()
686 struct Qdisc *qdisc);
687 void qdisc_reset(struct Qdisc *qdisc);
688 void qdisc_destroy(struct Qdisc *qdisc);
689 void qdisc_put(struct Qdisc *qdisc);
690 void qdisc_put_unlocked(struct Qdisc *qdisc);
691 void qdisc_tree_reduce_backlog(struct Qdisc *qdisc, int n, int len);
722 void qdisc_free(struct Qdisc *qdisc);
753 struct Qdisc *qdisc; in qdisc_reset_all_tx_gt() local
756 qdisc = rtnl_dereference(netdev_get_tx_queue(dev, i)->qdisc); in qdisc_reset_all_tx_gt()
757 if (qdisc) { in qdisc_reset_all_tx_gt()
758 spin_lock_bh(qdisc_lock(qdisc)); in qdisc_reset_all_tx_gt()
759 qdisc_reset(qdisc); in qdisc_reset_all_tx_gt()
760 spin_unlock_bh(qdisc_lock(qdisc)); in qdisc_reset_all_tx_gt()
773 const struct Qdisc *q = rcu_dereference(txq->qdisc); in qdisc_all_tx_empty()
792 if (rcu_access_pointer(txq->qdisc) != in qdisc_tx_changing()
806 if (rcu_access_pointer(txq->qdisc) != &noop_qdisc) in qdisc_tx_is_noop()
1306 void mini_qdisc_pair_init(struct mini_Qdisc_pair *miniqp, struct Qdisc *qdisc,