@@ -271,14 +271,6 @@ __bpf_kfunc void bpf_mptcp_sock_release(struct mptcp_sock *msk)
WARN_ON_ONCE(!sk || !refcount_dec_not_one(&sk->sk_refcnt));
}
-__bpf_kfunc struct mptcp_subflow_context *
-bpf_mptcp_subflow_ctx_by_pos(const struct mptcp_sched_data *data, unsigned int pos)
-{
- if (pos >= MPTCP_SUBFLOWS_MAX)
- return NULL;
- return data->contexts[pos];
-}
-
__bpf_kfunc bool bpf_mptcp_subflow_queues_empty(struct sock *sk)
{
return tcp_rtx_queue_empty(sk);
@@ -723,8 +723,6 @@ void mptcp_sock_graft(struct sock *sk, struct socket *parent);
u64 mptcp_wnd_end(const struct mptcp_sock *msk);
void mptcp_set_timeout(struct sock *sk);
bool bpf_mptcp_subflow_queues_empty(struct sock *sk);
-struct mptcp_subflow_context *
-bpf_mptcp_subflow_ctx_by_pos(const struct mptcp_sched_data *data, unsigned int pos);
struct sock *__mptcp_nmpc_sk(struct mptcp_sock *msk);
bool __mptcp_close(struct sock *sk, long timeout);
void mptcp_cancel_work(struct sock *sk);
@@ -143,26 +143,6 @@ void mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow,
WRITE_ONCE(subflow->scheduled, scheduled);
}
-static void mptcp_sched_data_set_contexts(const struct mptcp_sock *msk,
- struct mptcp_sched_data *data)
-{
- struct mptcp_subflow_context *subflow;
- int i = 0;
-
- mptcp_for_each_subflow(msk, subflow) {
- if (i == MPTCP_SUBFLOWS_MAX) {
- pr_warn_once("too many subflows");
- break;
- }
- mptcp_subflow_set_scheduled(subflow, false);
- data->contexts[i++] = subflow;
- }
- data->subflows = i;
-
- for (; i < MPTCP_SUBFLOWS_MAX; i++)
- data->contexts[i] = NULL;
-}
-
int mptcp_sched_get_send(struct mptcp_sock *msk)
{
struct mptcp_subflow_context *subflow;
@@ -189,7 +169,6 @@ int mptcp_sched_get_send(struct mptcp_sock *msk)
data.reinject = false;
if (msk->sched == &mptcp_sched_default || !msk->sched)
return mptcp_sched_default_get_subflow(msk, &data);
- mptcp_sched_data_set_contexts(msk, &data);
return msk->sched->get_subflow(msk, &data);
}
@@ -212,6 +191,5 @@ int mptcp_sched_get_retrans(struct mptcp_sock *msk)
data.reinject = true;
if (msk->sched == &mptcp_sched_default || !msk->sched)
return mptcp_sched_default_get_subflow(msk, &data);
- mptcp_sched_data_set_contexts(msk, &data);
return msk->sched->get_subflow(msk, &data);
}