Lines Matching defs:sched
42 struct mptcp_sched_ops *sched, *ret = NULL;
44 list_for_each_entry_rcu(sched, &mptcp_sched_list, list) {
45 if (!strcmp(sched->name, name)) {
46 ret = sched;
54 int mptcp_register_scheduler(struct mptcp_sched_ops *sched)
56 if (!sched->get_subflow)
60 if (mptcp_sched_find(sched->name)) {
64 list_add_tail_rcu(&sched->list, &mptcp_sched_list);
67 pr_debug("%s registered", sched->name);
71 void mptcp_unregister_scheduler(struct mptcp_sched_ops *sched)
73 if (sched == &mptcp_sched_default)
77 list_del_rcu(&sched->list);
87 struct mptcp_sched_ops *sched)
89 if (!sched)
90 sched = &mptcp_sched_default;
92 if (!bpf_try_module_get(sched, sched->owner))
95 msk->sched = sched;
96 if (msk->sched->init)
97 msk->sched->init(msk);
99 pr_debug("sched=%s", msk->sched->name);
106 struct mptcp_sched_ops *sched = msk->sched;
108 if (!sched)
111 msk->sched = NULL;
112 if (sched->release)
113 sched->release(msk);
115 bpf_module_put(sched, sched->owner);
148 if (msk->sched == &mptcp_sched_default || !msk->sched)
150 return msk->sched->get_subflow(msk, &data);
170 if (msk->sched == &mptcp_sched_default || !msk->sched)
172 return msk->sched->get_subflow(msk, &data);